Аналогичная байда. Постоянно. И два, и три ордера с одинаковыми параметрами в одну секунду выставляет. https://www.mql5.com/ru/forum/2248 Но в причине я пока не разобрался.
Yedelkin: Аналогичная байда. Постоянно. И два, и три ордера с одинаковыми параметрами в одну секунду выставляет. https://www.mql5.com/ru/forum/2248 Но в причине я пока не разобрался.
После выставления ордера в сон на несколько секунд уходилил?
Yedelkin: Аналогичная байда. Постоянно. И два, и три ордера с одинаковыми параметрами в одну секунду выставляет. https://www.mql5.com/ru/forum/2248 Но в причине я пока не разобрался.
В правилах соревнований явно указано, что исполнение будет происходить с реквотами. Это означает, что не зависимо от параметра diviation сервер время от времени будет слать отказы принять ордер. Лично я готовился к подобной ситуации. Во-первых, всегда обновляю цены непосредственно перед отправкой заявки, во вторых, я засыпаю на целых семь секунд после совершение операции (ибо в правилах указано исполнение до 7 секунд). Если за это время произошла реквота и заявка не была принята, повторяю попытку еще два раза (с аналогичным обновлением и засыпанием), если и в этом случае был получен отказ, дожидаюсь следующего тика и уже на нем запускаю повтор процедуры. Все это делает специализированная система циклов.
Вообще странно слышать подобные вопросы, так как ответы на них весьма очевидны и должны быть заранее проработаны разработчиками.
В правилах соревнований явно указано, что исполнение будет происходить с реквотами. Понятно - еще одно поле за кухонии ДЛично я готовился к подобной ситуации. Во-первых, всегда обновляю цены непосредственно перед отправкой заявки, во вторых, я засыпаю на целых семь секунд после совершение операции (ибо в правилах указано исполнение до 7 секунд). Если за это время произошла реквота и заявка не была принята, повторяю попытку еще два раза (с аналогичным обновлением и засыпанием), если и в этом случае был получен отказ, дожидаюсь следующего тика и уже на нем запускаю повтор процедуры. Все это делает специализированная система циклов.
Вообще странно слышать подобные вопросы, так как ответы на них весьма очевидны и должны быть заранее проработаны разработчиками.
Спасибо. Вы абсолютно прав. Это бесспорное....
Я готовился к нормалны условия, а здесь .... устаревшея заявка.........
Извините..... Я пропустиль что-то..... И перепутал...
Еще раз - Спасибо.
Понятно все !! :))) " Это означает, что не зависимо от параметра diviation сервер время от времени будет слать отказы принять ордер." :)))
Yedelkin: Нет, про такие тонкости я и не знал. Но, как видим, arnautov'у это не помогло.
Но еще не известно, как он реализовал свои проверки. Все-таки для того, что бы выставить два ордера нужно два вызова OrderSend. Почему его советник решил вызвать функцию два раза, в этом весь вопрос. А вообще надо было бы использовать встроенные классы - многие ненужные тонкости в них скрыты и уже учтены, чего нельзя сказать о ручных проверках всего и вся.
C-4: Все-таки для того, что бы выставить два ордера нужно два вызова OrderSend.
Это может произойти и тогда, когда одна и та же функция OrderSend() с тождественными параметрами вызывается на двух последовательно обрабатываемых тиках. А эксперт при этом по какой-то причине не видит, что на первом обрабатываемом тике ордер уже выставлен.
Yedelkin: Это может произойти и тогда, когда одна и та же функция OrderSend() с тождественными параметрами вызывается на двух последовательно обрабатываемых тиках. А эксперт при этом по какой-то причине не видит, что на первом обрабатываемом тике ордер уже выставлен.
Я хоть и не учавствую в чемпе, но на обычном демо такая - же история. вместо одного иногда штампует 2 ордера, хотя после OrderSend() стоит такая проверка
снова посмотрел внутри кода....ВЕДЬ есть же разрешение на работу
bool AUDUSD_TradeUp = true;
НИ ОДНОЙ сделки по символу...ни на тесте , ни на АТС2010.... загадка природы.... :/ надо выбрать время посмотреть еще раз..но что интересно, перед отправлением последней версии робота , сделки на тестере дома были :)
Или я один с такой байдой столкнулся?
Аналогичная байда. Постоянно. И два, и три ордера с одинаковыми параметрами в одну секунду выставляет. https://www.mql5.com/ru/forum/2248 Но в причине я пока не разобрался.
Аналогичная байда. Постоянно. И два, и три ордера с одинаковыми параметрами в одну секунду выставляет. https://www.mql5.com/ru/forum/2248 Но в причине я пока не разобрался.
Сначала я боролся с этим, ставя Sleep
а потом начал проверять по магику
примерно так
otkr_b2=0; //флажок открытия ордера
if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_BUY_LIMIT&&OrderGetInteger(ORDER_MAGIC)==8001)
{otkr_b2=1;}//флажок открытия ордера
Наверное, есть специалисты, которые смогут предложить более корректный код, но так у меня вроде получилось и выставляется только 1 ордер.
А почему
если:
1.43006 - 1.43206 не надо будеть реквот...
Сервер глючит ??? или я ??? :)))
В правилах соревнований явно указано, что исполнение будет происходить с реквотами. Это означает, что не зависимо от параметра diviation сервер время от времени будет слать отказы принять ордер. Лично я готовился к подобной ситуации. Во-первых, всегда обновляю цены непосредственно перед отправкой заявки, во вторых, я засыпаю на целых семь секунд после совершение операции (ибо в правилах указано исполнение до 7 секунд). Если за это время произошла реквота и заявка не была принята, повторяю попытку еще два раза (с аналогичным обновлением и засыпанием), если и в этом случае был получен отказ, дожидаюсь следующего тика и уже на нем запускаю повтор процедуры. Все это делает специализированная система циклов.
Вообще странно слышать подобные вопросы, так как ответы на них весьма очевидны и должны быть заранее проработаны разработчиками.
После выставления ордера в сон на несколько секунд уходилил?
В правилах соревнований явно указано, что исполнение будет происходить с реквотами. Понятно - еще одно поле за кухонии ДЛично я готовился к подобной ситуации. Во-первых, всегда обновляю цены непосредственно перед отправкой заявки, во вторых, я засыпаю на целых семь секунд после совершение операции (ибо в правилах указано исполнение до 7 секунд). Если за это время произошла реквота и заявка не была принята, повторяю попытку еще два раза (с аналогичным обновлением и засыпанием), если и в этом случае был получен отказ, дожидаюсь следующего тика и уже на нем запускаю повтор процедуры. Все это делает специализированная система циклов.
Вообще странно слышать подобные вопросы, так как ответы на них весьма очевидны и должны быть заранее проработаны разработчиками.
Спасибо. Вы абсолютно прав. Это бесспорное....
Я готовился к нормалны условия, а здесь .... устаревшея заявка.........
Извините..... Я пропустиль что-то..... И перепутал...
Еще раз - Спасибо.
Понятно все !! :))) " Это означает, что не зависимо от параметра diviation сервер время от времени будет слать отказы принять ордер." :)))
Нет, про такие тонкости я и не знал. Но, как видим, arnautov'у это не помогло.
Все-таки для того, что бы выставить два ордера нужно два вызова OrderSend.
Это может произойти и тогда, когда одна и та же функция OrderSend() с тождественными параметрами вызывается на двух последовательно обрабатываемых тиках. А эксперт при этом по какой-то причине не видит, что на первом обрабатываемом тике ордер уже выставлен.
Я хоть и не учавствую в чемпе, но на обычном демо такая - же история. вместо одного иногда штампует 2 ордера, хотя после OrderSend() стоит такая проверка
снова посмотрел внутри кода....ВЕДЬ есть же разрешение на работу
bool AUDUSD_TradeUp = true;
НИ ОДНОЙ сделки по символу...ни на тесте , ни на АТС2010.... загадка природы.... :/ надо выбрать время посмотреть еще раз..но что интересно, перед отправлением последней версии робота , сделки на тестере дома были :)