Plantage d’un Algo en mode reel

Viewing 15 posts - 1 through 15 (of 25 total)
  • Author
    Posts
  • #207789 quote
    wtangsiriwtangsiri
    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

    Capture.jpg Capture.jpg
    #207848 quote
    GraHalGraHal
    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
    wtangsiriwtangsiri
    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
    GraHalGraHal
    Participant
    Master

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

    #207855 quote
    wtangsiriwtangsiri
    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
    wtangsiriwtangsiri
    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
    GraHalGraHal
    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
    GraHalGraHal
    Participant
    Master

    If Barindex < 15

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

    #207862 quote
    wtangsiriwtangsiri
    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
    wtangsiriwtangsiri
    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
    GraHalGraHal
    Participant
    Master

    essayez ci-dessous

    xHaut = max(1,Max ( max (Mon15MnHaut, xOuvert), xFermé))
    xBas = min(1,Min ( min (Mon15MnBas, xOuvert), xFermé))
    #207865 quote
    wtangsiriwtangsiri
    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
    GraHalGraHal
    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
    wtangsiriwtangsiri
    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
    wtangsiriwtangsiri
    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

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

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Plantage d’un Algo en mode reel


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
wtangsiri @wtangsiri Participant
Summary

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

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 01/20/2023
Status: Active
Attachments: 3 files
ProRealCode ProRealCode
Loading...