Ошибки, баги, вопросы - страница 2218
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
кто обновился до 1860, подтверждаете ли проблему указанную ранее несколькими пользователями при тестировании?
а то брокер Открытие уже второй раз прислал это обновление ))
Используете бесплатный софт - тогда следите за его новостями и обновлениями, а если уж в будущем будет реклама, то это тоже вполне нормально(бесплатное ПО). Вам никто и ничем не обязан.
Софт не бесплатный - он стоит брокеру кучу денег. А я как трейдер, оплачиваю брокеру комиссию, из которой зп платится создателям. Поэтому и хочется отношения адекватного.
Относится не к функциям (фиг с ними - переписал), а вот то что тестер после обновления дико глючить начал и вылетатть каждые 2-3 запуска, можно было залить стабильную версию
Результат на ForexTimeFXTM-Demo01
Скрипт открывает и закрывает позиции до тех пор, пока не обнаружит "фантомный ордер" - нет ни среди текущих, ни в истории. Считать это багом или фишкой платформы?
ЗЫ Скрипт написан так, что может открыться несколько позиций из-за данного нюанса. Но это не мешает получению "фантомного ордера".
Здравствуйте. Сегодня обновился до версии 1860 и при оптимизации советника столкнулся вот с такой проблемой:
задержка между проходами составляет 1 минуту! Подскажите пожалуйста, в чем может быть дело?
p.s. до обновления все работало как часики.
Результат на ForexTimeFXTM-Demo01
Скрипт открывает и закрывает позиции до тех пор, пока не обнаружит "фантомный ордер" - нет ни среди текущих, ни в истории. Считать это багом или фишкой платформы?
ЗЫ Скрипт написан так, что может открыться несколько позиций из-за данного нюанса. Но это не мешает получению "фантомного ордера".
Не хочу показаться занудным, но вот такие выражения:
очень затрудняют понимание кода. Возможно вы помните наизусть все числовые значения данного enum, и в каком порядке они идут, но другие люди могут и не знать этих внутренностей. Не стоит так обращаться с enum. Краткость конечно сестра таланта, но только если не в ущерб качеству.
И касательно обсуждаемого вопроса, для открываемой позиции ведь должен проверяться order.deal, а не result.order. Соответственно и искать её нужно среди позиций, а не ордеров. Разве не так?
Краткость конечно сестра таланта, но только если не в ущерб качеству.
Вроде, привычная на MQL операция.
И касательно обсуждаемого вопроса, для открываемой позиции ведь должен проверяться order.deal, а не result.order. Соответственно и искать её нужно среди позиций, а не ордеров. Разве не так?
Первоначальный ордер, что отправляется, сразу после OrderSend может нигде не оказаться. Позиция - это много позже ордера.
ЗЫ В коде специально оставил в комменте самый понимаемый язык торгового алгоритма - MQL4.
Первоначальный ордер, что отправляется, сразу после OrderSend может нигде не оказаться. Позиция - это много позже ордера.
Да в принципе это не суть. Ведь согласно документации, OrderSend и не обязана получать какие-либо тикеты:
При отправке рыночного ордера (MqlTradeRequest.action=TRADE_ACTION_DEAL) успешный результат функции OrderSend() не означает, что ордер был выполнен (исполнены соответствующие сделки): true в этом случае означает только то, что ордер был успешно размещен в торговой системе для дальнейшего выполнения. Торговый сервер может в возвращаемой структуре результата result заполнить значения полей dealили order, если эти данные будут ему известны в момент формирования ответа на вызов OrderSend(). В общем случае событие или события исполнения сделок, соответствующих ордеру, могут произойти уже после того, как будет отправлен ответ на вызов OrderSend(). Поэтому для любого типа торгового запроса при получении результата выполнения OrderSend() необходимо в первую очередь проверять код возврата торгового сервера retcode и код ответа внешней торговой системы retcode_external (при необходимости), которые доступны в возвращаемой структуре результата result.
Так что без OnTradeTransaction не обойтись в любом случае.
Т.е. получается, что гарантированно синхронных торговых операций в MQL5 нет.
Да в принципе это не суть. Ведь согласно документации, OrderSend и не обязана получать какие-либо тикеты:
Не нужно проверять в обязательном порядке. Это только по желанию.
Ненулевой Result.order после выполнения синхронного OrderSend говорит всегда о том, что получен ответ от торгового сервера с регистрацией на нем ордера. Этот тикет идет именно от сервера. И в случае успеха OrderSend этот тикет всегда получен.
Облом же, похоже, случается не из-за OrderSend, а в момент акцепта ордера в сделку. Хотя на такие случаи есть ORDER_STATE_REQUEST_ADD. В общем, ждем ответа от MQ. По-моему, это баг, когда ордер есть на торговом сервере, а после синхронной OrderSend на Терминале об этом ни духом.