Plantage d’un Algo en mode reel

Viewing 15 posts - 1 through 15 (of 25 total)
  • Author
    Posts
  • #207789 quote
    wtangsiri
    Participant
    Junior

    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ème

    #207848 quote
    GraHal
    Participant
    Master

    L’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. 

    #207850 quote
    wtangsiri
    Participant
    Junior

     

    L’idée du

    max(1, xyz)

     

    me donnait un suspect à propos de ce bloc d’instruction :

    TimeFrame(15 Minutes, UpdateOnClose)
    //-----OHLC-----
    My15MnOpen  = Open
    My15MnHigh  = High
    My15MnLow   = Low
    My15MnClose = Close
    //-----OHLC-----
    
    //--- Heikin Ashi ---
    xClose = (My15MnOpen + My15MnHigh + My15MnLow + My15MnClose)/4
    If BarIndex=0 Then
    xOpen = My15MnOpen
    xHigh = My15MnHigh
    xLow = My15MnLow
    Else
    xOpen = (xOpen[1]+xClose[1])/2
    xHigh = Max(max(My15MnHigh, xOpen), xClose)
    xLow = Min(min(My15MnLow, xOpen), xClose)
    Endif

     

    Merci de votre aide

    #207854 quote
    GraHal
    Participant
    Master

    Êtes-vous en train de dire que vous êtes trié maintenant ou demandez-vous toujours de l’aide ?

    #207855 quote
    wtangsiri
    Participant
    Junior

    Pardon

    Mon problème n’est toujours pas résolu, et je ne sais pas d’où vient ce problème
    J’ai besoin de l’aide svp

    #207856 quote
    wtangsiri
    Participant
    Junior

    Dois je modifier la ligne avec cette instruction If Barindex < 15  ? étant donné que je teste un Heikin Ashi en TimeFrame 15 minutes

    Merci pour réponse

    #207857 quote
    GraHal
    Participant
    Master
      1.  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 ?

    xHigh = Max(max(My15MnHigh, xOpen), xClose)
    xLow = Min(min(My15MnLow, xOpen), xClose)
    #207858 quote
    GraHal
    Participant
    Master

    If Barindex < 15

    Quelle ligne de code est au-dessus… Je ne la vois pas ?

    #207862 quote
    wtangsiri
    Participant
    Junior

    <Le code ci-dessous est-il votre code d’origine avec lequel vous avez eu un problème?>

    C’est mon code d’origine :

    xHigh = Max(max(My15MnHigh, xOpen), xClose)
    xLow = Min(min(My15MnLow, xOpen), xClose)
    #207863 quote
    wtangsiri
    Participant
    Junior

     

    <Quelle ligne de code est au-dessus… Je ne la vois pas ?>

    Dois je modifier la ligne 11 If Barindex = 0 par  cette instruction If Barindex < 15  ?

    #207864 quote
    GraHal
    Participant
    Master

    essayez ci-dessous

    xHaut = max(1,Max ( max (Mon15MnHaut, xOuvert), xFermé))
    xBas = min(1,Min ( min (Mon15MnBas, xOuvert), xFermé))
    #207865 quote
    wtangsiri
    Participant
    Junior

    je n’aurai le retour que demain, car les marchés sont fermés le dimanche

    Par contre, backtest, ça marche

    A demain donc

     

    xHigh = Max(1, max(My15MnHigh, xOpen), xClose))
    xLow = Min(1, min(My15MnLow, xOpen), xClose))
    #207866 quote
    GraHal
    Participant
    Master

    Il 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. 

    #207868 quote
    wtangsiri
    Participant
    Junior

    Trè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

    #207985 quote
    wtangsiri
    Participant
    Junior

    Ce matin, j’ai relancé mon algo, et j’ai eu un autre message d’erreur ci-attaché
    Comment peut-on charger l’instruction

    DefParam Preloadbars = 5000

    dans un programme appelé (Called prog)  ou indicateur ?

    Merci

Viewing 15 posts - 1 through 15 (of 25 total)
  • You must be logged in to reply to this topic.

Plantage d’un Algo en mode reel


Support ProOrder

New Reply
Author
author-avatar
wtangsiri @wtangsiri Participant
Summary

This topic contains 24 replies,
has 5 voices, and was last updated by Nicolas
3 years ago.

Topic Details
Forum: Support ProOrder
Language: French
Started: 01/20/2023
Status: Active
Attachments: 3 files
Logo Logo
Loading...