Arrêt de prise de positions après exécution stoploss
Forums › ProRealTime forum Français › Support ProOrder › Arrêt de prise de positions après exécution stoploss
- This topic has 11 replies, 2 voices, and was last updated 6 years ago by Nicolas.
-
-
01/31/2018 at 7:46 PM #61138
Bonsoir,
ProOrder est vraiment un outil incroyable, et malgré ma très très faible expérience en codage, j’en perçois déjà toute la puissance.
J’ai beau fouiller le forum aussi bien que les manuels, impossible de trouver une réponse à ma question. Je ne sais pas si c’est possible mais sans aucun doute quelqu’un va m’éclaircir à ce sujet 🙂
Je travaille sur un système de trading basé sur du scalping, et qui dit scalping dit STOP LOSS fréquemment atteint. Je souhaiterai savoir si il possible de programmer que lorsque qu’un STOPLOSS est exécuter 1 fois (et donc sortie avec perte) la machine attende (x)minutes avant de recommencer à prendre position.
C’est la façon de je trade manuellement mais je sais pas comment “lui apprendre” ni même si cela est réalisable.
Merci d’avance pour vos réponses
Cordialement
Lorenzo
02/01/2018 at 8:00 AM #61166Oui c’est possible, quelques sujets:
arrêt d’une stratégie pendant x périodes après une perte
comment empecher le systéme de reprendre position après un stop
et certainement encore beaucoup d’autres dans le forum anglophone.
Si tu es toujours en difficulté, fait le nous savoir et on essaiera de t’aider un peu plus 🙂 Bon courage.
02/01/2018 at 3:16 PM #61199Tout d’abord merci beaucoup de m’aider. C’est vraiment super gentil de prendre de votre temps
Effectivement ça coupe bien le trading, mais ne le reprends pas par la suite… D’après ce que je comprends si il vérifie la condition “barindex-mybar>2” alors il “autorisetrading = 1” pas de problème. Mais s’il ne vérifie pas la condition, alors “autorisetrading = 0” et là tout s’arrête sans jamais reprendre. Je suppose qu’il faut le faire “re tester” jusqu’à ce qu’il la vérifie mais je avis encore avoir besoin de votre aide ici.
PS : je peux publier le code dans l’état actuel si je ne suis pas assez clair dans l’explication de mes difficultés de débutant
1234567891011121314IF not onmarket[1] AND positionperf(1)<0 THENmybar = barindex[1]ENDIFIF barindex-mybar>2 THENautorisetrading = 1elseautorisetrading = 0ENDIFIF autorisetrading THEN// Conditions pour ouvrir une position acheteuse02/01/2018 at 3:19 PM #61200En effet, puisque les lignes 1 à 3 vont remettre mybar à une valeur qui ne permettra jamais à la ligne 5 d’être vrai. Dans ce cas, il faut que cette condition ne soit vérifié qu’une seule fois juste après une fermeture d’ordre, tel quel:
123IF onmarket[1] and not onmarket AND positionperf(1)<0 THENmybar = barindex[1]ENDIF02/01/2018 at 7:08 PM #61222Merci beaucoup c’est impeccable!
Pour ma curiosité et compréhension personnelle pour la suite je me permet de poser une question peut être un peu bête 🙂
La ligne 1,
1IF onmarket[1] and not onmarket AND positionperf(1)<0 THENJe comprends le “if not on market” mais je ne comprends pas pourquoi le “if on market” et encore moins pourquoi “[1]” est accolé à la suite. Pourquoi faudrait-il qu’une position soit déjà ouverte sur le marché alors qu’on ne souhaite pas se repositionner après une perte ? Et n’est-ce pas contradictoire qu’il faille qu’une position soit à la fois ouverte et à la fois fermée ?
Je me suis égaré à cet endroit.. Je n’arrive pas à trouver de logique dans tout ça mais sans aucun doute il y en a une car ça fonctionne à merveille! Il faut vraiment que je m’habitue à cette tournure d’esprit pour que la machine me comprenne.
Merci beaucoup, et en espérant avoir de moins en moins besoin de vous
02/01/2018 at 7:21 PM #61225[1] signifiant une barre auparavant, soit si on était au marché dans la barre d’avant qu’on ne l’est plus dans celle-ci, alors … Cela afin de faire le test une seule fois juste après une fermeture. Le soucis de ton code initial était celui-ci: la variable mybar était sans arrêt remis à jour avec une nouvelle valeur, de ce fait la condition sur les barres révolues (à la ligne 5), pour ré-autoriser le trading n’était jamais vérifié vrai.
02/02/2018 at 6:45 PM #6129602/07/2018 at 8:03 PM #61890Bonsoir,
J’ai pas mal avancé depuis mais je suis tombé face une nouvelle énigme… Je pense connaître l’origine du problème mais je suis incapable de corriger.
Donc, l’algorithme se coupe bien et se relance bien après x périodes en cas de perte sauf si le Stop Loss est exécuté lors de la même période que celle de l’ouverture de la position coupée. D’après ce que je comprends du “bug” (photo jointe) : s’il exécute le Stop Loss durant la même période où il a ouvert la positon il ne peut pas vérifier
1if on market[1]puisqu’à la période précédente on n’était pas au marché donc il réouvre une nouvelle position.
Dites moi ce que vous en pensez mais je pour moi le problème vient de là… J’ai essayé avec (pour lui faire tester sur la bougie en cours)
12345IF onmarket[1] OR onmarket AND not onmarket AND positionperf(1)<0 THENmybar = barindex[1]ELSIF onmarket[1] AND positionperf(1)<0 THENmybar = barindex[1]ENDIFou encore avec (pour ne pas qu’il ne se bloque sur le fait qu’on soit de nouveau sur le marché)
12345IF onmarket[1] OR onmarket AND positionperf(1)<0 THENmybar = barindex[1]ELSIF onmarket[1] AND positionperf(1)<0 THENmybar = barindex[1]ENDIFBizarrement ces deux codes alternatifs m’ont fait gagner plus de 1200$ supplémentaires en Backtest (avec 1 contrat USD!) sur les 3 dernier jours (je trouve ça énorme!) mais ça n’a pas du tout aider le “principal” problème. Il va falloir que je comprenne pourquoi j’ai un tel résultat totalement par hasard.. Je n’aime pas ça du tout quand c’est du hazard! Donc plutôt que de “bidouiller” encore très longtemps avec mes connaissances encore limitées, je préfère demander de l’aide aux spécialistes en matière de codage 😉
Merci par avance (encore une fois)
02/08/2018 at 11:38 AM #61985Tu peux aussi regarder du côté de TRADEINDEX et voir pour créer une condition de comparaison avec BARINDEX. Je te laisse cogiter 🙂
02/08/2018 at 6:21 PM #6206202/08/2018 at 6:52 PM #620651234567891011IF onmarket[1] AND not onmarket AND positionperf(1)<0 THENmybar = barindex[1]ENDIFIF (barindex-mybar)>10 AND (barindex-tradeindex(1))>10 THENautorisetrading = 1ELSEautorisetrading = 0ENDIFIF autorisetrading THENJe pense avoir trouvé 😉 Si j’ai bien compris, TRADEINDEX c’est le BARINDEX d’une position exécutée (dans mon cas, le BARINDEX de ma dernière position) ?
02/09/2018 at 3:33 PM #62137 -
AuthorPosts
Find exclusive trading pro-tools on