[Quantproject-developers] Re: [Quantproject-developers] QuantProject/b7_Scripts/EvaluatingOptimizat
Brought to you by:
glauco_1
|
From: Glauco S. <gl...@my...> - 2005-08-28 11:17:29
|
At 10:02 AM 8/28/2005 +0000, you wrote: >Log Message: >RunTestingOptimizationOpenToClose now saves a log file to disk at the end >of the test. Sono curioso di vedere quali informazioni salva. C'e' un metodo che scrive il log? Che parola chiave devo cercare per trovarlo? >Index: RunTestingOptimizationOpenToClose.cs >=================================================================== >RCS file: >/cvsroot/quantproject/QuantProject/b7_Scripts/EvaluatingOptimizationTechnique/EfficientPortfolio/RunTestingOptimizationOpenToClose.cs,v >retrieving revision 1.1 >retrieving revision 1.2 >diff -C2 -d -r1.1 -r1.2 >*** RunTestingOptimizationOpenToClose.cs 20 Aug 2005 16:08:48 >-0000 1.1 >--- RunTestingOptimizationOpenToClose.cs 28 Aug 2005 10:02:52 >-0000 1.2 >*************** >*** 23,26 **** >--- 23,27 ---- > using System; > using System.Data; >+ using System.IO; > > using QuantProject.ADT; >*************** >*** 46,49 **** >--- 47,51 ---- > private int numDaysForLiquidity; > private int populationSizeForGeneticOptimizer; >+ private int generationNumberForGeneticOptimizer; > private string benchmark; > private DateTime marketDate; >*************** >*** 52,64 **** > private int numDaysAfterLastOptimizationDay; > private int numberOfSubsets; > > public RunTestingOptimizationOpenToClose(string tickerGroupID, int > numberOfEligibleTickers, >! int numberOfTickersToBeChosen, int >numDaysForLiquidity, >! int >populationSizeForGeneticOptimizer, string benchmark, > DateTime marketDate, double > targetReturn, >! PortfolioType portfolioType, int >numDaysAfterLastOptimizationDay) > { >! this.fitnessesInSample = new >double[populationSizeForGeneticOptimizer]; >! this.fitnessesOutOfSample = new >double[populationSizeForGeneticOptimizer]; > this.tickerGroupID = tickerGroupID; > this.numberOfEligibleTickers = numberOfEligibleTickers; >--- 54,72 ---- > private int numDaysAfterLastOptimizationDay; > private int numberOfSubsets; >+ private Genome[] genomesToTestOutOfSample; >+ private int numberOfGenomesToTest; > > public RunTestingOptimizationOpenToClose(string tickerGroupID, int > numberOfEligibleTickers, >! int numberOfTickersToBeChosen, int >numDaysForLiquidity, >! int >generationNumberForGeneticOptimizer, int populationSizeForGeneticOptimizer, >! string benchmark, > DateTime marketDate, double > targetReturn, >! PortfolioType portfolioType, int >numDaysAfterLastOptimizationDay, >! int numberOfSubsets, int >numberOfGenomesToTest) > { >! this.numberOfGenomesToTest = numberOfGenomesToTest; >! this.genomesToTestOutOfSample = new >Genome[numberOfGenomesToTest]; >! this.fitnessesInSample = new double[numberOfGenomesToTest]; >! this.fitnessesOutOfSample = new double[numberOfGenomesToTest]; > this.tickerGroupID = tickerGroupID; > this.numberOfEligibleTickers = numberOfEligibleTickers; >*************** >*** 66,69 **** >--- 74,78 ---- > this.numDaysForLiquidity = numDaysForLiquidity; > this.populationSizeForGeneticOptimizer = > populationSizeForGeneticOptimizer; >+ this.generationNumberForGeneticOptimizer = >generationNumberForGeneticOptimizer; > this.benchmark = benchmark; > this.marketDate = marketDate; >*************** >*** 71,76 **** > this.portfolioType = portfolioType; > this.numDaysAfterLastOptimizationDay = > numDaysAfterLastOptimizationDay; >! this.numberOfSubsets = 5; >! } > > private DataTable getSetOfTickersToBeOptimized(DateTime date) >--- 80,86 ---- > this.portfolioType = portfolioType; > this.numDaysAfterLastOptimizationDay = > numDaysAfterLastOptimizationDay; >! this.numberOfSubsets = numberOfSubsets; >! >! } > > private DataTable getSetOfTickersToBeOptimized(DateTime date) >*************** >*** 138,150 **** > } > >! private void setFitnesses_setFitnessesActually(GeneticOptimizer GO) > > { > >! for(int i = 0; i<GO.CurrentGeneration.Count; i++) > { >! >this.fitnessesInSample[i]=((Genome)GO.CurrentGeneration[i]).Fitness; > this.fitnessesOutOfSample[i]= >! >this.setFitnesses_setFitnessesActually_getFitnessOutOfSample((Genome)GO.CurrentGeneration[i]); > } > >--- 148,171 ---- > } > >! private void >setFitnesses_setFitnessesActually_setGenomesToTestOutOfSample(GeneticOptimizer >GO) > > { >+ Random random = new Random(10); >+ for(int i = 0; i<this.numberOfGenomesToTest; i++) >+ { >+ this.genomesToTestOutOfSample[i]= >+ >(Genome)GO.CurrentGeneration[random.Next(this.populationSizeForGeneticOptimizer)]; >+ } >+ Array.Sort(this.genomesToTestOutOfSample); >+ } >+ private void setFitnesses_setFitnessesActually(GeneticOptimizer GO) > >! { >! >this.setFitnesses_setFitnessesActually_setGenomesToTestOutOfSample(GO); >! for(int i = 0; i<this.numberOfGenomesToTest; i++) > { >! >this.fitnessesInSample[i]=(this.genomesToTestOutOfSample[i]).Fitness; > this.fitnessesOutOfSample[i]= >! >this.setFitnesses_setFitnessesActually_getFitnessOutOfSample(this.genomesToTestOutOfSample[i]); > } > >*************** >*** 167,171 **** > GeneticOptimizer GO = new > GeneticOptimizer(genManEfficientCTOPortfolio, > >this.populationSizeForGeneticOptimizer, >! 0, > >ConstantsProvider.SeedForRandomGenerator); > >--- 188,192 ---- > GeneticOptimizer GO = new > GeneticOptimizer(genManEfficientCTOPortfolio, > >this.populationSizeForGeneticOptimizer, >! >this.generationNumberForGeneticOptimizer, > >ConstantsProvider.SeedForRandomGenerator); > >*************** >*** 181,184 **** >--- 202,210 ---- > new OptimizationTechniqueEvaluator(this.fitnessesInSample, > >this.fitnessesOutOfSample); >+ this.run_writeToLogFile(evaluator); >+ } >+ >+ private void run_writeToLogFile(OptimizationTechniqueEvaluator >evaluator) >+ { > double[] averagesInSample = > evaluator.GetAveragesOfSubsetsInSample(this.numberOfSubsets); >*************** >*** 186,190 **** > >evaluator.GetAveragesOfSubsetsOutOfSample(this.numberOfSubsets); > double r = evaluator.GetCorrelationBetweenFitnesses(); >! } > } > } >--- 212,245 ---- > >evaluator.GetAveragesOfSubsetsOutOfSample(this.numberOfSubsets); > double r = evaluator.GetCorrelationBetweenFitnesses(); >! GenomeCounter genomeCounter = new >GenomeCounter(this.genomesToTestOutOfSample); >! int differentEvaluatedGenomes = genomeCounter.TotalEvaluatedGenomes; >! string pathFile = >System.Configuration.ConfigurationSettings.AppSettings["GenericArchive"] + >! "\\OpenToCloseOptimizationEvaluation.txt"; >! StreamWriter w = File.AppendText(pathFile); >! w.WriteLine >("\n----------------------------------------------\r\n"); >! w.Write("\r\nNew Test for Evaluation of Open To Close >Optimization {0}\r", DateTime.Now.Date.ToLongDateString()); >! w.WriteLine ("\n----------------------------------------------"); >! w.Write("\r\nFitnesses compared: {0}\r", >this.fitnessesInSample.Length.ToString()); >! w.Write("\r\nDifferent evaluated genomes: {0}\r", >differentEvaluatedGenomes.ToString()); >! w.Write("\r\nAverages of the {0} sub sets of fitnesses In Sample:\r", >! this.numberOfSubsets); >! // >! for(int i = 0; i<averagesInSample.Length; i++) >! w.WriteLine("\n{0}-->{1}", i.ToString(), >averagesInSample[i].ToString()); >! >! w.WriteLine ("\n\n----------------------------------------------"); >! w.Write("\r\nAverages of the {0} sub sets of fitnesses Out of >Sample:\r", >! this.numberOfSubsets); >! // >! for(int i = 0; i<averagesOutOfSample.Length; i++) >! w.WriteLine("\n{0}-->{1}", i.ToString(), >averagesOutOfSample[i].ToString()); >! w.WriteLine ("\n\n----------------------------------------------"); >! // >! w.Write("\r\nCorrelation coefficient between fitnesses: {0}\r", >r.ToString()); >! w.WriteLine ("\n-----------------End of Test------------------\r\n"); >! // Update the underlying file. >! w.Flush(); >! w.Close(); >! } > } > } > > > >------------------------------------------------------- >SF.Net email is Sponsored by the Better Software Conference & EXPO >September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices >Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA >Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf >_______________________________________________ >Quantproject-developers mailing list >Qua...@li... >https://lists.sourceforge.net/lists/listinfo/quantproject-developers |