Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vladimir
46
Vladimir  
Vladimir
46
Vladimir  
Советник перестал работать, после перевода брокером открытие ордеров на рыночное исполнение сделок!!! Как изменить код? Написано следующее: 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); }
Vladimir
46
Vladimir  
Поставил нули на месте стоп-лоса и тека ордера открываются, а как дальше модифицировать?
ilunga
744
ilunga  
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, то стрелки на графике не отображаются.

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

Vladimir
46
Vladimir  
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); }
Vladimir
46
Vladimir  
Как тут код прописать, чтобы нормально выглядел?))
Всеволод
648
Всеволод  
roy64:
Как тут код прописать, чтобы нормально выглядел?))
Кнопочка SRC
Vladimir
46
Vladimir  
применял, но модификация не происходит, где ошибка не пойму?
Vladimir
46
Vladimir  


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);
             }
Vladimir
46
Vladimir  
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);
                    }
                    
             }
             
Vladimir
46
Vladimir  
roy64:


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


что не так делаю!?((
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий