
Envoyé par
jeanjo
for(int c=0;c<OrdersTotal();c++)
{
OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL && OrderSymbol()==Symbol()){
if (OrderProfit()>=Gain){
OrderClose(OrderTicket(),OrderLots(),Ask,0,Green);
On ne voit pas de quelle posision en attente du parles dany, pour le code c'est toujours le même si tu as plusieurs ordres :
for(int c=0;c<OrdersTotal();c++)
{
OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
if(OrderType(c)==OP_SELL && OrderSymbol(c)==Symbol()){
if (OrderProfit(c)>=Gain)
{
ticket = OrderTIcket(c) ;
lot = OrderLots(c);
(e c t )
OrderClose(ticket, lot, Ask,0,Green); => ferme l'ordre N° c
}
En fait je crois que lorsque tu es dans le " OrderSelect " il faut que tu sélectionne ce dont tu as besoin, Lots, Profit, Ticket, Type e c t; puis tu fermes le OrderSelect, et tu procédes avec tes Lots, Profit, Ticket e ct ; parce que si tu intercales une fonction dans le OrderSelect ; ca ne marche plus.
KK2val jette un oeil sur la fonction terminal() dans le book