Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 493
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите верно ли реализована функция закрытия всех ордеров открытых советником по символу?
Сама архитектура - верная. Ошибки в отсутствии проверок и использовании некоторых функций:
Сама архитектура - верная. Ошибки в отсутствии проверок и использовании некоторых функций:
благодраю, главная проблема наверное была как раз в применении одной и той же цены
Из справки по OrderSelect "При последовательном выборе ордеров с помощью параметра SELECT_BY_POS информация отдаётся в том порядке, в котором она поступила с торгового сервера. Никакая сортировка полученного списка ордеров не гарантируется".
Если считать, что эта фраза зря вставлена в справку, то все нормально. Если же думать, что не зря, то не стоит во время пробега циклом по списку ордеров менять этот список. Как будут упорядочены ордера после удаления одного их них на сервере и прихода нового, актуального списка с меньшим OrdersTotal, неизвестно. Надежнее, не удаляя, пробежать по одному и тому же неизменному экземпляру списка и собрать (в массив) все номера тикетов сделок, подлежащих удалению. Затем забыть об этом списке и удалять сделки, выбирая их по тикетам.
Хотелось бы, конечно, верить, что упорядоченность в модифицируемом списке сохраняется, хотя бы только для этого случая удаления нескольких ордеров с конца неупорядоченного списка, но разработчики против... Сейчас работает, а выйдет новый билд - "мы предупреждали".
Из справки по OrderSelect "При последовательном выборе ордеров с помощью параметра SELECT_BY_POS информация отдаётся в том порядке, в котором она поступила с торгового сервера. Никакая сортировка полученного списка ордеров не гарантируется".
Если считать, что эта фраза зря вставлена в справку, то все нормально. Если же думать, что не зря, то не стоит во время пробега циклом по списку ордеров менять этот список. Как будут упорядочены ордера после удаления одного их них на сервере и прихода нового, актуального списка с меньшим OrdersTotal, неизвестно. Надежнее, не удаляя, пробежать по одному и тому же неизменному экземпляру списка и собрать (в массив) все номера тикетов сделок, подлежащих удалению. Затем забыть об этом списке и удалять сделки, выбирая их по тикетам.
Хотелось бы, конечно, верить, что упорядоченность в модифицируемом списке сохраняется, хотя бы только для этого случая удаления нескольких ордеров с конца неупорядоченного списка, но разработчики против... Сейчас работает, а выйдет новый билд - "мы предупреждали".
Такая "америка" открыта уже лет как триста :)
Такая "америка" открыта уже лет как триста :)
Не думаю, что люди, задающие здесь вопросы от имени новичков, уже ее открыли сами. Поэтому и пишу. Не для модераторов, а для задающих вопросы. Посмотрите, как называется ветка.
P.S. Посмотрел, откуда такой интерес. Оказывается из ветки https://www.mql5.com/ru/forum/215783/page8 "Организация цикла перебора ордеров". Как выясняется, в октябре 2017 эти триста лет еще не закончились, все еще есть новизна.
Не думаю, что люди, задающие здесь вопросы от имени новичков, уже ее открыли сами. Поэтому и пишу. Не для модераторов, а для задающих вопросы. Посмотрите, как называется ветка.
P.S. Посмотрел, откуда такой интерес. Оказывается из ветки https://www.mql5.com/ru/forum/215783/page8 "Организация цикла перебора ордеров". Как выясняется, в октябре 2017 эти триста лет еще не закончились, все еще есть новизна.
Опять не угадали :) Триста лет начались ещё на mql4.com - было время, когда там активно это обсуждалось. И даже были как раз те моменты, которые описаны вами в "Сейчас работает, а выйдет новый билд - "мы предупреждали". Только без предупреждений, и так раз несколько - то зависит, то не зависит от сортировки...
И, да, есть специальная для таких ответов тема:
Из справки по OrderSelect "При последовательном выборе ордеров с помощью параметра SELECT_BY_POS информация отдаётся в том порядке, в котором она поступила с торгового сервера. Никакая сортировка полученного списка ордеров не гарантируется".
Если считать, что эта фраза зря вставлена в справку, то все нормально. Если же думать, что не зря, то не стоит во время пробега циклом по списку ордеров менять этот список. Как будут упорядочены ордера после удаления одного их них на сервере и прихода нового, актуального списка с меньшим OrdersTotal, неизвестно. Надежнее, не удаляя, пробежать по одному и тому же неизменному экземпляру списка и собрать (в массив) все номера тикетов сделок, подлежащих удалению. Затем забыть об этом списке и удалять сделки, выбирая их по тикетам.
Хотелось бы, конечно, верить, что упорядоченность в модифицируемом списке сохраняется, хотя бы только для этого случая удаления нескольких ордеров с конца неупорядоченного списка, но разработчики против... Сейчас работает, а выйдет новый билд - "мы предупреждали".
По хорошему (если учитывать, что на счете может параллельно работать несколько экспертов + трейдер), вообще нельзя производить торговые операции в цикле. Взяли нужный ордер, провели операцию, выполняем весь OnTick() заново (не обязательно с приходом нового тика). И так до тех пор, пока не будут выполнены все необходимые операции.
Таким образом, формирование массива для удаления ордеров эквивалентно удалению ордеров в цикле.
Есть кнопка “Stop”, как изменить её текст на “Start”, после нажатия?
Посмотрите мой пример эксперта
Посмотрите мой пример эксперта
Спасибо, то что нужно
Может вам пригодится знать, в отсутствии позиций ошибка--- ToFile EURUSD,H1: zero divide in 'ToFile.mq4' (62,39)
В тестере не изменяется текст, что, нет такой возможности?