[Quantproject-developers] QuantProject/b7_Scripts/WalkForwardTesting/PairsTrading PairsTradingStra
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2008-03-13 19:43:50
|
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 = |