La fonction :
bool OrderModify(int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color = CLR_NONE)
- numéro : est le ticket ( numéro unique ) de l' ordre passé sur lequel la modification porte.
- prix : est le prix à modifier.
- stoploss et taketprofit : sont les nouvelles valeurs que prendra l' ordre pour le stoploss et le takeprofit.
- expiration : est la date de validité de l' ordre.
- arrow : indique un point ou une flèche sur la courbe du graphique Metatrader à l' endroit où l' ordre a été clôturé. Pas obligatoire.
Un exemple incontournable, le TrailingStop :
La fonction suivante associe un TrailingStop de 20 pips au dernier ordre passé.
bool vrai = true;
double trailingstop = 0;
double offre = 0;
double demande = 0;
int ecart = 20;
int start()
{
int i = OrdersTotal() - 1;
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
if (type == OP_BUY)
{
if ( Bid - ecart * Point > trailingstop )
{
double demande = MarketInfo(Symbol(), MODE_ASK);
trailingstop = demande - Point * ecart;
OrderModify(OrderTicket(), OrderOpenPrice(), trailingstop, OrderTakeProfit(), 0);
}
}
if (type == OP_SELL)
{
if ( Ask - ecart * Point > trailingstop )
{
double offre = MarketInfo(Symbol(), MODE_BID);
trailingstop = offre + Point * ecart;
OrderModify(OrderTicket(), OrderOpenPrice(), trailingstop, OrderTakeProfit(), 0);
}
}
return;
}
- OrderOpenPrice() est le prix auquel l' ordre a été ouvert
- OrderTakeProfit() et OrderStopLoss sont les takeprofit et stoploss de l' ordre
Après ces quelques leçons compliquées, je vous invite à suivre une dernière leçon plus simple et clore ce chapitre.
---> Leçon suivante
Aucun commentaire:
Enregistrer un commentaire