Bonjour a tous,
Je viens vers vous car après pas mal de recherches je n’ai pas trouvé la réponse a ma question.
Je suis en train de développer une stratégie, sur laquelle je souhaiterai sortie sur Trailing Stop (mode %).
Sur mon BT, j’ai remarqué que j’avais souvent des “Nb barres” à 0, donc des trades où le programme entre et sort sur la même bougie.
Vu que je doute beaucoup de la fiabilité de ces trades (cf. conversations sur le mode tick by tick), j’aimerai que le programme ne place le trailing stop qu’a partir de la bougie suivante.
J’ai donc écrit le code suivant :
IF LongOnMarket and (barindex - tradeindex(1)) >= 3 then
SET STOP %TRAILING TrailingSL
ENDIF
Rien n’y fait, le système me sort toujours des trades sur la même bougie.
J’ai graphé la condition (barindex – tradeindex(1) >= 3) comme “critère”, et elle renvoie bien 0 quand ce n’est pas bon.
Je vous laisse voir le screenshot ci-joint.
Avez vous une idée de quoi cela peut il venir SVP ?
D’avance merci
Est-ce que tes ordres entrent directement au marché ? Si oui, tu peux remplacer TRADEINDEX avec une variable que tu auras renseigné toi même:
if conditionBUY then
buy at market
buybar=barindex
endif
IF LongOnMarket and (barindex - buybar) >= 3 then
SET STOP %TRAILING TrailingSL
ELSE
SET STOP %TRAILING 0
ENDIF
Oui en effet je rentre au marché.
Merci pour la combine, c’est bel et bien le code suivant qui a résolu le problème :
ELSE
SET STOP %TRAILING 0
Assez bizarre comme comportement … J’ai pas trop compris le pourquoi du comment
En tout cas ça fonctionne, merci Nicolas !
Si il est placé 1 fois, il va rester actif pour les autres ordres suivants, donc il faut le réinitialiser à 0.
Je ne savais pas, je pensais que dès lors que l’ordre STOP était dans la boucle conditionnelle alors le programme ne placerait pas de stop tant que les conditions de la boucle ne sont pas validées
Pour le premier oui, mais pas pour les suivants.