[Quantproject-developers] QuantProject/b7_Scripts/WalkForwardTesting/PairsTrading PairsTradingMain
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2008-11-08 20:36:47
|
Update of /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/PairsTrading In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19578/b7_Scripts/WalkForwardTesting/PairsTrading Modified Files: PairsTradingMain.cs Log Message: The test has been changed to use intraday data, out of sample Index: PairsTradingMain.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/PairsTrading/PairsTradingMain.cs,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** PairsTradingMain.cs 29 Sep 2008 21:21:34 -0000 1.18 --- PairsTradingMain.cs 8 Nov 2008 20:36:36 -0000 1.19 *************** *** 19,23 **** along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ using System; --- 19,23 ---- along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ using System; *************** *** 37,40 **** --- 37,41 ---- using QuantProject.Business.Strategies.ReturnsManagement.Time.IntervalsSelectors; using QuantProject.Business.Timing; + using QuantProject.Data.DataProviders.Bars.Caching; using QuantProject.Presentation; using QuantProject.Scripts.General; *************** *** 68,77 **** this.historicalMarketValueProviderForChosingPositionsOutOfSample = ! new HistoricalAdjustedQuoteProvider(); // this.historicalQuoteProviderForChosingPositionsOutOfSample = // new HistoricalRawQuoteProvider(); this.historicalMarketValueProviderForTheBacktesterAccount = ! new HistoricalRawQuoteProvider(); // this.historicalQuoteProviderForTheBacktesterAccount = // new HistoricalAdjustedQuoteProvider(); --- 69,82 ---- this.historicalMarketValueProviderForChosingPositionsOutOfSample = ! this.getHistoricalBarProvider(); ! // this.historicalMarketValueProviderForChosingPositionsOutOfSample = ! // new HistoricalAdjustedQuoteProvider(); // this.historicalQuoteProviderForChosingPositionsOutOfSample = // new HistoricalRawQuoteProvider(); this.historicalMarketValueProviderForTheBacktesterAccount = ! this.historicalMarketValueProviderForChosingPositionsOutOfSample; ! // this.historicalMarketValueProviderForTheBacktesterAccount = ! // new HistoricalRawQuoteProvider(); // this.historicalQuoteProviderForTheBacktesterAccount = // new HistoricalAdjustedQuoteProvider(); *************** *** 80,83 **** --- 85,117 ---- // IEquityEvaluator equityEvaluator = new SharpeRatio(); } + + #region getHistoricalBarProvider + + #region getBarCache + private DateTime[] getDailyTimes() + { + DateTime[] dailyTimes = { + new DateTime( 1900 , 1 , 1 , 10 , 0 , 0 ) , + new DateTime( 1900 , 1 , 1 , 10 , 30 , 0 ) , + new DateTime( 1900 , 1 , 1 , 11 , 0 , 0 ) + }; + return dailyTimes; + } + private IBarCache getBarCache() + { + DateTime[] dailyTimes = this.getDailyTimes(); + IBarCache barCache = new DailyBarCache( 60 , dailyTimes ); + return barCache; + } + #endregion getBarCache + + private HistoricalBarProvider getHistoricalBarProvider() + { + IBarCache barCache = getBarCache(); + HistoricalBarProvider historicalBarProvider = + new HistoricalBarProvider( barCache ); + return historicalBarProvider; + } + #endregion getHistoricalBarProvider protected override IEligiblesSelector getEligiblesSelector() *************** *** 101,109 **** eligiblesSelector = new ByPriceMostLiquidLessVolatileOTCAlwaysQuoted( ! tickersGroupId , ! true , ! maxNumberOfEligiblesToBeChosen , ! maxNumberOfEligiblesToBeChosen + 50 , ! 10 , 10 , 20 , 75 ); --- 135,143 ---- eligiblesSelector = new ByPriceMostLiquidLessVolatileOTCAlwaysQuoted( ! tickersGroupId , ! true , ! maxNumberOfEligiblesToBeChosen , ! maxNumberOfEligiblesToBeChosen + 50 , ! 10 , 10 , 20 , 75 ); *************** *** 137,148 **** IInSampleChooser inSampleChooser = new PairsTradingGeneticChooser( ! numberOfBestTestingPositionsToBeReturned , ! this.benchmark , ! decoderForWeightedPositions , fitnessEvaluator , ! this.historicalMarketValueProviderForInSample , ! crossoverRate , mutationRate , elitismRate , ! populationSizeForGeneticOptimizer , ! generationNumberForGeneticOptimizer , ! seedForRandomGenerator ); inSampleChooser = --- 171,182 ---- IInSampleChooser inSampleChooser = new PairsTradingGeneticChooser( ! numberOfBestTestingPositionsToBeReturned , ! this.benchmark , ! decoderForWeightedPositions , fitnessEvaluator , ! this.historicalMarketValueProviderForInSample , ! crossoverRate , mutationRate , elitismRate , ! populationSizeForGeneticOptimizer , ! generationNumberForGeneticOptimizer , ! seedForRandomGenerator ); inSampleChooser = *************** *** 187,191 **** OutOfSampleChooser outOfSampleChooser = new OutOfSampleChooserForSingleLongAndShort( ! 0.006 , 0.02 , 0.006 , 0.02 ); // outOfSampleChooser = // new OutOfSampleChooserForExactNumberOfBestLongPositions( --- 221,225 ---- OutOfSampleChooser outOfSampleChooser = new OutOfSampleChooserForSingleLongAndShort( ! 0.006 , 0.02 , 0.006 , 0.02 ); // outOfSampleChooser = // new OutOfSampleChooserForExactNumberOfBestLongPositions( *************** *** 194,203 **** IStrategyForBacktester strategyForBacktester = new PairsTradingStrategy( ! 7 , inSampleDays , ! intervalsSelectorForInSample , intervalsSelectorForOutOfSample , ! eligiblesSelector , inSampleChooser , ! this.historicalMarketValueProviderForInSample , ! this.historicalMarketValueProviderForChosingPositionsOutOfSample , ! outOfSampleChooser ); // IEndOfDayStrategyForBacktester endOfDayStrategyForBacktester = // new PairsTradingStrategy( --- 228,237 ---- IStrategyForBacktester strategyForBacktester = new PairsTradingStrategy( ! 7 , inSampleDays , ! intervalsSelectorForInSample , intervalsSelectorForOutOfSample , ! eligiblesSelector , inSampleChooser , ! this.historicalMarketValueProviderForInSample , ! this.historicalMarketValueProviderForChosingPositionsOutOfSample , ! outOfSampleChooser ); // IEndOfDayStrategyForBacktester endOfDayStrategyForBacktester = // new PairsTradingStrategy( *************** *** 224,228 **** DateTime firstDateTime = new DateTime( 2001 , 1 , 1 ); ! firstDateTime = new DateTime( 2006 , 8 , 1 ); DateTime lastDateTime = new DateTime( 2008 , 4 , 30 ); --- 258,262 ---- DateTime firstDateTime = new DateTime( 2001 , 1 , 1 ); ! firstDateTime = new DateTime( 2006 , 8 , 1 ); DateTime lastDateTime = new DateTime( 2008 , 4 , 30 ); *************** *** 235,243 **** EndOfDayStrategyBackTester endOfDayStrategyBackTester = new EndOfDayStrategyBackTester( ! backTestId , this.strategyForBacktester , ! this.historicalMarketValueProviderForTheBacktesterAccount , ! accountProvider , ! firstDateTime , lastDateTime , ! this.benchmark , cashToStart , maxRunningHours ); return endOfDayStrategyBackTester; } --- 269,277 ---- EndOfDayStrategyBackTester endOfDayStrategyBackTester = new EndOfDayStrategyBackTester( ! backTestId , this.strategyForBacktester , ! this.historicalMarketValueProviderForTheBacktesterAccount , ! accountProvider , ! firstDateTime , lastDateTime , ! this.benchmark , cashToStart , maxRunningHours ); return endOfDayStrategyBackTester; } |