Applying Sigmoid curve or error function may reanimate Q's Open Contest ranking system which is in critical condition.
But let's look deeper why it is ill?
Look at elements.
There are three kind of them: GOOD, BAD, GOOD to BAD ratios.
GOOD
Annualized Return - the main and the only one which you can deposit to your bank account.
I will add Omega Ratio which is defined as the probability weighted ratio of gains versus losses for some threshold return target
=SUM(IF(Returns > RiskFreeReturn, Returns - RiskFreeReturn,"")) / -SUM(IF(Returns < RiskFreeReturn, Returns - RiskFreeReturn,""))
BAD
Annualized Volatility- the lower the better.
It actually may be interpreted as ratio:
=1/StDev(Returns)*SQRT(252)
Deviation from the mean if it is up is GOOD
Deviation from the mean if it is down is BAD
That is why I recommend instead of Standard Deviation use Downside deviation or Ulcer Index.
Maximum Drowdown - the lower the better.
It actually may be interpreted as ratio:
1/Maximum Drowdown
Beta to SPY - the lower absolute value the better.
It actually may be interpreted as ratio:
1/absolute Beta to SPY
It used in Treynor ratio but my personal opinion is: The best algo should have as big positive
beta as volatility allowed in bull market and as lower negative beta as volatility allowed in bear market.
GOOD to BAD ratios
Sharpe Ratio
Annualized Excessive Risk Free Return /Annualized StDev Excessive Risk Free Return
Deviation from the mean if it is up is GOOD Deviation from the mean if it is down is BAD .
That is why I recommend instead of Standard Deviation use Downside deviation or Ulcer Index.In other words I recommend replace Sharpe Ratio by Martin Ratio оr Sortino Ratio.
Calmar Ratio
the formula Q use
Annualized Excessive Risk Free Return /Maximum Drowdown
is actually not Calmar Ratio (Calmar Ratio require 36 month window for calculation).
Now look at this
Five of eight components have BAD in denominator.
What happens if they follow the command "the lower the better"?
It doesn't metter what the main goal- Annualized Return is it needs just be positive and all the ratios will go to positive infinity.
That is the problem!
I compared 3 algo in Excel
Algo 1 was just 1 day in the market and made 1%
1 Month statistics
Return 0.010
StDev Return 0.001
Beta 0.010
Ulcer Index 0.001
Max Drowdown 0.001
Algo 2 was all the time in SHY (money market)
1 Month statistics
Return 0.002
StDev Return 0.001
Beta -0.004
Ulcer Index 0.002
Max Drowdown 0.008
Algo 3 was in the market all month and made 4%
1 Month statistics
Return 0.040
StDev Return 0.015
Beta 0.300
Ulcer Index 0.010
Max Drowdown 0.015
All Components statistic (I included some other than Q components but it dose not really meta)
Algo 1 Algo 2 Algo 3 Algo 1 Algo 2 Algo 3
Annualized Annualized Annualized Rank Rank Rank
Return 0.12682503 0.024265768 0.601032219 2 3 1
StDev Return 0.015874508 0.015874508 0.238117618 1 1 3
Beta 0.01 -0.00387779 0.3 2 1 3
Ulcer Index 0.001 0.001968738 0.01 1 2 3
Max Drowdown 0.001 0.008406944 0.015 1 2 3
Sharpe Ratio 7.989225946 1.528599699 2.524098064 1 3 2
Treynor Ratio 12.68250301 -6.257627387 2.003440729 1 3 2
Martin Ratio 126.8250301 12.32554373 60.10322186 1 3 2
Calmar ratio 126.8250301 2.886395724 40.06881457 1 3 2
Total Score 11 21 21
Let's not talk about the winner but the losers.
The ranking system give both 21 but Algo 2 has 2.4% Annualized Return and Algo 3 has 60.1% 30 times more
It is definitely the best by all means but not by the ranking.
How to fix the problem?
Most of trading software packages has his own single number score indicator (WealthLab Score, Tradery Score...)
Why Quantopian not to have such one?
Let me create QuantopVYan Score
Numerator(all GOOD)=((1+Annualized Return)**Kret-1) * Omega Ratio
Denominator(all BAD)=((1+StDev)**Kstd)*((1+abs(Beta))**Kbeta)*((1+Ulcer Index)**Kulcer)*((1+MDD)**Kmdd)
QuantopVYan Score=Numerator/Denominator
Results with the same data and Kret=1,Kstd=1,Kbeta=1,Kulcer=1,Kmdd=1
(I did not include omega ratio in my Excel calculation just Annualized Return)
Algo 1 Algo 2 Algo 3
QuantopVYan Score QuantopVYan Score QuantopVYan Score
0.126343947 0.024041225 0.646943894
Rank Rank Rank
2 3 1
Everyone on its place.
Now it is ready to play with K's and apply sigmoid curve or error function for better fitness ,