[Quantproject-developers] QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardOneRank BestPerformi
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2005-05-26 23:36:30
|
Update of /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardOneRank In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27324/b7_Scripts/WalkForwardTesting/WalkForwardOneRank Modified Files: BestPerformingTickers.cs Log Message: Better memory managment: Accounts are released immediately now (only Goodness is kept for subsequent use) Index: BestPerformingTickers.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardOneRank/BestPerformingTickers.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** BestPerformingTickers.cs 20 Jan 2005 01:14:20 -0000 1.7 --- BestPerformingTickers.cs 26 May 2005 23:36:18 -0000 1.8 *************** *** 24,27 **** --- 24,28 ---- using QuantProject.ADT; + using QuantProject.ADT.FileManaging; using QuantProject.Business.DataProviders; using QuantProject.Business.Financial.Accounting; *************** *** 47,50 **** --- 48,52 ---- private ArrayList eligibleAccounts; + private SortedList tickersWithGoodness; private DateTime lastUpdate; *************** *** 61,64 **** --- 63,67 ---- this.numberDaysForPerformanceCalculation = numberDaysForPerformanceCalculation; this.eligibleAccounts = new ArrayList(); + this.tickersWithGoodness = new SortedList(); } *************** *** 66,90 **** #region SetTickers ! private void setTickers_build_addAccount( string ticker , DateTime dateTime ) { HistoricalEndOfDayTimer historicalEndOfDayTimer = new HistoricalEndOfDayTimer( ! new EndOfDayDateTime( dateTime.AddYears( -1 ).AddDays( -1 ) , EndOfDaySpecificTime.MarketOpen ) ); ComparableAccount account = new ComparableAccount( ticker , historicalEndOfDayTimer , new HistoricalEndOfDayDataStreamer( historicalEndOfDayTimer , ! this.historicalQuoteProvider ) , new HistoricalEndOfDayOrderExecutor( historicalEndOfDayTimer , ! this.historicalQuoteProvider ) ); ! OneRank oneRank = new OneRank( account , ! dateTime.AddDays( this.numberDaysForPerformanceCalculation ) ); double goodness = account.Goodness; // forces Goodness computation here (for a better ProgressBar effect) this.eligibleAccounts.Add( account ); } ! private void setTickers_build( EligibleTickers eligibleTickers , DateTime dateTime ) { foreach ( string ticker in eligibleTickers.Keys ) { ! setTickers_build_addAccount( ticker , dateTime ); this.calculatedTickers++; if ( Math.Floor( this.calculatedTickers / eligibleAccounts.Count * 100 ) > --- 69,99 ---- #region SetTickers ! #region setTickers_build_forDebug ! private void setTickers_build_forDebug_addAccount( string ticker , DateTime dateTime ) { HistoricalEndOfDayTimer historicalEndOfDayTimer = new HistoricalEndOfDayTimer( ! new EndOfDayDateTime( dateTime.AddDays( -this.numberDaysForPerformanceCalculation ) , EndOfDaySpecificTime.MarketOpen ) ); ComparableAccount account = new ComparableAccount( ticker , historicalEndOfDayTimer , new HistoricalEndOfDayDataStreamer( historicalEndOfDayTimer , ! this.historicalQuoteProvider ) , new HistoricalEndOfDayOrderExecutor( historicalEndOfDayTimer , ! this.historicalQuoteProvider ) ); ! OneRank oneRank = new OneRank( account , dateTime ); double goodness = account.Goodness; // forces Goodness computation here (for a better ProgressBar effect) this.eligibleAccounts.Add( account ); } ! /// <summary> ! /// used to debug insample results ! /// </summary> ! /// <param name="eligibleTickers"></param> ! /// <param name="dateTime"></param> ! private void setTickers_build_forDebug( EligibleTickers eligibleTickers , DateTime dateTime ) { + this.eligibleAccounts.Clear(); foreach ( string ticker in eligibleTickers.Keys ) { ! setTickers_build_forDebug_addAccount( ticker , dateTime ); this.calculatedTickers++; if ( Math.Floor( this.calculatedTickers / eligibleAccounts.Count * 100 ) > *************** *** 99,103 **** index >= this.eligibleAccounts.Count - this.numberBestPerformingTickers ; index-- ) ! this.Add( this.eligibleAccounts[ index ] ); } /// <summary> --- 108,151 ---- index >= this.eligibleAccounts.Count - this.numberBestPerformingTickers ; index-- ) ! { ! ComparableAccount account = (ComparableAccount)this.eligibleAccounts[ index ]; ! this.Add( account ); ! } ! } ! #endregion ! private void setTickers_build_addTickerWithGoodness( string ticker , DateTime dateTime ) ! { ! HistoricalEndOfDayTimer historicalEndOfDayTimer = ! new HistoricalEndOfDayTimer( ! new EndOfDayDateTime( dateTime.AddDays( -this.numberDaysForPerformanceCalculation ) , ! EndOfDaySpecificTime.MarketOpen ) ); ! ComparableAccount account = new ComparableAccount( ticker , historicalEndOfDayTimer , ! new HistoricalEndOfDayDataStreamer( historicalEndOfDayTimer , ! this.historicalQuoteProvider ) , ! new HistoricalEndOfDayOrderExecutor( historicalEndOfDayTimer , ! this.historicalQuoteProvider ) ); ! OneRank oneRank = new OneRank( account , dateTime ); ! this.tickersWithGoodness.Add( account.Key , account.Goodness ); ! } ! private void setTickers_build( EligibleTickers eligibleTickers , DateTime dateTime ) ! { ! this.tickersWithGoodness.Clear(); ! foreach ( string ticker in eligibleTickers.Keys ) ! { ! setTickers_build_addTickerWithGoodness( ticker , dateTime ); ! this.calculatedTickers++; ! if ( Math.Floor( this.calculatedTickers / this.tickersWithGoodness.Count * 100 ) > ! Math.Floor( ( this.calculatedTickers - 1 ) / this.tickersWithGoodness.Count * 100 ) ) ! // a new time percentage point has been elapsed ! this.NewProgress( this , new NewProgressEventArgs( ! Convert.ToInt32( Math.Floor( this.calculatedTickers / eligibleTickers.Count * 100 ) ) , ! 100 ) ); ! } ! for ( int index=this.tickersWithGoodness.Count - 1 ; ! index >= this.tickersWithGoodness.Count - this.numberBestPerformingTickers ; ! index-- ) ! { ! this.Add( this.tickersWithGoodness.GetKey( index ) ); ! } } /// <summary> *************** *** 110,114 **** this.NewProgress( this , new NewProgressEventArgs( 0 , 100 ) ); this.Clear(); ! this.eligibleAccounts.Clear(); this.setTickers_build( eligibleTickers , dateTime ); this.lastUpdate = dateTime; --- 158,162 ---- this.NewProgress( this , new NewProgressEventArgs( 0 , 100 ) ); this.Clear(); ! // this.setTickers_build_forDebug( eligibleTickers , dateTime ); this.setTickers_build( eligibleTickers , dateTime ); this.lastUpdate = dateTime; |