Bonjour à tous,
comme indiqué dans le titre, je sollicite votre aide pour avoir un SL qui se fixe à -1P sous la bougie “precedente” (celle qui donne le signal) lors d’un BUY
et +1P au dessus de celle ci lors d’un SHORT.
Si possible que le TP lui soit d’un ratio de 2 automatiquement.
J’ai deja vu ce genre de question posée, il y a t’il eu des reponses ?
Exemple : – conditions d’achat ok, BUY, bougie de signal (precedente) = 7P DAX, SL auto à -8P, TP X2 = +16P ? merci
Exemple pour un ordre d’achat, d’abord on calcule la distance du stoploss, puis on la multiplie par 2 pour le takeprofit :
if conditionachat then
stoploss = close-(low[0]-1*pointsize) //calcul du SL
takeprofit = stoploss*2
buy at market
set stop loss stoploss
set target profit takeprofit
endif
J’ai volontairement écrit Low[0], car je ne sais pas si on utilise la bougie présente ou celle d’avant selon ton explication, donc tu ajusteras le décalage en [1] si besoin.
Bonjour Nicolas, toujours aussi reactif 🙂 👌 je te remercie et essaierai ca ce soir
Voila ce que cela represente avec ton morceau de code ajouté :
- fleche noir mon signal manuel
- flech bleue signal du code (c’est ok on ouvre bien à la close)
- par contre j’aimerais un SL -1 oint sous la bougie fleche noir
- et un tp X2 de celui ci ..
- J’ai eu beau essayer de modif les variable, c’est bof ..
- une idée ? Merci
Ce code fonctionne correctement pour moi (voir image jointe).
Par contre, comme le code est lu au Close et l’ordre ouvert à l’Open suivant, on ne peut savoir à l’avance quelle sera la valeur de la prise de position (le prix d’entrée). Par ailleurs le spread rentrera aussi en considération.
defparam cumulateorders=false
conditionachat= rsi[14] crosses over 50
if conditionachat then
stoploss = close-(low[0]-1*pointsize) //calcul du SL
takeprofit = stoploss*2
buy at market
set stop loss stoploss
set target profit takeprofit
endif
Une autre solution avec des ordres conditionnels :
defparam cumulateorders=false
conditionachat= rsi[14] crosses over 50
if conditionachat then
stoploss = low[0]-1*pointsize //niveau prix du SL
buy at market
sell at stoploss stop
set target profit (close-(low[0]-1*pointsize))*2
endif
if longonmarket then
sell at stoploss stop
set target profit (positionprice-stoploss)*2
endif
Oui en effet sur ton graph les SL ont l’air de bien respecter la bougie de signal (close + spread).
pour ce qui est du TP meme sur ton graph la position gagnante n’a pas
l’air de faire du X2 sur le SL ..
j’etudie ca ce soir 👌
Dans cet exemple, la taille du takeprofit est la bonne, cependant comme évoqué, puisque l’ordre ouvre à l’Open et que le stoploss est calculé au Close précédent, un décalage peut survenir.
Avec le second code, on s’affranchit de ce potentiel décalage.
AAAHH ca y est je crois avoir compris ..
donc l’ideal serait pour un SL achat :
- prendre le point bas de la bougie (mèche incluse) – 1P (spread)
- inversement pour un Short
- voila pourquoi je ne visualisais pas .. donc cela reviendrait à un SL comme sur l’image (trait rouge)
- serait il possible de m’aider avec ca Nicolas ? Merci
C’est exactement ce que fait le 2ème code proposé, voir image jointe.
Tu peux le visualiser lors d’un backtest avec GRAPHONPRICE.
defparam cumulateorders=false
conditionachat= rsi[14] crosses over 50
if conditionachat then
stoploss = low[0]-1*pointsize //niveau prix du SL
buy at market
sell at stoploss stop
set target profit (close-(low[0]-1*pointsize))*2
endif
if longonmarket then
sell at stoploss stop
set target profit (positionprice-stoploss)*2
endif
graphonprice stoploss coloured(255,0,0)
Ah d’accord .. merci encore je vais reverifié, je n’ai pas l’impression d’avoir le meme rendu.
Tout est ok, je te remercie encore pour tout Nicolas 🙂 à bientot (y)
Juste une chose ^^ ..
pour la version Short j’ai réutilisé ton code en changeant les intitulés de Sell/Buy, High/low.
Probleme .. les TP en short sont obligatoirement de 16P .. ourquoi ? aucune idée .. alors que les SL sont bien calculés .. et variable TP toujours de X2 ..
Pardon, la premiere image avec le code. Bonne soirée.
Pour fermer une position de vente à découvert, il faut utiliser l’instruction SELLSHORT and non SELL, cette dernière revend un achat.
J’ai donc essayé avec ta “commande” et cela ne change rien, ou alors mal placée ..
exemple sur le graph la
- 1ere elipse : position bien prise, stop bien placé, mais TP toujours 16 points.
- 2eme elipse : position bien rise, stop bien placé, mais stop non respecté car il descend comme on le voit et ne reste pas à niveau.