Comment coder un trailing stop

Le trailing stop est un stop loss qui suit la progression de l'ordre en cours lorsque celui-ci est positif. Il faut donc modifier le stop loss chaque fois qu'un ordre d'achat fait un plus haut ou qu'un ordre de vente fait un plus bas.

De plus pour certaine stratégies le trailing stop est activé aussitôt que l'ordre est en profit (même seulement de 1 pip) et dans d'autres cas le trailing stop est activé seulement lorsque l'ordre est suffisament en profit pour que le stop soit placé au moins à «break-even».

Ces deux différents cas sont présentés ci-dessous.

Trailing stop activé immédiatement

Voici un exemple avec un trailing stop fixé arbitrairement à 20.

int trailing_stop = 20;
double ts;

Voir notre avis sur le test du broker AvaTrade qui propose la plateforme MT4

for (int i = OrdersTotal()-1; i >= 0; i --) // on parcourt tous les ordres
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol())
{
if (OrderType() == OP_BUY) // trailing stop pour un ordre d'achat
{
ts = Bid-(Point*trailing_stop); // calcul trailing stop
if (OrderStopLoss() OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White);
}
if (OrderType() == OP_SELL) // trailing stop pour un ordre de vente
{
ts = Ask+(Point*trailing_stop); // calcul trailing stop
if (OrderStopLoss()>ts) // test si nouveau plus bas
OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White);
}
}
}

Trailing stop activé après break even

int trailing_stop = 20;
double ts;

for (int i = OrdersTotal()-1; i >= 0; i --)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol())
{
if (OrderType() == OP_BUY)
{
ts = Bid-(Point*trailing_stop);
if (OrderStopLoss()=(Point*trailing_stop))
OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White);
}
if (OrderType() == OP_SELL)
{
ts = Ask+(Point*trailing_stop);
if (OrderStopLoss()>ts && (OrderOpenPrice()-Ask)>(Point*trailing_stop))
OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White);
}
}
}

Plus d'information sur le même thème

Photo of Arnaud Jeulin

Arnaud Jeulin Responsable de la publication, Trader

Après un diplôme d'ingénieur, Arnaud a commencé une carrière de développeur. Il a travaillé avec des traders et des services de back office pour mettre en place des prototypes et des outils de trading. Il a ensuite créé sa propre entreprise en 2003.

Il a été responsable du webmarketing pour la Banque en ligne Suisse Synthesis, depuis rachetée par Saxo Bank. Il a aussi fait des audits pour différents brokers et participé à plusieurs salons professionnels pour les courtiers à Londres, Paris et Chypre.

Depuis 21 ans Arnaud a approfondi sa connaissance des brokers et des marchés, il utilise son expérience pour améliorer Mataf afin d'éviter d'orienter les visiteurs vers des brokers malhonnêtes ou des stratégies de trading dangeureuses.

Vous pouvez le joindre via les réseaux sociaux suivants ou par email :

.
  Se connecter