La fonction :
bool OrderClose(int ticket, double nblots, double prix, int slippage, color arow = CLR_NONE)
Cette fonction est booléenne ( comme true et false ). C' est logique, il n' y a que 2 dénouements : soit l' ordre est stoppé, soit il ne l' est pas. - ticket : est le ticket ( numéro unique ) de l' ordre passé sur lequel l' ordre de clôture porte.
- nblots : est le nombre de lots que concernent l' ordre de fermeture.
- prix : est le prix auquel on souhaite clôturer l' ordre.
- slippage : est la différence maximale de pips acceptée par le trader entre le prix souhaité et le prix auquel l' ordre est finalement exécuté.
- 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.
A noter : pour fermer les ordres en attente, on utilise la fonction OrderDelete() de la même façon que OrderClose().
Un exemple d' utilisation :
La fonction suivante va fermer tous les ordres, passés ou en attente, d' un seul coup s' il est 20 heures passées.
bool vrai = true;
int start()
{
int dath = Hour();
if (dath > 20)
{
int i = OrdersTotal() - 1;
while (i >= 0)
{
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
if (type == OP_BUY)
{
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 2);
}
if (type == OP_SELL)
{
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 2);
}
if (type == OP_BUYLIMIT || type == OP_BUYSTOP || type == OP_SELLLIMIT || type == OP_SELLSTOP)
{
OrderDelete(OrderTicket());
}
i -= 1; // décrémentation i = i - 1
}
}
return;
}
Cette fonction contient beaucoup de nouveaux éléments que je vais expliquer un par un :
- OrdersTotal() renvoie le nombre total d' ordre passé ou en attente.
- OrderSelect() permet de sélectionner un ordre. Cette fonction prends en compte 2 paramètres : la place de l' ordre choisi ( ici c' est la variable i ), et la manière de trier les ordres. Ici, on classe les ordres du plus ancien au plus récent avec
SELECT_BY_POS
. Cela signifie que l' ordre le plus ancien est numéroté 0, le suivant 1, et ainsi de suite...- OrderType() désigne le type de l' ordre en question ( achat, vente, stop, limité )
- OrderTicket() est le ticket unique de l' ordre.
- OrderLots() est le nombre de lots engagés dans l' ordre.
- OrderSymbol() est similaire à Symbol() et renvoie donc le nom de la paire traitée.
- || correspond à OU dans une parenthèse. Dans le même registre && correspond à ET.
---> Leçon suivante
Aucun commentaire:
Enregistrer un commentaire