Update of /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/PairsTrading
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv19892/b7_Scripts/WalkForwardTesting/PairsTrading
Modified Files:
PairsTradingStrategy.cs
Log Message:
A bad bug has been fixed: a candidate position is reversed, now
Index: PairsTradingStrategy.cs
===================================================================
RCS file: /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/PairsTrading/PairsTradingStrategy.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** PairsTradingStrategy.cs 6 Mar 2008 20:20:50 -0000 1.2
--- PairsTradingStrategy.cs 13 Mar 2008 19:43:43 -0000 1.3
***************
*** 183,186 ****
--- 183,205 ----
return returnForTheLastSecondPhaseInterval;
}
+
+ /// <summary>
+ /// Inverts one of the two positions
+ /// </summary>
+ /// <param name="weightedPositions"></param>
+ /// <returns></returns>
+ private WeightedPositions getCandidateForPortfolio(
+ WeightedPositions weightedPositions )
+ {
+ double[] weights = new double[ 2 ];
+ weights[ 0 ] = ((WeightedPosition)weightedPositions[ 0 ]).Weight;
+ weights[ 1 ] = -((WeightedPosition)weightedPositions[ 1 ]).Weight;
+ string[] tickers = new String[ 2 ];
+ tickers[ 0 ] = ((WeightedPosition)weightedPositions[ 0 ]).Ticker;
+ tickers[ 1 ] = ((WeightedPosition)weightedPositions[ 1 ]).Ticker;
+ WeightedPositions candidateForPortfolio =
+ new WeightedPositions( weights , tickers );
+ return candidateForPortfolio;
+ }
// if the currentWeightedPositions' return satisfies the thresholds
// then this method returns the WeightedPositions to be opened.
***************
*** 227,233 ****
WeightedPositions currentWeightedPositions =
this.bestTestingPositionsInSample[ currentTestingPositionsIndex ].WeightedPositions;
WeightedPositions weightedPositionsToBeOpended =
this.getPositionsToBeOpenedWithRespectToCurrentWeightedPositions(
! returnsManager , currentWeightedPositions );
return weightedPositionsToBeOpended;
}
--- 246,254 ----
WeightedPositions currentWeightedPositions =
this.bestTestingPositionsInSample[ currentTestingPositionsIndex ].WeightedPositions;
+ WeightedPositions candidateForPortfolio =
+ this.getCandidateForPortfolio( currentWeightedPositions );
WeightedPositions weightedPositionsToBeOpended =
this.getPositionsToBeOpenedWithRespectToCurrentWeightedPositions(
! returnsManager , candidateForPortfolio );
return weightedPositionsToBeOpended;
}
***************
*** 290,293 ****
--- 311,315 ----
new PairsTradingLogItem( this.now() ,
this.bestTestingPositionsInSample ,
+ this.numDaysForInSampleOptimization ,
eligibleTickers.Count );
// logItem.BestWeightedPositionsInSample =
|