Давно над ним задумывался, но не имею удовлетворительного решения.
Вот здесь:
http://fxgeneral.com...opic=454&st=220
увидел:
Все зависит от того, как написан советник. Есть такие варианты, когда советник после того как пропадает связь не всегда может восстановиться работать по начальному алгоритму, но обычно в советниках такие меры предусмотрены. Всё зависит от алгоритма, если советник без стопов, то даже иногда и пару минут могут испортить настроение, резко как обвалится рынок, а советник отключён. Если же советник работает по средне сроку, т.е. открытие и модификация ордеров происходит не часто, то тут никаких проблем не будет
1. вот и вопрос: как нужно писать советники?
2. то, что написано в цитате - не совсем верно ... поверхностно, но всё же...
3. могут быть перебои в связи ... что ожидать в этих случаях? тоже хороший вопрос...
4. но самое интересное: как должен поступать советник в случаях его переинициализации (когда он теряет внутренний контроль за уже ним же открытыми ордерами)?
Когда наступает переинициализация?
Я знаю случаи:
а). выключение компьютера, или MT4 терминала;
б). смена счёта в MT4;
в). закрытие графика валютной пары (с последующим, возможно, его переоткрытием);
г). смена тайм-фрейма (вот здесь вообще очень опасное место, и я не понимаю - зачем?);
д). ручная остановка советника и снова помещение его на график;
Некоторые случаи (б., в., г.) - можно запретить настройками MT4.
Какие ещё есть случаи перезапуска (переинициализации) советника?
Какие последствия?
Как должен быть написан советник с учётом этих случаев?
Из сотен показанных и обсуждаемых советников на разных форумах, я практически не видел таких, которые грамотно обрабатывают перебои в своей работе.
Особенно это должно вести (мне представляется) к безобразным последствиям в советниках отрабатывающих алгоритмику мартингейл!
P.S.
1. причём, переинициализация переинициализации - рознь...
В любом случае, выполняется последовательность вызовов:
... - deinit() - init() - start() - ...
Но!
После deinit() может происходить выгрузка советника, с потерей всех внутренних структур (например, при ручной выгрузке советника и снова загрузке, или остановке компьютера)... а может и не происходить (как при смене тайм-фрейма, например).
В чём будет различие в первом и втором случае?
2. но и это ещё не всё! : советник может быть перезапущен с другими настроечными параметрами.
P.P.S.
Если относительно советника (любого конкретного) на все эти вопросы не могут быть даны исчерпывающие объяснения, то такой советник вообще нельзя эксплуатировать на реальном счёте! ... в этом случае он интересен только как какая-то теоретическая игрушка, подмтаерждающая ТС.
А, поскольку многие трейдеры не являются экспертами в программировании, а об вот этом аспекте им никогда не расказывают и не упоминают, то происходит просто дезинформация трейдеров относительно возможности использования роботов-советников.