[Quantproject-developers] QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag WeightedPositi
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2007-08-07 16:51:48
|
Update of /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv22704/b7_Scripts/WalkForwardTesting/WalkForwardLag Modified Files: WeightedPositions.cs Log Message: - fixed bug in the GetBalancedWeights public method - SignedTickers and SignedTicker classes are now used, instead of plain text strings Index: WeightedPositions.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag/WeightedPositions.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** WeightedPositions.cs 1 Aug 2007 23:12:46 -0000 1.6 --- WeightedPositions.cs 7 Aug 2007 16:51:44 -0000 1.7 *************** *** 307,321 **** } private static float getTickerReturnsStandardDeviations( int tickerIndex , ! string[] signedTickers , ReturnsManager returnsManager ) { ! string ticker = SignedTicker.GetTicker( signedTickers[ tickerIndex ] ); return returnsManager.GetReturnsStandardDeviation( ticker ); } private static float[] getTickersReturnsStandardDeviations( ! string[] signedTickers , ReturnsManager returnsManager ) { float[] tickersReturnsStandardDeviations = ! new float[ signedTickers.Length ]; ! for ( int i = 0 ; i < signedTickers.Length ; i++ ) tickersReturnsStandardDeviations[ i ] = getTickerReturnsStandardDeviations( i , --- 307,321 ---- } private static float getTickerReturnsStandardDeviations( int tickerIndex , ! SignedTickers signedTickers , ReturnsManager returnsManager ) { ! string ticker = signedTickers[ tickerIndex ].Ticker; return returnsManager.GetReturnsStandardDeviation( ticker ); } private static float[] getTickersReturnsStandardDeviations( ! SignedTickers signedTickers , ReturnsManager returnsManager ) { float[] tickersReturnsStandardDeviations = ! new float[ signedTickers.Count ]; ! for ( int i = 0 ; i < signedTickers.Count ; i++ ) tickersReturnsStandardDeviations[ i ] = getTickerReturnsStandardDeviations( i , *************** *** 347,359 **** standardDeviations , maxStandardDeviation ); } ! /// <summary> ! /// Returns weights balanced with respect to the close to close volatility, ! /// in the given period ! /// (the most volatile ticker is given the lighter weight) ! /// </summary> ! /// <param name="signedTickers"></param> ! /// <returns></returns> ! public static double[] GetBalancedWeights( ! string[] signedTickers , ReturnsManager returnManager ) { float[] standardDeviations = --- 347,352 ---- standardDeviations , maxStandardDeviation ); } ! private static double[] getUnsignedNormalizedBalancedWeights( ! SignedTickers signedTickers , ReturnsManager returnManager ) { float[] standardDeviations = *************** *** 366,369 **** --- 359,402 ---- return normalizedBalancedWeights; } + private static double[] getSignedNormalizedBalancedWeights( + double[] multipliers , + double[] unsignedNormalizedBalancedWeights ) + { + double[] signedNormalizedBalancedWeights = + new double[ unsignedNormalizedBalancedWeights.Length ]; + for( int i = 0 ; i < unsignedNormalizedBalancedWeights.Length ; i++ ) + signedNormalizedBalancedWeights[ i ] = + multipliers[ i ] * unsignedNormalizedBalancedWeights[ i ]; + return signedNormalizedBalancedWeights; + } + private static double[] getSignedNormalizedBalancedWeights( + SignedTickers signedTickers , + double[] unsignedNormalizedBalancedWeights ) + { + double[] multipliers = + signedTickers.Multipliers; + double[] signedNormalizedBalancedWeights = + getSignedNormalizedBalancedWeights( multipliers , + unsignedNormalizedBalancedWeights ); + return signedNormalizedBalancedWeights; + } + /// <summary> + /// Returns weights balanced with respect to the close to close volatility, + /// in the given period + /// (the most volatile ticker is given the lighter weight) + /// </summary> + /// <param name="signedTickers"></param> + /// <returns></returns> + public static double[] GetBalancedWeights( + SignedTickers signedTickers , ReturnsManager returnManager ) + { + double[] unsignedNormalizedBalancedWeights = + getUnsignedNormalizedBalancedWeights( + signedTickers , returnManager ); + double[] balancedWeights = + getSignedNormalizedBalancedWeights( + signedTickers , unsignedNormalizedBalancedWeights ); + return balancedWeights; + } #endregion //GetBalancedWeights #region GetReturn |