советник - разные вопросы - страница 41

 

Глупые вещи, сегодня я попробовал несколько раз старую версию советника, он закрывает все открытые ордера.
Теперь я в замешательстве.

---

Но в любом случае я использую MarketInfo() вместо простых Bid и Ask.

 

Обычно я пробую все, чтобы определить, что работает лучше.

У меня есть один скрипт, который закрывает все ордера, когда это необходимо.

         for(int order=0; order<=OrdersTotal()-1; order++)
           {
            bool selected=OrderSelect(order,SELECT_BY_POS);
              {
               if(selected==1)
                 {
                  bool close=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,clrNONE);
                 }
              }
           }
Но, как вы можете видеть, ничего не проверяется, поэтому он предназначен для ручной реализации, где вы можете визуально проверить, закрыты ли ордера или нет.
 
whroeder1:
  1. При наличии нескольких ордеров (один советник несколько графиков, несколько советников, ручная торговля)
Max Enrik: RefreshRates() Я не понимаю, куда я могу его поместить.
Вы задаете вопрос, получаете ответ, игнорируете его и спрашиваете снова. Никаких down, никаких RefreshRates.

 
whroeder1:
Вы задаете вопрос, получаете ответ, игнорируете его и задаете снова. Никаких понижений, никаких RefreshRates.

Почему я переспросил. Извините, я не понял нижеследующее предложение. ( Я не могу его перевести ).

  • Вы должныRefreshRates после сна и между несколькими вызовами сервера, если вы хотите использоватьпредопределенные переменные(Bid/Ask) илиOrderClosePrice() вместо этого.
 

@Marco

После замены JPY не показывает правильную цену и не открывает ордер.

 
Есть ли у вас фрагмент кода.
 
Marco vd Heijden:
У вас есть фрагмент кода.

Вот, пожалуйста.

void buyorder()
 {
  Ticket = OrderSend( _Symbol, OP_BUY, lotsize, MarketInfo(OrderSymbol(),MODE_BID), slippage, sl, tp, "trade panel", magic, 0, clrRed );
  return;
 }
 
Ticket = OrderSend( _Symbol, OP_BUY, lotsize, MarketInfo(OrderSymbol(),MODE_BID), slippage, 
  1. Вы не можете использовать никакие торговые функции, если у вас не выбран ордер.
  2. Проверьте свои коды возвратаЧто такое значения возврата функции ? Как их использовать? -MQL4 форум и распространенные ошибки в MQL4 программах и как их избежать - MQL4 Статьи
 

#1 Можно ли использовать Bid вместо MarketInfo?
#2 Можно ли написать так, как показано ниже?

void buyorder()
 {
  Ticket = OrderSend( _Symbol, OP_BUY, lotsize, Bid, slippage, sl, tp, "trade panel", magic, 0, clrRed );
   if( Ticket < 0 )
   {
      Print("OrderSend failed with error: ", GetLastError() );
      return;
   }
  return;
 }
 

Только для символа графика.

Ask, Bid, _Period,_Symbol,Symbol(),Period()

Все эти параметры относятся к символу графика.

Используйте MarketInfo, когда вы работаете с символами, отличными от символа графика.