[Quantproject-developers] QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag WeightedPositi
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2006-10-08 16:13:57
|
Update of /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv4107/b7_Scripts/WalkForwardTesting/WalkForwardLag Modified Files: WeightedPositions.cs Log Message: The GetNormalizedWeights public method has been added: given a generic set of virtual weights, it returns proportionate weights whose absolute values sum up to 1 Index: WeightedPositions.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag/WeightedPositions.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** WeightedPositions.cs 8 Sep 2006 15:32:27 -0000 1.2 --- WeightedPositions.cs 8 Oct 2006 16:13:54 -0000 1.3 *************** *** 275,279 **** tickers ); } ! } } --- 275,315 ---- tickers ); } ! #region GetNormalizedWeights ! private static double getAbsoluteWeightSum( double[] nonNormalizedWeights ) ! { ! double absoluteWeightSum = 0; ! foreach ( double nonNormalizedWeight in nonNormalizedWeights ) ! absoluteWeightSum += Math.Abs( nonNormalizedWeight ); ! return absoluteWeightSum; ! } ! private static double getNormalizingFactor( double[] nonNormalizedWeights ) ! { ! double absoluteWeightSum = ! getAbsoluteWeightSum( nonNormalizedWeights ); ! double normalizingFactor = 1 / absoluteWeightSum; ! return normalizingFactor; ! } ! private static double[] getNormalizedWeights( double[] nonNormalizedWeights , ! double normalizingFactor ) ! { ! double[] normalizedWeights = new double[ nonNormalizedWeights.Length ]; ! for ( int i = 0 ; i < nonNormalizedWeights.Length ; i ++ ) ! normalizedWeights[ i ] = nonNormalizedWeights[ i ] * normalizingFactor; ! return normalizedWeights; ! } ! /// <summary> ! /// Returns weights whose absolute values sum up to 1 ! /// </summary> ! /// <param name="nonNormalizedWeights"></param> ! /// <returns></returns> ! /// ! public static double[] GetNormalizedWeights( double[] nonNormalizedWeights ) ! { ! double normalizingFactor = ! getNormalizingFactor( nonNormalizedWeights ); ! return ! getNormalizedWeights( nonNormalizedWeights , normalizingFactor ); ! } ! #endregion } } |