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
! }
|