CryptoRobotFr / TrueStrategy

56 stars 89 forks source link

Calcul de la performance relative du bot incorrecte #3

Open antonio-fr opened 2 years ago

antonio-fr commented 2 years ago

Le calcul de la performance du bot relative par hold n'est pas correcte. Exemple :

Coin Price from 23.13 to 19.48 $ Final balance bot wallet : 562.54 $ Performance vs USD : -43.75 % Buy and Hold Performance : -15.79 % Performance vs Buy&Hold : 177.08 %

Cela donne l’impression que le bot a surperformé de 77% par rapport au hold, alors qu'il a perdu presque la moitié, et le hold n'a perdu que 15%. Approximativement, le bot a perdu 28% de plus (-43,8 - -15,8)

Calcul de la performance relative actuelle : par exemple dans _TrixStrategy/Trix_Completebacktest.ipynb vsHoldPercentage = ((algoPercentage - holdPercentage)/holdPercentage) * 100

On voit bien que la formule prend des pourcentages pour des réels relatifs, des nombres qui devraient être par rapport à 1, non à 100, et cela crée des problèmes de signes.

Je propose la correction suivante

algPerf = (100+algoPercentage)/100
hPerf = (100+holdPercentage)/100
vsHoldPercentage = ((algPerf - hPerf)/hPerf) * 100

Avec les données de l'exemple, cela donne la performance vs Buy&Hold : -33,2 % On a bien perfHold relative = perfBot : ( 1-0.1579 ) 0.668 = 0.5625 -> -43,75% la performance du bot, le bot a mangé 33% par rapport au hold.