Асинхронное и многопоточное программирование в MQL - страница 30

 
fxsaber:

Речь про пятерку.

У Вас было что result.order==0 && result.deal==0? 

 
Andrey Barinov:

...

Кстати, вся вышеприведенная информация не отменяет моего совета Вам отказаться от использования EventChartCustom() и полностью перейти на ресурсы. Поверьте, этот способ лучше и универсальней. А шаблон можно применять и на обычном графике, установив ему CHART_SHOW 0 (чтобы не получал лишние события).

 
Andrey Barinov:

У Вас было что result.order==0 && result.deal==0? 

&& - нет. Но Result.deal == 0 - этого же недостаточно. Тем более, опасно что-то делать, когда история торгов еще не успела синхронизироваться.

 
Конечно, этот вариант многопоточности костылен, но если другого не будет, он решит проблему. С горем пополам.))
 
fxsaber:

&& - нет. Но Result.deal == 0 - этого же не достаточно. Тем более, опасно что-то делать, когда история торгов еще не успела синхронизироваться.

Приведите пример проблемы. Мне пока всегда хватало информации о том, что ордер отправлен.

 
Andrey Barinov:

Приведите пример проблемы. Мне пока всегда хватало информации о том, что ордер отправлен.

Нюансов масса, все не вспомню сразу. На вскидку

  • Маркет-ордер успешно выставлен. Получили true и 10009. Но он не исполнился еще. 
  • Позиция закрылась, но в истории сделок об этом нет упоминания.
  • Ордер исполнился и открылась позиция. Но ордер еще не удалился из терминала. Т.е. одновременно существуют в терминале ордер и его позиция. Тикеты их совпадают.
 
fxsaber:

Нюансов масса, все не вспомню сразу. На вскидку

  • Маркет-ордер успешно выставлен. Получили true и 10009. Но он не исполнился еще. 
  • Позиция закрылась, но в истории сделок об этом нет упоминания.
  • Ордер исполнился и открылась позиция. Но ордер еще не удалился из терминала. Т.е. одновременно существуют в терминале ордер и его позиция. Тикеты их совпадают.

Нюансов действительно масса. Вы же сами многие эти проблемы решали в MTOrders.

Я строю торговую логику так, что мне хватает информации result.order. За несколько лет, нерешаемых задач (проблем) не было.

P.S. Оффтопим уже.

 
Andrey Barinov:

Петр, Вы не понимаете.

Есть ОДИН советник. Он сам себя еще запускает дополнительно на невидимом чарте, только в режиме агента. На агенте НЕ РАБОТАЮТ никакие события. Т.е. ресурс никак не опросить, там таймер не запускается, тики не приходят...

Таких агентов советник может наплодить сколько угодно. Каждый получается как отдельный поток.

А можете еще раз пояснить это утверждение? Ведь если применяется шаблон к обычному графику и запускается копия советника, то все события будут приходить в штатном режиме. Разве нет?

А если шаблон применяется к _OBJ_CHART, то как советник вообще может на нем работать, если даже тики не приходят?

 
Andrey Barinov:

Нюансов действительно масса. Вы же сами многие эти проблемы решали в MTOrders.

Там все порешал.

Я строю торговую логику так, что мне хватает информации result.order. За несколько лет, нерешаемых задач (проблем) не было.

Нужно брать определенные серверы.

P.S. Оффтопим уже.

Да, заканчиваем.

 
Реter Konow:

А можете еще раз пояснить это утверждение? Ведь если применяется шаблон к обычному графику и запускается копия советника, то все события будут приходить в штатном режиме. Разве нет?

А если шаблон применяется к _OBJ_CHART то как он вообще может на нем полноценно работать, если даже тики не приходят?

На обычном графике все события есть.  На OBJ_CHART только OnChartEvent куда главный советник шлет OnTick и OnTimer при необходимости.

Причина обращения: