Guide MetaTrader
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;
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()<ts) // test si nouveau plus haut
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()<ts && (Bid-OrderOpenPrice())>=(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);
}
}
}
A lire dans le Guide MetaTrader
| MetaTrader : Leçon 9 à 16 |
|---|
|



