Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Как заработать на MQL5.community? Зайди и узнай!
prt
364
prt 2013.06.19 11:04 

Здравствуйте подскажите пожалуйста правильно ли реализовано закрытие ордера в данном коде.

 

Спасибо 


п.с. Логика такова если (a > b) закрываем предыдущий ордер если он бай и открываем селл
а если (a <  b) закрываем селл и открываем бай

[PHP]if  NormalizeDouble (a > b){  

             for (int x=0; x<OrdersTotal(); x++)
  if (OrderSelect(x,SELECT_BY_POS,MODE_TRADES)==true)
    if (OrderSymbol()==Symbol() && OrderType()==OP_BUY)
    { 
      if (OrderClose(OrderTicket(),OrderLots(),Bid,3)==true) x--;
      RefreshRates();       
     }

OrderSend(Symbol(),OP_SELL,Lot,Bid,3,NormalizeDouble(Ask + SellSL*Point,Digits), NormalizeDouble(Bid - SellTP*Point,Digits))>0){

                         

            }

            

            else if  (a <  b){

              for (int x=0; x<OrdersTotal(); x++)
  if (OrderSelect(x,SELECT_BY_POS,MODE_TRADES)==true)
    if (OrderSymbol()==Symbol() && OrderType()==OP_SELL)
    { 
      if (OrderClose(OrderTicket(),OrderLots(),Ask,3)==true) x--;
      RefreshRates();       
     }

OrderSend(Symbol(),OP_SELL,Lot,Bid,3,NormalizeDouble(Ask + SellSL*Point,Digits), NormalizeDouble(Bid - SellTP*Point,Digits))>0){

                        

              }
[/PHP]
ktest0
631
ktest0 2013.06.19 14:00  
 NormalizeDouble (a > b)
Это что? о_О
prt
364
prt 2013.06.19 17:53  
просто для примера
Victor Nikolaev
Модератор
14085
Victor Nikolaev 2013.06.20 00:57  
prt:

Здравствуйте подскажите пожалуйста правильно ли реализовано закрытие ордера в данном коде.

 

Спасибо 


п.с. Логика такова если (a > b) закрываем предыдущий ордер если он бай и открываем селл
а если (a <  b) закрываем селл и открываем бай

[PHP]if  NormalizeDouble (a > b){  

             for (int x=0; x<OrdersTotal(); x++)
  if (OrderSelect(x,SELECT_BY_POS,MODE_TRADES)==true)
    if (OrderSymbol()==Symbol() && OrderType()==OP_BUY)
    { 
      if (OrderClose(OrderTicket(),OrderLots(),Bid,3)==true) x--;
      RefreshRates();       
     }

OrderSend(Symbol(),OP_SELL,Lot,Bid,3,NormalizeDouble(Ask + SellSL*Point,Digits), NormalizeDouble(Bid - SellTP*Point,Digits))>0){

                         

            }

            

            else if  (a <  b){

              for (int x=0; x<OrdersTotal(); x++)
  if (OrderSelect(x,SELECT_BY_POS,MODE_TRADES)==true)
    if (OrderSymbol()==Symbol() && OrderType()==OP_SELL)
    { 
      if (OrderClose(OrderTicket(),OrderLots(),Ask,3)==true) x--;
      RefreshRates();       
     }

OrderSend(Symbol(),OP_SELL,Lot,Bid,3,NormalizeDouble(Ask + SellSL*Point,Digits), NormalizeDouble(Bid - SellTP*Point,Digits))>0){

                        

              }
[/PHP]
Не правильно, хотя работать возможно будет
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий