Stop loss et trailing problème
Forums › ProRealTime forum Français › Support ProOrder › Stop loss et trailing problème
- This topic has 13 replies, 4 voices, and was last updated 4 years ago by Fantasio2020.
-
-
06/02/2020 at 11:10 PM #134308
Bonjour la communauté…
je travaille depuis quelques temps sur une stratégie sympa….c’est pas encore nickel chrome, mais ça prend forme petit à petit à taton.
Depuis cette semaine je la teste en Réel et les résultats ne sont pas mauvais, mais j’ai un gros soucis sur la platforme IG avec la stratégie de stop suiveur:
123456789101112131415161718192021222324252627282930313233343536373839//Stop Loss & Trailing functionSET STOP LOSS 21trailingstart = 14 //trailing will start @trailinstart points profittrailingstep = 7 //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 = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL > 0 AND close-newSL>trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL = 0 AND tradeprice(1)-close>trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL > 0 AND newSL-close>trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL > 0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIFle code fonctionne super bien (merci nicolas) seulement le hic c’est que avec le système de stop garanti c’est le coût du stop en cas de perte…. mais également le coût du stop suiveur qui devient excessif.
n’y aurait t’il pas moyen de modifier un peu le code du suiveur pour sortir rapidement du marché (exit ou sell) une fois le premier trailing enclenché pour eviter le coût du stop suiveur devenu stop garanti.
Merci pour votre aide.
06/03/2020 at 12:12 AM #134310Vous pouvez essayer de remplacer la ligne 15 par:
1SELL AT MARKETet en remplaçant la ligne 27 par:
1EXITSHORT AT MARKET1 user thanked author for this post.
06/03/2020 at 6:55 PM #134459Slt Roberto,
Merci pour la piste…
malheureusement, je n’obtient pas de meilleurs résultats…au contraire la balance devient négative.
Slts
06/03/2020 at 7:49 PM #13446506/04/2020 at 8:16 AM #13451806/04/2020 at 11:22 AM #134537Bjr Nicolas,
oui, je comprends bien que tu ne peux rien faire au SL Garanti de IG.
J’aimerai si c’est possible modifier un peu ton code:
- plutôt que de déplacer physiquement le Premier Sl (qui devient alors un stop garanti), j’aimerai le mettre en mémoire (état latent )…dans ce cas, si le prix revient sur “cet état latent” mi en mémoire j’ai deux choix
- Sell at Market
- ExitShort at Market
- si le prix continue à monter ou descendre le nouveau palier devient le nouvel état latent…..etc
cela devrait éviter que le trailingstep devienne un SL Garanti et engendrer des coûts inutiles….
Si c’est codable, ce serrait Topissime ….
Cordialement
06/04/2020 at 12:07 PM #134541Ok mais dans ce cas, tu ne seras pas exécuté pile poil au niveau du trailing stop puisque le code n’est lu qu’en fin de bougie, toutefois avec le MTF tu pourrais descendre en UT pour tester plus souvent le niveau.
Bref, voici une version qui sort au marché quand on croise le niveau du trailing stop (non testé)
12345678910111213141516171819202122232425262728293031323334353637383940414243//Stop Loss & Trailing functionSET STOP LOSS 21trailingstart = 14 //trailing will start @trailinstart points profittrailingstep = 7 //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 = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL > 0 AND close-newSL>trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL = 0 AND tradeprice(1)-close>trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL > 0 AND newSL-close>trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL > 0 THENif longonmarket and low crosses under newSL thensell at marketendifif shortonmarket and high crosses over newSL thenexitshort at marketendifENDIF1 user thanked author for this post.
06/04/2020 at 12:28 PM #134544Je viens de faire un test…:(
je dirais que la différence corresponds +/- au coût du stop garanti chez IG (plus ou mois 30% aujourd’hui en réel sur cette stratégie)
pense-tu qu’il est possible de lire le code dans le MTF 1 sec par exemple au lieu de 1 minute…..
Slts
06/04/2020 at 12:42 PM #134547Par contre:
Si je corrige avec :
123456789//stop order to exit the positionsIF newSL > 0 THENif longonmarket and low < newSL thensell at marketendifif shortonmarket and high > newSL thenexitshort at marketendifENDIfle ratio position gagnantes / perdantes ne change pas, mais le gain lui change
06/04/2020 at 12:58 PM #134551possible de lire le code dans le MTF 1 sec par exemple au lieu de 1 minute
Oui bien sûr, il faut lancer le BT en 1 seconde, il faudra changer le code avec les instructions TIMEFRAME :
- la stratégie en UT 1-minute
- la gestion des ordres en en UT 1-seconde
06/04/2020 at 1:08 PM #13455212345678910111213141516171819202122232425262728293031323334353637383940414243//Stop Loss & Trailing functionSET STOP LOSS 21trailingstart = 14 //trailing will start @trailinstart points profittrailingstep = 7 //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 = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL > 0 AND close-newSL>trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL = 0 AND tradeprice(1)-close>trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL > 0 AND newSL-close>trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL > 0 THENif longonmarket and low crosses under newSL thensell at marketendifif shortonmarket and high crosses over newSL thenexitshort at marketendifENDIFUne piste?
06/04/2020 at 2:02 PM #134561Voir les nombreux exemples de l’utilisation de l’instruction TIMEFRAME sur le site, forums:
https://www.prorealcode.com/documentation/timeframe-probacktest-proorder/
Première approche sur le multi timeframe avec ProRealTime
https://www.prorealcode.com/topics-tag/mtf/
etc.
1 user thanked author for this post.
06/04/2020 at 2:37 PM #134564C’est Bon Nicolas,
j’ai trouvé…!!!
Merci, je vais backtester….le truc c’est que je vais devoir attendre 🙂 car impossible de remonter loin en Backtest en MTF 10 ou 1 sec
la suite dans quelques jours
1 user thanked author for this post.
06/04/2020 at 6:55 PM #134596Bsr Nicolas,
le Backtest semble fonctionner correctement… je ne l’ai pas encore lancé en Réel, car je veux m’assurer qu’il n’y a pas de problèmes.
Néanmoins, je me demande quand même si en exécutant un ordre de vente au prix du stop, je ne risque pas de le déclencher.
Ne pourrait on pas exécuter l’ordre de vente disons un pips avant de toucher le “newsl”?
Slts
- plutôt que de déplacer physiquement le Premier Sl (qui devient alors un stop garanti), j’aimerai le mettre en mémoire (état latent )…dans ce cas, si le prix revient sur “cet état latent” mi en mémoire j’ai deux choix
-
AuthorPosts
Find exclusive trading pro-tools on