edu.cuny.cat.market.matching
Class ThetaShoutEngine
java.lang.Object
  
edu.cuny.cat.market.AuctioneerPolicy
      
edu.cuny.cat.market.matching.ShoutEngine
          
edu.cuny.cat.market.matching.LazyMaxVolumeShoutEngine
              
edu.cuny.cat.market.matching.ThetaShoutEngine
- All Implemented Interfaces: 
 - AuctionEventListener, edu.cuny.config.param.Parameterizable, edu.cuny.obj.Resetable
 
- Direct Known Subclasses: 
 - AdaptiveThetaShoutEngine, SplineThetaShoutEngine
 
public class ThetaShoutEngine
- extends LazyMaxVolumeShoutEngine
 
 This class represents a continuum of shout matching policies, including
 FourHeapShoutEngine and LazyMaxVolumeShoutEngine. It uses a
 matching quantity coefficient, theta, to determine a matching
 quantity that falls between 0 and the maximal quantity calculated in
 LazyMaxVolumeShoutEngine. When theta is 1, the quantity is
 the maximal; when theta is 0, the quantity is the equilibrium
 quantity; and when theta is -1, no matches will be made.
 
 
 
 Parameters 
 
 
 
 base  .theta 
 -1 <= double <= 1 (0 by default) | 
 (the matching quantity coefficient controlling the matching
 quantity relative to the equilibrium quantity and the maximial quantity.) | 
 
 
 
 base  .orderly 
  boolean (true by default) | 
 (whether to pair up matched shouts in the same order of price,
 or favor most competitive shouts by pairing them up respectively from both
 sides with the condition that the underlying shout set of the matching set is
 guaranteed.) | 
 
 
 
 
 
 Default Base
 
 
- Version:
 
  - $Revision: 1.4 $
 
- Author:
 
  - Jinzhong Niu
 
| 
Field Summary | 
static double | 
DEFAULT_THETA
 
          by default, do maximal volume | 
protected  boolean | 
orderly
 
          whether to match bids and asks in totally ascending order, or favor the
 most competitive shouts to pair them up as in FourHeapShoutEngine. | 
static java.lang.String | 
P_DEF_BASE
 
            | 
static java.lang.String | 
P_ORDERLY
 
            | 
static java.lang.String | 
P_THETA
 
            | 
protected  double | 
theta
 
          matching quantity coefficient | 
 
 
 
 
 
 
| Methods inherited from class edu.cuny.cat.market.matching.LazyMaxVolumeShoutEngine | 
ascendingAskIterator, askIterator, bidIterator, descendingBidIterator, distributeShouts, distributeShoutsFromHead, distributeShoutsFromTail, getHighestMatchedAsk, getHighestUnmatchedBid, getLowestMatchedBid, getLowestUnmatchedAsk, getMatchedAsks, getMatchedBids, getMatchedVolume, getNumOfMatchedAsks, getNumOfMatchedBids, getNumOfUnmatchedAsks, getNumOfUnmatchedBids, getUnmatchedAsks, getUnmatchedBids, getUnmatchedDemand, getUnmatchedSupply, matchedAskIterator, matchedBidIterator, newShout, prettyPrint, printState, randomizeMatches, removeShout, reset, updateMatchedShouts | 
 
 
 
| Methods inherited from class java.lang.Object | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
 
P_THETA
public static final java.lang.String P_THETA
- See Also:
 - Constant Field Values
 
P_ORDERLY
public static final java.lang.String P_ORDERLY
- See Also:
 - Constant Field Values
 
P_DEF_BASE
public static final java.lang.String P_DEF_BASE
- See Also:
 - Constant Field Values
 
DEFAULT_THETA
public static final double DEFAULT_THETA
- by default, do maximal volume
- See Also:
 - Constant Field Values
 
 
theta
protected double theta
- matching quantity coefficient
 
orderly
protected boolean orderly
- whether to match bids and asks in totally ascending order, or favor the
 most competitive shouts to pair them up as in 
FourHeapShoutEngine.
 
ThetaShoutEngine
public ThetaShoutEngine()
ThetaShoutEngine
public ThetaShoutEngine(double theta)
setup
public void setup(edu.cuny.config.param.ParameterDatabase parameters,
                  edu.cuny.config.param.Parameter base)
- Specified by:
 setup in interface edu.cuny.config.param.Parameterizable- Overrides:
 setup in class AuctioneerPolicy
 
 
validateTheta
protected void validateTheta()
 
getTheta
public double getTheta()
- Returns:
 theta
 
setTheta
public void setTheta(double theta)
- Parameters:
 theta - 
 
getOrderly
public boolean getOrderly()
- Returns:
 orderly
 
setOrderly
public void setOrderly(boolean orderly)
- Parameters:
 orderly - 
 
getDemandAboveLowestAsk
protected int getDemandAboveLowestAsk()
- Returns:
 - the demand at the price of the lowest ask
 
 
calculateEquilibriumQuantity
public int calculateEquilibriumQuantity()
- Returns:
 - the equilibrium quantity
 
 
calculateMatchingQuantity
public int calculateMatchingQuantity()
- Overrides:
 calculateMatchingQuantity in class LazyMaxVolumeShoutEngine
 
- Returns:
 - the matching quantity given the current supply and demand
 
 
calculateUnorderlyQuantity
protected int calculateUnorderlyQuantity()
- Returns:
 - the quantity of goods that can be traded between the most
         competitive bids and asks while guaranteeing the required trading
         volume is met.
 
 
matchShouts
public java.util.List<Shout> matchShouts()
- overrides the way of pairing up matched bids and asks in the order of
 monotonically increasing price on both sides, and if 
orderly is
 false, try best to pair up most competitive shouts on both
 sides so that they maintain their profit margins as in the traditional
 equilibrium matching.
- Overrides:
 matchShouts in class LazyMaxVolumeShoutEngine
 
 
 
toString
public java.lang.String toString()
- Overrides:
 toString in class LazyMaxVolumeShoutEngine