VI. Acknowledgements

Strategy() AbstractStrategy(in agent: AbstractTradingAgent) endOfRound(in auction: Auction) eventOccurred(in event: AuctionEvent) getAgent(): AbstractTradingAgent initialise() modifyShout(in shout: Shout, in auction: Auction): Shout modifyShout(in shout: MutableShout): boolean protoClone(): Object reset() setAgent(in agent: AbstractTradingAgent) AbstractStrategy determineQuantity(in auction: Auction): int modifyShout(in shout: Shout, in auction: Auction): Shout setAgent(in agent: AbstractTradingAgent) «interface» Strategy eventOccurred(in event: AuctionEvent) «interface» uk::ac::liv::auction::core::AuctionEventListener AbstractTradingAgent(in stock: int, in funds: double, in privateValue: double, in isSeller: boolean, in strategy: Strategy) AbstractTradingAgent(in stock: int, in funds: double) AbstractTradingAgent() AbstractTradingAgent(in stock: int, in funds: double, in privateValue: double, in isSeller: boolean) active(): boolean auctionClosed(in event: AuctionEvent) auctionOpen(in event: AuctionEvent) deliver(in auction: Auction, in quantity: int, in price: double): int determineQuantity(in auction: Auction): int endOfDay(in event: AuctionEvent) equilibriumProfits(in auction: Auction, in equilibriumPrice: double, in quantity: int): double eventOccurred(in event: AuctionEvent) getCurrentShout(): Shout getFunds(): double getGroup(): AgentGroup getId(): long getLastProfit(): double getProfits(): double getStock(): int getStrategy(): Strategy getStrategy1(): Strategy getValuation(in auction: Auction): double getValuationPolicy(): ValuationPolicy giveFunds(in seller: AbstractTradingAgent, in amount: double) informOfBuyer(in auction: Auction, in buyer: TradingAgent, in price: double, in quantity: int) informOfSeller(in auction: Auction, in winningShout: Shout, in seller: TradingAgent, in price: double, in quantity: int) initialise() isBuyer(): boolean isSeller(): boolean lastShoutAccepted(): boolean pay(in amount: double) protoClone(): Object purchaseFrom(in auction: Auction, in seller: AbstractTradingAgent, in quantity: int, in price: double) requestShout(in auction: Auction) reset() roundClosed(in event: AuctionEvent) setGroup(in group: AgentGroup) setIsSeller(in isSeller: boolean) setPrivateValue(in privateValue: double) setStrategy(in strategy: Strategy) setStrategy1(in strategy1: Strategy) setValuationPolicy(in valuer: ValuationPolicy) setup(in parameters: ParameterDatabase, in base: Parameter) AbstractTradingAgent informOfBuyer(in auction: Auction, in buyer: TradingAgent, in price: double, in quantity: int) informOfSeller(in auction: Auction, in winningShout: Shout, in seller: TradingAgent, in price: double, in quantity: int) isBuyer(): boolean isSeller(): boolean requestShout(in auction: Auction) «interface» TradingAgentTradingAgent(in stock: int, in funds: double, in privateValue: double, in isSeller: boolean, in strategy: Strategy) AbstractTradingAgent(in stock: int, in funds: double) AbstractTradingAgent() AbstractTradingAgent(in stock: int, in funds: double, in privateValue: double, in isSeller: boolean) active(): boolean auctionClosed(in event: AuctionEvent) auctionOpen(in event: AuctionEvent) deliver(in auction: Auction, in quantity: int, in price: double): int determineQuantity(in auction: Auction): int endOfDay(in event: AuctionEvent) equilibriumProfits(in auction: Auction, in equilibriumPrice: double, in quantity: int): double eventOccurred(in event: AuctionEvent) getCurrentShout(): Shout getFunds(): double getGroup(): AgentGroup getId(): long getLastProfit(): double getProfits(): double getStock(): int getStrategy(): Strategy getStrategy1(): Strategy getValuation(in auction: Auction): double getValuationPolicy(): ValuationPolicy giveFunds(in seller: AbstractTradingAgent, in amount: double) informOfBuyer(in auction: Auction, in buyer: TradingAgent, in price: double, in quantity: int) informOfSeller(in auction: Auction, in winningShout: Shout, in seller: TradingAgent, in price: double, in quantity: int) initialise() isBuyer(): boolean isSeller(): boolean lastShoutAccepted(): boolean pay(in amount: double) protoClone(): Object purchaseFrom(in auction: Auction, in seller: AbstractTradingAgent, in quantity: int, in price: double) requestShout(in auction: Auction) reset() roundClosed(in event: AuctionEvent) setGroup(in group: AgentGroup) setIsSeller(in isSeller: boolean) setPrivateValue(in privateValue: double) setStrategy(in strategy: Strategy) setStrategy1(in strategy1: Strategy) setValuationPolicy(in valuer: ValuationPolicy) setup(in parameters: ParameterDatabase, in base: Parameter) AbstractTradingAgent informOfBuyer(in auction: Auction, in buyer: TradingAgent, in price: double, in quantity: int) informOfSeller(in auction: Auction, in winningShout: Shout, in seller: TradingAgent, in price: double, in quantity: int) isBuyer(): boolean isSeller(): boolean requestShout(in auction: Auction) «interface» TradingAgent + abstractTradingAgent {order} 0.1 strategy1 0.1 Figure A.6: UML class diagram illustrating relationship be tw en TradingAgent and Strategy 1 4 7 learner: StimuliResponseLearner P_LEARNER: String StimuliResponseStrategy(in agent: AbstractTradingAgent) StimuliResponseStrategy() act(): int getLearner(): Learner getStimuliResponseLearner(): StimuliResponseLearner learn(in auction: Auction) protoClone(): Object reset() setLearner(in learner: Learner) setStimuliResponseLearner(in stimuliResponseLearner: StimuliResponseLearner) setup(in parameters: ParameterDatabase, in base: Parameter) toString(): String uk::ac::liv::auction::agent::StimuliResponseStrategy currentPrice: double initialMarginDistribution: AbstractContinousDistribution lastShout: Shout lastShoutAccepted: boolean learner: MimicryLearner logger: Logger mimicryLearner: MimicryLearner P_LEARNER: String P_SCALING: String perterbationDistribution: AbstractContinousDistribution scaling: double trAskPrice: double trBidPrice: double trPrice: double uk::ac::liv::auction::agent::MomentumStrategy RothErevLearner randomInitialise() setOutputLevel(in currentOutput: double) train(in target: double) «interface» MimicryLearner StatelessQLearner AbstractLearner act(): int getNumberOfActions(): int «interface» DiscreteLearner dumpState(in out: DataWriter) getLearningDelta(): double monitor() «interface» Learner WidrowHoffLearnerWithMomentum act(): double «interface» ContinuousLearner reward(in reward: double) «interface» StimuliResponseLearner NPTRothErevLearner WidrowHoffLearner stimuliResponseLearner 0.1 + stimuliResponseStrategy