[Quantproject-developers] QuantProject/b1_ADT/Statistics AdvancedFunctions.cs,1.2,1.3
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2006-06-01 23:33:28
|
Update of /cvsroot/quantproject/QuantProject/b1_ADT/Statistics In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv3805/b1_ADT/Statistics Modified Files: AdvancedFunctions.cs Log Message: The GetExpectancyScore public method has been added Index: AdvancedFunctions.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b1_ADT/Statistics/AdvancedFunctions.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AdvancedFunctions.cs 3 Sep 2005 23:56:26 -0000 1.2 --- AdvancedFunctions.cs 1 Jun 2006 23:33:23 -0000 1.3 *************** *** 124,128 **** return sharpeRatio; } ! } --- 124,172 ---- return sharpeRatio; } ! #region GetExpectancyScore ! public static double GetExpectancyScore( ICollection returns ) ! { ! double winningPeriods = 0; ! double losingPeriods = 0; ! double sumOfWinningReturns = 0; ! double sumOfLosingReturns = 0; ! double maxWinningReturn = Double.MinValue; ! double averageWinningReturn; ! double averageLosingReturn; ! double probabilityOfWinning; ! double probabilityOfLosing; ! foreach ( double singleReturn in returns ) ! { ! if ( singleReturn > 0 ) ! { ! winningPeriods++; ! sumOfWinningReturns += singleReturn; ! if ( singleReturn > maxWinningReturn ) ! maxWinningReturn = singleReturn; ! } ! if ( singleReturn < 0 ) ! { ! losingPeriods++; ! sumOfLosingReturns += singleReturn; ! } ! } ! ! averageWinningReturn = ( sumOfWinningReturns - maxWinningReturn ) ! / ( winningPeriods - 1 ); ! averageLosingReturn = sumOfLosingReturns / losingPeriods; ! probabilityOfWinning = ( winningPeriods - 1 ) / ! ( winningPeriods + losingPeriods - 1 ); ! probabilityOfLosing = losingPeriods / ! ( winningPeriods + losingPeriods - 1 ); ! ! double expectancyScore = ! ( averageWinningReturn * probabilityOfWinning + ! averageLosingReturn * probabilityOfLosing ) / ! Math.Abs( averageLosingReturn ) / ! ( winningPeriods + losingPeriods - 1 ); ! return expectancyScore; ! } ! #endregion ! } |