Как модифицировать советник под рыночное исполнение сделок?

 
 
Советник перестал работать, после перевода брокером открытие ордеров на рыночное исполнение сделок!!! Как изменить код? Написано следующее: void OpenMarketOrders() { int cnt=0; if (myOrderType==1 &&ContinueOpening) { if ((Bid-LastPrice)>=Pips*Point || OpenOrders 12) { mylotsi=NormalizeDouble(mylotsi*multiply,2); } else { mylotsi=NormalizeDouble(mylotsi*multiply,2); } } } else { mylotsi=lotsi; } if (mylotsi>100) { mylotsi=100; } OrderSend(Symbol(),OP_SELL,mylotsi,SellPrice,slippage,sl,tp,"Roy_MM"+MagicNumber,MagicNumber,0,ArrowsColor); return(0); }
 
Поставил нули на месте стоп-лоса и тека ордера открываются, а как дальше модифицировать?
 
roy64:
Поставил нули на месте стоп-лоса и тека ордера открываются, а как дальше модифицировать?

Функция OrderModify()


Торговые приказы для модификации рыночных и отложенных ордеров формируются с помощью функции OrderModify().

bool OrderModify(int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)

Функция изменяет параметры рыночных и отложенных ордеров. Функция возвращает TRUE при успешном исполнении торговой операции и FALSE при неудачном.

Параметры:

ticket - уникальный порядковый номер ордера.

price - новая заявленная цена для отложенного ордера или цена открытия рыночного ордера.

stoploss - новое значение StopLoss.

takeprofit - новое значение TakeProfit.

expiration - время истечения отложенного ордера.

arrow_color - цвет стрелок модификации StopLoss и/или TakeProfit на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелки на графике не отображаются.

Замечания: цену открытия и время истечения можно изменять только для отложенных ордеров.

 
void OpenMarketOrders() { int cnt=0; if (myOrderType==1 &&ContinueOpening) { if ((Bid-LastPrice)>=Pips*Point || OpenOrders 12) { mylotsi=NormalizeDouble(mylotsi*multiply,2); } else { mylotsi=NormalizeDouble(mylotsi*multiply,2); } } } else { mylotsi=lotsi; } if (mylotsi>100) { mylotsi=100; } OrderSend(Symbol(),OP_SELL,mylotsi,SellPrice,slippage,sl,tp,"Roy_MM"+MagicNumber,MagicNumber,0,ArrowsColor); return(0); }
 
Как тут код прописать, чтобы нормально выглядел?))
 
roy64:
Как тут код прописать, чтобы нормально выглядел?))
Кнопочка SRC
 
применял, но модификация не происходит, где ошибка не пойму?
 


void OpenMarketOrders()
{         
   int cnt=0;      
      if (myOrderType==1 && ContinueOpening) 
      {       
             if ((Bid-LastPrice)>=Pips*Point || OpenOrders<1) 
             {                  
                    SellPrice=Bid;                              
                    LastPrice=0;
                    if (TakeProfit==0) { tp=0; }
                    else { tp=SellPrice-TakeProfit*Point; }     
                    if (StopLoss==0) { sl=0; }
                    else { sl=SellPrice+StopLoss*Point;  }
                    if (OpenOrders!=0) 
                    {
                              mylotsi=lotsi;                    
                              for(cnt=0;cnt<OpenOrders;cnt++)
                              {
                                     if (MaxTrades>12) { mylotsi=NormalizeDouble(mylotsi*multiply,2); }
                                     else { mylotsi=NormalizeDouble(mylotsi*multiply,2); }
                              }
                    } else { mylotsi=lotsi; }
                    if (mylotsi>100) { mylotsi=100; }                       
                    OrderSend(Symbol(),OP_SELL,mylotsi,SellPrice,slippage,sl,tp,"Roy_MM"+MagicNumber,MagicNumber,0,ArrowsColor);                                    
                    return(0);
             }
 
ilunga:

Функция OrderModify()


Торговые приказы для модификации рыночных и отложенных ордеров формируются с помощью функции OrderModify().

Функция изменяет параметры рыночных и отложенных ордеров. Функция возвращает TRUE при успешном исполнении торговой операции и FALSE при неудачном.

Параметры:

ticket - уникальный порядковый номер ордера.

price - новая заявленная цена для отложенного ордера или цена открытия рыночного ордера.

stoploss - новое значение StopLoss.

takeprofit - новое значение TakeProfit.

expiration - время истечения отложенного ордера.

arrow_color - цвет стрелок модификации StopLoss и/или TakeProfit на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелки на графике не отображаются.

Замечания: цену открытия и время истечения можно изменять только для отложенных ордеров.


Никак не могу применить эту функцию, не работает:

void OpenMarketOrders()
{         
   int cnt=0;      
      if (myOrderType==1 && ContinueOpening) 
      {       
             if ((Bid-LastPrice)>=Pips*Point || OpenOrders<1) 
             {                  
                    SellPrice=Bid;                              
                    LastPrice=0;
                    if (TakeProfit==0) { tp=0; }
                    else { tp=SellPrice-TakeProfit*Point; }     
                    if (StopLoss==0) { sl=0; }
                    else { sl=SellPrice+StopLoss*Point;  }
                    if (OpenOrders!=0) 
                    {
                              mylotsi=lotsi;                    
                              for(cnt=0;cnt<OpenOrders;cnt++)
                              {
                                     if (MaxTrades>12) { mylotsi=NormalizeDouble(mylotsi*multiply,2); }
                                     else { mylotsi=NormalizeDouble(mylotsi*multiply,2); }
                              }
                    } else { mylotsi=lotsi; }
                    if (mylotsi>100) { mylotsi=100; }                       
                   OrderSend(Symbol(),OP_SELL,mylotsi,SellPrice,slippage,0,0,"Roy_MM"+MagicNumber,MagicNumber,0,ArrowsColor);
                                    {
           OrderModify(Symbol(),OrderOpenPrice(),sl,tp,0,Blue);                             
                    return(0);
                    }
                    
             }
             
 
roy64:


Никак не могу применить эту функцию, не работает:


что не так делаю!?((
Причина обращения: