Code stop trailing corrigé
Forums › ProRealTime forum Français › Support ProOrder › Code stop trailing corrigé
- This topic has 8 replies, 3 voices, and was last updated 7 years ago by arcane.
-
-
12/03/2016 at 12:09 PM #17752
Bonjour,
J’ai changé le code de Nicolas pour le stop trailing manuel afin d’éviter que l’ordre stop soit mis trop près du cours et refusé par le système.
(sur les CFD, on doit respecter une distance pour mettre son ordre stop)
La valeur a est l’évolution du prix qui déclenche le 1er stop.
La valeur b permet de mettre l’ordre stop à la distance de la dernière clotûre.
La valeur b représente le minimum de distance pour poser l’ordre stop.
Exemple :
Sur le dax, on met a = 10 et b=7
Achat 5000 points
Cours arrive à 5012. progression > à 10.
Déclenche le stop à 5012 – 7 = 5005.
Cours progresse encore à 5025, remonte le stop à 5025-7 = 5018.
Merci à Nicolas de confirmer si le code est correct.
Bonne journée à tous.
123456789101112131415161718192021222324252627282930313233343536373839404142//trailing stop functiontrailingstart = a //trailing will start @trailinstart points profittrailingstep = b //trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = close - trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize thennewSL = close - trailingstep*pipsizeENDIFendif//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = close + trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = close + trailingstep*pipsizeendifENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF12/05/2016 at 7:02 PM #17840Bonsoir,
J’ai essayé le code en réel.
Le 1er stop se déclenche après la première barre.
123IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = close - trailingstep*pipsizeENDIFPar contre, dès la 2 eme barre, le stop trailingstart disparait et même si la 2 eme condition existe, le trailingstep ne se déclenche pas.
Cela est logique puisqu’on envoie un ordre stop au marché qui n’est valable qu’une barre.
12IF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = close - trailingstep*pipsizeExiste-il un moyen pour laisser le premier newsl en place si le deuxième newsl n’est pas mis.
Comment cela marche dans votre code Nicolas ?
Je pense que cela est la même chose.
Merci de votre aide.
12/05/2016 at 9:06 PM #1784512/06/2016 at 10:00 AM #17851Désolé arcane, je n’ai pas été assez rapide cette fois. Si la valeur du NEWSL a été au moins une fois renseigné, le stoploss trailing se placera tout seul à chaque nouvelle barre, cela afin d’éviter qu’il ne disparaisse puisque les ordres conditionnels ne sont valables qu’une seule barre sous PRT.
Si il n’y a plus d’ordre au marché, alors le NEWSL sera remis à zéro pour la prochaine série de trades.
12/06/2016 at 5:43 PM #1788512/12/2016 at 6:29 PM #18375Bonsoir Nicolas,
Le code stop trailing programmé ne semble pas fonctionner avec le set code trailing de PRT.
J’ai un ordre annulé. (un autre ordre peut être en cours sur la même position)
Avez vous cumulé les deux dans vos programmes.
Chez moi, cela semble fonctionner pour le down jones et pas le dax. (ce n’est pas un problème de distance de stop)
Je commence à désespérer.
Le résultat du backtest est toujours différent de la réalité.
Merci
12/12/2016 at 9:48 PM #1841612/12/2016 at 10:07 PM #1842012/13/2016 at 1:49 PM #18453 -
AuthorPosts
Find exclusive trading pro-tools on