Ошибки, баги, вопросы - страница 2407

 
Igor Makanu:

ну вот круг и замкнулся: используем тикеты как средство идентификации ордера, но тикеты изменяются при частичном закрытии этого ордера --> юзаем комментарий ордера --> но они могут изменяться сервером в случаях... --> юзаем  магикномера ордера, но они могут потеряться на сервере....

что там у ордера то осталось? цена открытия/закрытия/стоплосс/тейкпрофит?  ;)  - в этой "битве" однозначно победил МТ5

Это все решаемо, разумеется, но конкретика решения зависит от исходных требований и особенностей сферы использования (брокеров и рынков). Хотя Мт5 конечно же вне конкуренции :)

 
Здравствуйте. Подскажите пожалуйста из-за чего прогоны советника в тестере МТ5 на одних и тех же настройках показывают постоянно разный результат, отличающийся просто кардинально? Уже и переустанавливал МТ и кэш чистил, несколько разных советников ставил.
 
fxsaber:

Могли бы Вы дать ссылку, совсем не помню, к сожалению.

Откопал в нашей переписке:


 
Igor Makanu:

конечно может, но тут конкретная модель: запомнили тикеты --> команда на частичное закрытие --> еще раз запомнили новые тикеты и потом уже сравниваем 2 массива, все это на одном тике выполняем

На одном тике может не вернуться новый тикет. Да и гарантий, что на этом же тике не было другого закрытия или открытия — тоже ни каких.

Полагаться на то, что пользователь торгует одним единственным советником — не вариант.


Igor Makanu:

я выше писал, но что то гарантированно работоспособное в этом случае можно лишь сделать с индивидуальными магиками, достаточно лишь логику формирования магика продумать

Этот вариант тоже полагается на корректное использование советника пользователем (не перепутал магики).

Какую проблему вы видите в комментариях? Затирают их (если затирают) не сразу, а в конце дня или при закрытии. А советник должен отследить этот момент сразу, и сохранить новый тикет в гл. переменную.

Я могу представить только одну сложность — с брокерами, которые не ставят этот комментарий при частичном закрытии. Вы таких встречали?

 

Интересно, а давно TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) (кнопка АвтоТорговля) влияет на тестируемых советников (МТ4)?

В 1170 влияет, прямо кнопкой можно управлять торговлей в тестере. Я в шоке.

 
Andrey Khatimlianskii:

Интересно, а давно TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) (кнопка АвтоТорговля) влияет на тестируемых советников (МТ4)?

В 1170 влияет, прямо кнопкой можно управлять торговлей в тестере. Я в шоке.

Похоже, что  с самого начала нового MQL4

 
Slava:

Похоже, что  с самого начала нового MQL4

Удивительно, что я только заметил. Видимо, все время нажата была.

 
Andrey Khatimlianskii:

Удивительно, что я только заметил. Видимо, все время нажата была.

Если в коде есть что то типа 

if(!TerminalInfoInteger (TERMINAL_TRADE_ALLOWED))
return;

То кнопка работает. 

Без этой команды советник на кнопку не реагирует

 
Andrey Khatimlianskii:

Удивительно, что я только заметил. Видимо, все время нажата была.


я об этом писал года два назад. 

Vladimir Pastushak:

Если в коде есть что то типа 

То кнопка работает. 

Без этой команды советник на кнопку не реагирует


именно так и есть. Поэтому проверки кнопки я отключил в тестере стратегий

 

Маленький лайфхак (может быть кто-то уже писал, я не видел). Если в процессе разработки MQL-программы, после некоторой безобидной модификации исходника терминал вдруг начинает выдавать что-то вроде:

        Access violation at 0x0000000203543C20 write to 0x0000000203543C20
           crash -->  memory at 0x0000000203543C20 is not readable
        00: 0x0000000203543C20
        01: 0x000000000354297C
        02: 0x000000000B33C1D0
        03: 0x0000000003558DB7
        04: 0x0000000100000000
        05: 0x0000007500000000
        06: 0x000000001A4C2B08
        07: 0x000000000B33C358
        08: 0x0000000000000075
        09: 0x000000001A4C2E08
        10: 0x000000000B33C1D0
        11: 0x00000000035409A0
        12: 0x000000000B33C1D0
        13: 0x000000000355738F
        14: 0x000000000F91CEF0
        15: 0x000000000F91CE40
        16: 0x0000000100000002

запустите код под отладчиком - есть большая вероятность, что он заработает (и будет работать, пока его снова не перекомпилировать под релиз). Это позволит продолжить кодирование, хоть и не для маркета.