Plantage d’un Algo en mode reel
Forums › ProRealTime forum Français › Support ProOrder › Plantage d’un Algo en mode reel
- This topic has 24 replies, 5 voices, and was last updated 1 year ago by Nicolas.
-
-
01/20/2023 at 6:43 PM #207789
Bonsoir,
J’ai lancé mon algo en mode réel, et après une heure d’éxécution, PRT affiche le message suivant : server.strategy.probacktest.error.obacktest.error.negative_or_zero_param.call
Pourriez vous m’éclairer de quoi il s’agit ?
PS : Cet algo a été backtesté 500 fois sans aucun problème01/21/2023 at 10:16 PM #207848L’utilisation du terme backtest dans le message d’erreur prête à confusion … ce n’est pas une erreur rencontrée dans le backtest (le backtest ignore ces erreurs 🙁 ).
Le message d’erreur vous indique que votre code calcule une valeur nulle ou négative. Cela se produit souvent lorsque, par exemple, une barre est manquante ou a une valeur élevée, basse, ouverte et fermée à la même valeur, etc.
J’ai corrigé plusieurs de mes stratégies (après avoir reçu le même message que vous montrez) en utilisant ci-dessous …
max(1, xyz)
Ci-dessus donne la valeur = 1 si xyz se traduit par une valeur nulle ou négative.
L’espoir ci-dessus a du sens, dites simplement si ce n’est pas le cas ? Si vous publiez votre code, nous pourrons peut-être vous aider davantage.
01/22/2023 at 11:12 AM #207850L’idée du
max(1, xyz)
me donnait un suspect à propos de ce bloc d’instruction :
12345678910111213141516171819TimeFrame(15 Minutes, UpdateOnClose)//-----OHLC-----My15MnOpen = OpenMy15MnHigh = HighMy15MnLow = LowMy15MnClose = Close//-----OHLC-----//--- Heikin Ashi ---xClose = (My15MnOpen + My15MnHigh + My15MnLow + My15MnClose)/4If BarIndex=0 ThenxOpen = My15MnOpenxHigh = My15MnHighxLow = My15MnLowElsexOpen = (xOpen[1]+xClose[1])/2xHigh = Max(max(My15MnHigh, xOpen), xClose)xLow = Min(min(My15MnLow, xOpen), xClose)EndifMerci de votre aide
01/22/2023 at 12:03 PM #20785401/22/2023 at 12:11 PM #20785501/22/2023 at 12:25 PM #20785601/22/2023 at 12:45 PM #207857-
- Le code ci-dessous est-il votre code d’origine avec lequel vous avez eu un problème?
Ou alors
2. Avez-vous ajouté le max et le min après que j’ai mentionné max dans mon post précédent ?
12xHigh = Max(max(My15MnHigh, xOpen), xClose)xLow = Min(min(My15MnLow, xOpen), xClose)01/22/2023 at 12:45 PM #20785801/22/2023 at 2:17 PM #20786201/22/2023 at 2:20 PM #20786301/22/2023 at 2:30 PM #20786401/22/2023 at 2:53 PM #20786501/22/2023 at 2:59 PM #207866Il serait préférable de faire fonctionner 2 systèmes côte à côte …
Système 1 – votre système d’origine
Système 2 – le système modifiéEnsuite, si le système 1 s’arrête avec le message d’erreur, mais que le système 2 ne s’arrête pas, vous savez que vous avez trouvé le problème dans le code.
01/22/2023 at 3:04 PM #207868Très bien, merci beaucoup mais il y a erreur de syntaxe, alors j’ai modifié comme ceci :
xHigh = Max(1, Max(Max(high, xOpen), xClose))
xLow = Min(1, Min(Min(Low, xOpen), xClose))L’erreur venait de moi, je suis devenu étourdi
01/23/2023 at 2:42 PM #207985 -
-
AuthorPosts
Find exclusive trading pro-tools on