ну вот круг и замкнулся: используем тикеты как средство идентификации ордера, но тикеты изменяются при частичном закрытии этого ордера --> юзаем комментарий ордера --> но они могут изменяться сервером в случаях... --> юзаем магикномера ордера, но они могут потеряться на сервере....
Это все решаемо, разумеется, но конкретика решения зависит от исходных требований и особенностей сферы использования (брокеров и рынков). Хотя Мт5 конечно же вне конкуренции :)
Здравствуйте. Подскажите пожалуйста из-за чего прогоны советника в тестере МТ5 на одних и тех же настройках показывают постоянно разный результат, отличающийся просто кардинально? Уже и переустанавливал МТ и кэш чистил, несколько разных советников ставил.
конечно может, но тут конкретная модель: запомнили тикеты --> команда на частичное закрытие --> еще раз запомнили новые тикеты и потом уже сравниваем 2 массива, все это на одном тике выполняем
На одном тике может не вернуться новый тикет. Да и гарантий, что на этом же тике не было другого закрытия или открытия — тоже ни каких.
Полагаться на то, что пользователь торгует одним единственным советником — не вариант.
Igor Makanu:
я выше писал, но что то гарантированно работоспособное в этом случае можно лишь сделать с индивидуальными магиками, достаточно лишь логику формирования магика продумать
Этот вариант тоже полагается на корректное использование советника пользователем (не перепутал магики).
Какую проблему вы видите в комментариях? Затирают их (если затирают) не сразу, а в конце дня или при закрытии. А советник должен отследить этот момент сразу, и сохранить новый тикет в гл. переменную.
Я могу представить только одну сложность — с брокерами, которые не ставят этот комментарий при частичном закрытии. Вы таких встречали?
Маленький лайфхак (может быть кто-то уже писал, я не видел). Если в процессе разработки MQL-программы, после некоторой безобидной модификации исходника терминал вдруг начинает выдавать что-то вроде:
Access violation at 0x0000000203543C20 write to 0x0000000203543C20
crash --> memory at 0x0000000203543C20 is not readable
00: 0x0000000203543C2001: 0x000000000354297C02: 0x000000000B33C1D003: 0x0000000003558DB704: 0x000000010000000005: 0x000000750000000006: 0x000000001A4C2B0807: 0x000000000B33C35808: 0x000000000000007509: 0x000000001A4C2E0810: 0x000000000B33C1D011: 0x00000000035409A012: 0x000000000B33C1D013: 0x000000000355738F14: 0x000000000F91CEF015: 0x000000000F91CE4016: 0x0000000100000002
запустите код под отладчиком - есть большая вероятность, что он заработает (и будет работать, пока его снова не перекомпилировать под релиз). Это позволит продолжить кодирование, хоть и не для маркета.
ну вот круг и замкнулся: используем тикеты как средство идентификации ордера, но тикеты изменяются при частичном закрытии этого ордера --> юзаем комментарий ордера --> но они могут изменяться сервером в случаях... --> юзаем магикномера ордера, но они могут потеряться на сервере....
что там у ордера то осталось? цена открытия/закрытия/стоплосс/тейкпрофит? ;) - в этой "битве" однозначно победил МТ5
Это все решаемо, разумеется, но конкретика решения зависит от исходных требований и особенностей сферы использования (брокеров и рынков). Хотя Мт5 конечно же вне конкуренции :)
Могли бы Вы дать ссылку, совсем не помню, к сожалению.
Откопал в нашей переписке:
конечно может, но тут конкретная модель: запомнили тикеты --> команда на частичное закрытие --> еще раз запомнили новые тикеты и потом уже сравниваем 2 массива, все это на одном тике выполняем
На одном тике может не вернуться новый тикет. Да и гарантий, что на этом же тике не было другого закрытия или открытия — тоже ни каких.
Полагаться на то, что пользователь торгует одним единственным советником — не вариант.
я выше писал, но что то гарантированно работоспособное в этом случае можно лишь сделать с индивидуальными магиками, достаточно лишь логику формирования магика продумать
Этот вариант тоже полагается на корректное использование советника пользователем (не перепутал магики).
Какую проблему вы видите в комментариях? Затирают их (если затирают) не сразу, а в конце дня или при закрытии. А советник должен отследить этот момент сразу, и сохранить новый тикет в гл. переменную.
Я могу представить только одну сложность — с брокерами, которые не ставят этот комментарий при частичном закрытии. Вы таких встречали?
Интересно, а давно TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) (кнопка АвтоТорговля) влияет на тестируемых советников (МТ4)?
В 1170 влияет, прямо кнопкой можно управлять торговлей в тестере. Я в шоке.
Интересно, а давно TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) (кнопка АвтоТорговля) влияет на тестируемых советников (МТ4)?
В 1170 влияет, прямо кнопкой можно управлять торговлей в тестере. Я в шоке.
Похоже, что с самого начала нового MQL4
Похоже, что с самого начала нового MQL4
Удивительно, что я только заметил. Видимо, все время нажата была.
Удивительно, что я только заметил. Видимо, все время нажата была.
Если в коде есть что то типа
То кнопка работает.
Без этой команды советник на кнопку не реагирует
Удивительно, что я только заметил. Видимо, все время нажата была.
я об этом писал года два назад.
Если в коде есть что то типа
То кнопка работает.
Без этой команды советник на кнопку не реагирует
именно так и есть. Поэтому проверки кнопки я отключил в тестере стратегий.
Маленький лайфхак (может быть кто-то уже писал, я не видел). Если в процессе разработки MQL-программы, после некоторой безобидной модификации исходника терминал вдруг начинает выдавать что-то вроде:
запустите код под отладчиком - есть большая вероятность, что он заработает (и будет работать, пока его снова не перекомпилировать под релиз). Это позволит продолжить кодирование, хоть и не для маркета.