Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Хочешь стать известным разработчиком? Выполняй заказы трейдеров в сервисе Фриланс!
Ivan Molchanov
193
Ivan Molchanov 2014.05.23 04:26 

Друзья, столкнулся с такой в общем-то пустяковой наверное проблемой, но знаний не хватает ее решить. Профи, помогите пожалуйста.

Суть советника: выставлять отложенные ордера при определенных условиях.

Проблема: при запуске советника (на тестере, на счете не пробовал) советник выставляет ордер (при этом сам тест еще не идет, только появляется график визуализации), а при начале теста он следующим баром выставляет еще один точно такой же ордер (и это не правильно). В дальнейшем ордера выставляются по одному, как задумано.

Добавление: по задумке ограничения общего числа  ордеров нет, т.е. отложенных ордеров может быть много. В других советниках, где допускалась только одна открытая сделка, я решал это просто проверкой открытых ордеров, но тут это "не катит". В целом, чтобы советник не выставлял одинаковые ордера, я делаю проверку по времени сигнального бара, после которого выставляется ордер. Т.е. в процессе - это работает, а вот при самом запуске - нет.

Помогите, пожалуйста.

Вот код выставления ордера:

if(!IsTradeAllowed())
      {
      Alert("занят торговый поток, повторим попытку sell");
      return(-1);
      }
      if (check2!=check) //проверка, был ли уже выставлен ордер по времени сигнального бара
  ticket_sell_A=OrderSend(Symbol(),OP_SELLLIMIT,Lots,opprice,Slippage,stop,take,com,Magic,0,Yellow);
    if(ticket_sell_A == -1)
    {
    Alert(Symbol(),"ошибка:sell", GetLastError());
    return(-1);
    }
    if(ticket_sell_A > 1)
    {Alert (Symbol(),"sell - ок !");
        OrderSelect(ticket_sell_A,SELECT_BY_TICKET,MODE_TRADES);
    Last_sellOrderOpTime = OrderOpenTime();
    check = iTime(NULL,0,n);

    }
Dmitry Fedoseev
41262
Dmitry Fedoseev 2014.05.23 04:30  

Попробуйте заменить

if(ticket_sell_A > 1)

на

if(ticket_sell_A > 0)

Ivan Molchanov
193
Ivan Molchanov 2014.05.23 04:33  

Спасибо! Помогло.

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