danielkorzekwa / betting-ai

Automatically exported from code.google.com/p/betting-ai
7 stars 4 forks source link

Create CoevolutionTraderOptimisation #71

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
/**Search for optimal trader using co-evolution based gradient hill 
*  climbing algorithm. Algorithm 6 from Essentials of metaheuristics book *  
(http://www.goodreads.com/book/show/9734814-essentials-of- 
*  metaheuristics) with a one difference that individuals in population 
*  compete against each other instead of competing in isolation (chapter 
*  6, page 107,...The entire population participated at the same time in 
*  the game...)
*  
*  Fitness function for individual (trader) is defined by current expected *  
profit. 
*
*  @param trader Trader to be optimised.
*  @param mutate Takes trader as input and creates mutated trader.
*  @param populationSize Number of individuals in each generation.
*  @param maxGenerationNum Maximum number of generations that optimisation 
*                       is executed for.
*  @param progress The current progress of optimisation, it is called  
*                  after every generation and returns (current number of 
*                  generation, the best solution so far, best solution for *    
              the current generation)
**/
optimise[T <: Trader](trader: Trader, mutate: (T) => T, populationSize: Int, 
maxGenerationNum:Int, progress: (Int,Solution,Solution) => Unit): T

/** Data model representing trader implementation and its fitness. 
*   trader - Trader implemetation
*   fitness - Current expected profit achieved by this trader
**/
class Solution[T <: Trader](trader: T, fitness: Double)

Original issue reported on code.google.com by daniel.k...@gmail.com on 30 Jan 2011 at 1:20

GoogleCodeExporter commented 8 years ago

Original comment by daniel.k...@gmail.com on 30 Jan 2011 at 1:20

GoogleCodeExporter commented 8 years ago
TODO:
1)Create unit test that does pretty much the same as this unit test/trader 
impl: 
http://code.google.com/p/betting-ai/source/browse/trunk/trader-examples/src/test
/scala/dk/bettingai/trader/hillclimbing/steepestascent/price/SteepestAscentHillC
limbingPriceTraderTest.scala

2)Implement optimise function. This Depends on extending MarketSimulator with 
an ability to run simulation for multiples traders

3)Implement trader for price slope under trader-examples module that works 
similarly to:
http://code.google.com/p/betting-ai/source/browse/trunk/trader-examples/src/test
/scala/dk/bettingai/trader/hillclimbing/steepestascent/priceslope/SteepestAscent
HillClimbingPriceSlopeTraderTest.scala

and then create unit test to optimise it.

Original comment by daniel.k...@gmail.com on 30 Jan 2011 at 3:49

GoogleCodeExporter commented 8 years ago

Original comment by daniel.k...@gmail.com on 16 Feb 2011 at 7:55