[Quantproject-developers] QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag WFLagChosenTic
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2006-08-21 21:21:41
|
Update of /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv6397/b7_Scripts/WalkForwardTesting/WalkForwardLag Modified Files: WFLagChosenTickers.cs Log Message: Added a private method to allow the SetTickers method to use a brute force optimizer Index: WFLagChosenTickers.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag/WFLagChosenTickers.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** WFLagChosenTickers.cs 8 Aug 2006 09:43:40 -0000 1.4 --- WFLagChosenTickers.cs 21 Aug 2006 21:21:37 -0000 1.5 *************** *** 26,29 **** --- 26,30 ---- using QuantProject.ADT; using QuantProject.ADT.Collections; + using QuantProject.ADT.Optimizing.BruteForce; using QuantProject.ADT.Optimizing.Genetic; using QuantProject.Business.Strategies; *************** *** 42,52 **** public event NewProgressEventHandler NewProgress; ! private WFLagEligibleTickers eligibleTickers; ! private int numberOfDrivingPositions; ! private int numberOfPositionsToBeChosen; ! private int inSampleDays; ! private IEndOfDayTimer endOfDayTimer; ! private int generationNumberForGeneticOptimizer; ! private int populationSizeForGeneticOptimizer; private WeightedPositions drivingWeightedPositions; --- 43,53 ---- public event NewProgressEventHandler NewProgress; ! protected WFLagEligibleTickers eligibleTickers; ! protected int numberOfDrivingPositions; ! protected int numberOfPositionsToBeChosen; ! protected int inSampleDays; ! protected IEndOfDayTimer endOfDayTimer; ! protected int generationNumberForGeneticOptimizer; ! protected int populationSizeForGeneticOptimizer; private WeightedPositions drivingWeightedPositions; *************** *** 125,129 **** } ! #region SetSignedTickers // private void setSignedTickers_clearPositions() // { --- 126,130 ---- } ! #region SetWeightedPositions // private void setSignedTickers_clearPositions() // { *************** *** 131,134 **** --- 132,136 ---- // this.portfolioPositions.Clear(); // } + #region setWeightedPositions_usingTheGeneticOptimizer private void newGenerationEventHandler( object sender , NewGenerationEventArgs e ) *************** *** 137,140 **** --- 139,150 ---- new NewProgressEventArgs( e.GenerationCounter , e.GenerationNumber ) ); } + private void setWeightedPositions( + WFLagWeightedPositions wFLagWeightedPositions ) + { + this.drivingWeightedPositions = + wFLagWeightedPositions.DrivingWeightedPositions; + this.portfolioWeightedPositions = + wFLagWeightedPositions.PortfolioWeightedPositions; + } private void setSignedTickers_setTickersFromGenome( IGenomeManager genomeManager , *************** *** 143,155 **** WFLagWeightedPositions wFLagWeightedPositions = ( WFLagWeightedPositions )genomeManager.Decode( genome ); ! this.drivingWeightedPositions = ! wFLagWeightedPositions.DrivingWeightedPositions; ! this.portfolioWeightedPositions = ! wFLagWeightedPositions.PortfolioWeightedPositions; } ! public void SetWeightedPositions( WFLagEligibleTickers eligibleTickers ) { - // this.setSignedTickers_clearPositions(); - this.firstOptimizationDate = this.endOfDayTimer.GetCurrentTime().DateTime.AddDays( --- 153,165 ---- WFLagWeightedPositions wFLagWeightedPositions = ( WFLagWeightedPositions )genomeManager.Decode( genome ); ! this.setWeightedPositions( wFLagWeightedPositions ); ! // this.drivingWeightedPositions = ! // wFLagWeightedPositions.DrivingWeightedPositions; ! // this.portfolioWeightedPositions = ! // wFLagWeightedPositions.PortfolioWeightedPositions; } ! public virtual void setWeightedPositions_usingTheGeneticOptimizer( ! WFLagEligibleTickers eligibleTickers ) { this.firstOptimizationDate = this.endOfDayTimer.GetCurrentTime().DateTime.AddDays( *************** *** 158,163 **** this.endOfDayTimer.GetCurrentTime().DateTime; ! WFLagGenomeManagerWithWeights genomeManager = ! new WFLagGenomeManagerWithWeights( eligibleTickers.EligibleTickers , eligibleTickers.EligibleTickers , --- 168,173 ---- this.endOfDayTimer.GetCurrentTime().DateTime; ! WFLagGenomeManager genomeManager = ! new WFLagGenomeManager( eligibleTickers.EligibleTickers , eligibleTickers.EligibleTickers , *************** *** 165,174 **** this.lastOptimizationDate , this.numberOfDrivingPositions , ! this.numberOfPositionsToBeChosen ); GeneticOptimizer geneticOptimizer = new GeneticOptimizer( ! genomeManager , this.populationSizeForGeneticOptimizer , this.generationNumberForGeneticOptimizer , ConstantsProvider.SeedForRandomGenerator ); --- 175,188 ---- this.lastOptimizationDate , this.numberOfDrivingPositions , ! this.numberOfPositionsToBeChosen , ! QuantProject.ADT.ConstantsProvider.SeedForRandomGenerator ); GeneticOptimizer geneticOptimizer = new GeneticOptimizer( ! 0.85 , ! 0.02 , ! 0.1 , this.populationSizeForGeneticOptimizer , this.generationNumberForGeneticOptimizer , + genomeManager , ConstantsProvider.SeedForRandomGenerator ); *************** *** 185,188 **** --- 199,255 ---- } #endregion + #region setWeightedPositions_usingTheBruteForceOptimizer + private void newBruteForceOptimizerProgressEventHandler( + object sender , NewProgressEventArgs e ) + { + this.NewProgress( sender , e ); + } + public virtual void setWeightedPositions_usingTheBruteForceOptimizer( + WFLagEligibleTickers eligibleTickers ) + { + this.firstOptimizationDate = + this.endOfDayTimer.GetCurrentTime().DateTime.AddDays( + -( this.inSampleDays - 1 ) ); + this.lastOptimizationDate = + this.endOfDayTimer.GetCurrentTime().DateTime; + + WFLagBruteForceOptimizableParametersManager + wFLagBruteForceOptimizableItemManager= + new WFLagBruteForceOptimizableParametersManager( + eligibleTickers.EligibleTickers , + eligibleTickers.EligibleTickers , + this.firstOptimizationDate , + this.lastOptimizationDate , + this.numberOfDrivingPositions , + this.numberOfPositionsToBeChosen ); + + BruteForceOptimizer bruteForceOptimizer = new BruteForceOptimizer( + wFLagBruteForceOptimizableItemManager ); + + bruteForceOptimizer.NewProgress += + new NewProgressEventHandler( + this.newBruteForceOptimizerProgressEventHandler ); + + bruteForceOptimizer.Run(); + + BruteForceOptimizableParameters bestParameters = + bruteForceOptimizer.BestParameters; + + WFLagWeightedPositions wFLagWeightedPositions = + ( WFLagWeightedPositions )wFLagBruteForceOptimizableItemManager.Decode( + bestParameters ); + + this.setWeightedPositions( wFLagWeightedPositions ); + } + #endregion + public virtual void SetWeightedPositions( + WFLagEligibleTickers eligibleTickers ) + { + // this.setWeightedPositions_usingTheGeneticOptimizer( + // eligibleTickers ); + this.setWeightedPositions_usingTheBruteForceOptimizer( + eligibleTickers ); + } + #endregion } } |