Скачать MetaTrader 5

А где задавать вопросы по программированию советника

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Справочник MQL5 доступен на 8 языках. Изучай MQL5 на удобном тебе языке!
sergey
32
sergey 2010.10.28 12:00 

Интересует как можно закрыть открытый ордер, если при открытии не выставляем СТОПЛОС? Т.е. нужно закрыть по условиям, пока не смог разобраться, может кто подскажет?

Europa
984
Europa 2010.10.28 12:06  
5 раз прочел, ничЁ не понял :)
Alexandr Bryzgalov
27540
Alexandr Bryzgalov 2010.10.28 12:06  
Europa
984
Europa 2010.10.28 12:14  
sergeyka2003:

Интересует как можно закрыть открытый ордер, если при открытии не выставляем СТОПЛОС? Т.е. нужно закрыть по условиям, пока не смог разобраться, может кто подскажет?

int start()
  {
  if (OrdersTotal()!=0)
    {
     for(int i=OrdersTotal();i>=0;i--)   
      {  
       if (OrderSelect(i,SELECT_BY_POS)==true)  
         { 
          if (OrderType()==OP_BUY && OrderStopLoss()==0) OrderClose(OrderTicket(),OrderLots(),Bid,0,0); 
          if (OrderType()==OP_SELL && OrderStopLoss()==0) OrderClose(OrderTicket(),OrderLots(),Ask,0,0); 
         }
      }
    } 
   return(0);
  }
Наверное так :)
sergey
32
sergey 2010.10.28 12:25  
Europa:
Наверное так :)

А если у меня открыт ЕДИНОВРЕМЕННО только ОДИН ордер на Бай или Сел?
Yuri
634
Yuri 2010.10.28 12:25  
Запомнить номер тикета открытого ордера или присвоить ордеру оригинальный магик номер или возможно оригинальный комментарий, далее по этим данным отличить ваш ордер от других при наступлении нужных условий и закрыть его.
Europa
984
Europa 2010.10.28 12:29  
sergeyka2003:

А если у меня открыт ЕДИНОВРЕМЕННО только ОДИН ордер на Бай или Сел?

Закроет все
sergey
32
sergey 2010.10.28 12:33  

При тестировании у меня открывает Ордер, а закрыть не может!

1 2010.10.26 00:02 buy 1 0.10 1.39583 0.00000 0.00000 0.00 10000.00

2 2010.10.27 23:59 close at stop 1 0.10 1.37739 0.00000 0.00000 -184.47 9815.53


sergey
32
sergey 2010.10.28 12:34  
Europa:

Закроет все

Так что не закрывает (см. выше)
sergey
32
sergey 2010.10.28 12:37  
   //открыли Ордер
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"macd sample",16384,0,Green); // открыть тикет и настроить где печатать
         if(ticket>0) //открыт ордер - тогда
           {
             
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
            Print("BUY order opened : ",OrderOpenPrice(),"  Значение = ",red ,"  Значение = ",blue); // печать ордера Что,Где,Когда?
                        
           }
         else Print("Error opening BUY order : ",GetLastError()); //не смогли открыть БАЙ ордер
         return(0); 
         }
         
   
  
//попытался закрыть.... не получается... ПОДСКАЖИТЕ КАК???
  if (OrdersTotal()!=0)
    {
     for(i=OrdersTotal();i>=0;i--)   
      {  
       if (OrderSelect(i,SELECT_BY_POS)==true)  
         { 
          if (OrderType()==OP_BUY && OrderStopLoss()==0) OrderClose(OrderTicket(),OrderLots(),Bid,0,0); 
          if (OrderType()==OP_SELL && OrderStopLoss()==0) OrderClose(OrderTicket(),OrderLots(),Ask,0,0) ;
         }
      }
    }  

При тестировании у меня открывает Ордер, а закрыть не может!

1 2010.10.26 00:02 buy 1 0.10 1.39583 0.00000 0.00000 0.00 10000.00

2 2010.10.27 23:59 close at stop 1 0.10 1.37739 0.00000 0.00000 -184.47 9815.53


sergey
32
sergey 2010.10.28 12:44  
yuripk:
Запомнить номер тикета открытого ордера или присвоить ордеру оригинальный магик номер или возможно оригинальный комментарий, далее по этим данным отличить ваш ордер от других при наступлении нужных условий и закрыть его.

         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"macd sample",16384,0,Green); // открыть тикет и настроить где печатать
         if(ticket>0) //открыт ордер - тогда
           {
             
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
            Print("BUY order opened : ",OrderOpenPrice(),"  Значение = ",red ,"  Значение = ",blue); // печать ордера Что,Где,Когда?
                        
           }
         else Print("Error opening BUY order : ",GetLastError()); //не смогли открыть БАЙ ордер
         return(0); 
         }
         
   
    if (OrdersTotal()!=0)
    {
       if (OrderSelect(16384,SELECT_BY_TICKET)==true)  
         { 
          if (OrderType()==OP_BUY && OrderStopLoss()==0) OrderClose(16384,OrderLots(),Bid,0,0); 
          if (OrderType()==OP_SELL && OrderStopLoss()==0) OrderClose(16384,OrderLots(),Ask,0,0) ;
         }
    } 

с МАГИК НОМЕРОМ похоже что тоже не выходит...

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий