Erreur code probacktest

Forums ProRealTime forum Français Support ProOrder Erreur code probacktest

Viewing 9 posts - 1 through 9 (of 9 total)
  • #27592

    Bonjour,

    J’essaie de faire un probacktest avec un code simplissime mais le test prend des positions non conformes.

    Le principe :Dax 25 ticks; si la clôture est égale au plus haut/plus bas, prise de position sur la bougie suivante si dépassement (0.5 par exemple) du plus haut/plus bas (et donc de la clôture) de la bougie signal. TP à 1 et stoploss à 5.

    Quelqu’un peut-il vérifier mon code en image jointe?

    Merci d’avance.

    Phil4910

    #27603

    Bonjour,

    On ne peut pas faire un programme sur les ticks

    Unité de temps minimum 1 s.

    #27697

    Merci de ta réponse Arcane.

    Cependant, même en 1 minute, il me prend des positions non conformes.

    Je pense savoir d’oµ provient l’erreur mais je ne sais pas comment la résoudre : le système “garde en mémoire” le signal et l’exécute parfois 10 minutes après. Moi, ce que je souhaiterais, c’est qu’il l’exécute uniquement sur la bougie suivante. Si les conditions de dépassement du +haut/+bas de la bougie signal ne sont pas remplies sur la bougie qui suit, le signal doit “s’éteindre”.

    Comment faire?

    Phil4910

    #28082

    le stop n’est il pas de trop ?

    #28490

    Désolé du retard de ma réponse.

    Non, le stop ne joue aucun rôle dans la prise de position.

    Quelqu’un peut-il m’aider?

    Merci,

    Phil4910

    #28493

    En l’absence de suffisamment d’infos, ce qui saute aux yeux dans un premier temps, c’est l’imbrication des boucles if pour c1 et c2, au lieu d’être séparées… Si ce n’était pas voulu, cela va affecter la logique de prise de positions. Aussi, si le respect de la condition c2 du 2e if est pour engager un short plutôt qu’une vente de position existante, mieux vaut utiliser sellshort plutôt que sell.

    Si jamais séparer les 2 boucles if/endif ne suffit pas à résoudre le problème dans un nouveau backtest, alors pour obtenir davantage de réponses, il va falloir aider ceux qui potentiellement peuvent t’aider en leur fournissant davantage d’infos disponibles:

    1. merci d’insérer le code via le bouton “insert PRT code” plutôt que par image, afin que celui qui veut aider puisse rapidement le copier coller plutôt que de devoir le retaper, et ce aussi bien pour ceux qui tenteront de reproduire le problème en faisant tourner le code chez eux que pour ceux qui vont copier coller des bouts de code dans leur posts sur ce topic
    2. merci de décrire ou donner un exemple concret de ce que tu appelles “une position non conforme”, car bien souvent on part d’un exemple concret pour soit trouver l’erreur de programmation, soit un éventuel bug plateforme (ou réglage à modifier), soit conclure qu’il n’y a pas d’erreur de programme ou de plateforme mais erreur d’interprétation
    3. merci de fournir en image un zoom du backtest dax 25 ticks avec cas de “position non conforme” et avec la fenêtre des variables du code affichées avec la fonction GRAPH (graph c1 as “c1”, graph c2 as “c2” etc…)

     

    1 user thanked author for this post.
    #28513

    Merci Noobywan pour tes explications qui m’ont déjà permis de rectifier une première erreur : il fallait séparer les boucles if/endif. De la sorte, les prises de position à l’achat tout comme à la vente sont maintenant “conformes”.

    Subsiste une erreur : dans mon code, je demande un  target profit à 1 (soit 25€ pour un lot plein dax30) et un stop loss à 5 (soit 125€). Cependant, au  vu de la liste des positions clôturées en perf absolues (cfr image jointe), le code semble ne pas respecter mes instructions -> ?

    Je voulais tester ce code en 100 ticks mais il ne fonctionne pas. Il faut aller sur une UT >= 1 minute 🙁

     

    #28517

    Pour les clotures de positions, sur les quelques unes que j’ai regardé (pas toutes), ce sont des cas où le programme veut rentrer en position inverse d’une position existante, et cumuler des positions inverses PRT ne sait pas faire, à la place il calcule une position “nette” différence entre long et short (même si rajoute un defparam cumulate order = true).

    Donc tu peux te retrouver avec ton stoploss 5 et target 1 pas encore atteints ni l’un ni l’autre et une entrée en position inverse, qui au lieu de rajouter une position dans l’autre sens en plus de celle existante, va juste fermer la position en cours résultant en un gain/perte quelque part entre +25 et -125 sur la position fraichement fermée et pas de position inverse réellement ouverte…

    En ce qui concerne les légers surpassements de +25, voir si ça peut correspondre pas à un léger slippage favorable de 0.2 ou 0.3 sur le tick par tick (on est à 0.9 de gain, le +1 pas encore atteint, et on “saute” à 1.1 ou 1.2 sans passer par le +1), ça me semble probable.

    #28518

    Noobywan, merci beaucoup de tes explications et du temps que tu m’as consacré.

    Bon trading,

    Phil4910

    1 user thanked author for this post.
Viewing 9 posts - 1 through 9 (of 9 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login