[Quantproject-developers] QuantProject/b7_Scripts/WalkForwardTesting/PairsTrading/Strategies Pairs
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2008-12-10 19:40:05
|
Update of /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/PairsTrading/Strategies In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14383/b7_Scripts/WalkForwardTesting/PairsTrading/Strategies Modified Files: PairsTradingIntradayStrategy.cs Log Message: - parameters checking has been added - a new method private DateTime getDateTimeToClosePositions() has been added Index: PairsTradingIntradayStrategy.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/PairsTrading/Strategies/PairsTradingIntradayStrategy.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PairsTradingIntradayStrategy.cs 20 Nov 2008 20:57:53 -0000 1.2 --- PairsTradingIntradayStrategy.cs 10 Dec 2008 19:39:53 -0000 1.3 *************** *** 69,72 **** --- 69,76 ---- historicalMarketValueProviderForInSample ) { + this.checkParameters( + firstTimeToTestInefficiency , + lastTimeToTestInefficiency , + timeToClosePositions ); this.firstTimeToTestInefficiency = firstTimeToTestInefficiency; this.lastTimeToTestInefficiency = lastTimeToTestInefficiency; *************** *** 77,80 **** --- 81,97 ---- } + private void checkParameters( + Time firstTimeToTestInefficiency , + Time lastTimeToTestInefficiency , + Time timeToClosePositions ) + { + if ( firstTimeToTestInefficiency >= lastTimeToTestInefficiency ) + throw new Exception( + "firstTimeToTestInefficiency must come before lastTimeToTestInefficiency" ); + if ( lastTimeToTestInefficiency >= timeToClosePositions ) + throw new Exception( + "lastTimeToTestInefficiency must come before timeToClosePositions" ); + } + protected override string getTextIdentifier() { *************** *** 112,135 **** #region getPositionsToBeOpened ! private DateTime getFirstDateTimeToTestInefficiency() { DateTime now = this.now(); ! DateTime firstDateTimeToTestInefficiency = new DateTime( now.Year , now.Month , now.Day , ! this.firstTimeToTestInefficiency.Hour , ! this.firstTimeToTestInefficiency.Minute , ! this.firstTimeToTestInefficiency.Second ); return firstDateTimeToTestInefficiency; } private DateTime getLastDateTimeToTestInefficiency() { ! DateTime now = this.now(); ! DateTime lastDateTimeToTestInefficiency = new DateTime( ! now.Year , now.Month , now.Day , ! this.lastTimeToTestInefficiency.Hour , ! this.lastTimeToTestInefficiency.Minute , ! this.lastTimeToTestInefficiency.Second ); return lastDateTimeToTestInefficiency; } protected override WeightedPositions getPositionsToBeOpened() { --- 129,170 ---- #region getPositionsToBeOpened ! private DateTime getDateTimeForCurrentDate( Time time ) { DateTime now = this.now(); ! DateTime dateTimeForCurrentDate = new DateTime( now.Year , now.Month , now.Day , ! time.Hour , time.Minute , time.Second ); ! return dateTimeForCurrentDate; ! } ! private DateTime getFirstDateTimeToTestInefficiency() ! { ! // DateTime now = this.now(); ! // DateTime firstDateTimeToTestInefficiency = new DateTime( ! // now.Year , now.Month , now.Day , ! // this.firstTimeToTestInefficiency.Hour , ! // this.firstTimeToTestInefficiency.Minute , ! // this.firstTimeToTestInefficiency.Second ); ! DateTime firstDateTimeToTestInefficiency = ! this.getDateTimeForCurrentDate( this.firstTimeToTestInefficiency ); return firstDateTimeToTestInefficiency; } private DateTime getLastDateTimeToTestInefficiency() { ! // DateTime now = this.now(); ! // DateTime lastDateTimeToTestInefficiency = new DateTime( ! // now.Year , now.Month , now.Day , ! // this.lastTimeToTestInefficiency.Hour , ! // this.lastTimeToTestInefficiency.Minute , ! // this.lastTimeToTestInefficiency.Second ); ! DateTime lastDateTimeToTestInefficiency = ! this.getDateTimeForCurrentDate( this.lastTimeToTestInefficiency ); return lastDateTimeToTestInefficiency; } + private DateTime getDateTimeToClosePositions() + { + DateTime dateTimeToClosePositions = + this.getDateTimeForCurrentDate( this.timeToClosePositions ); + return dateTimeToClosePositions; + } protected override WeightedPositions getPositionsToBeOpened() { *************** *** 138,141 **** --- 173,181 ---- DateTime lastDateTimeToTestInefficiency = this.getLastDateTimeToTestInefficiency(); + // attention! we are looking in the future here, but we do it + // just to avoid picking a ticker for which we don't have + // the market value when we will close the positions + DateTime dateTimeToClosePositions = + this.getDateTimeToClosePositions(); WeightedPositions weightedPositions = this.outOfSampleChooser.GetPositionsToBeOpened( *************** *** 143,146 **** --- 183,187 ---- firstDateTimeToTestInefficiency , lastDateTimeToTestInefficiency , + dateTimeToClosePositions , this.historicalMarketValueProviderForChosingPositionsOutOfSample , this.inSampleReturnsManager ); |