Отключается советник

 
Всем доброго времени суток!
Столкнулся с проблемой самопроизвольного отключения советника. На графике он висит но делать то что в него заложено перестает. Лечится только удалением с графика и повторным размещением.
Поначалу использовал указатели. Думал утечка памяти. Отказался от указателей. Проблема осталась.
Может кто объяснит как подобные ситуации обходить и почему они возникают?
 
Читай логи, ищи ошибку.
 
AlexeyVik:
Ну попробуй в коммент вывести информацию по условиям открытия ордеров. Чудес-то на свете не бывает... Может не сбрасывает какую-то переменную.

Там сбрасывать нечего. Зачитывает глобальную переменную. В зависимости от значения открывает или закрывает ордер.
Кстати, на все методы классов были написаны юниттесты. Все тысты отрабатываются правильно. Пуля на стороне терминала.


 
Ну попробуй в коммент вывести информацию по условиям открытия ордеров. Чудес-то на свете не бывает... Может не сбрасывает какую-то переменную.
 
Я так понимаю никто ничего не знает и сказать ничего не может.

 

Все телепаты в отпуске, а я только учусь телепатии и пока нихрена не получается.

Ну как ты себе представляешь ответ если не только кода, а даже алгоритма нет. Есть GV так смотри их значения в момент отказа. Проанализируй что может измениться при перезапуске советника...

 
DebuggerЯ так понимаю никто ничего не знает и сказать ничего не может.

Все мы знаем!!!

Функция OnTick - есть такая? В самое начало ставим Alert(TimeCurrent()); - это покажет, сработает советник на тик, или висит. Хотя лучше текстовую метку поставить на график. Если работает - идем вниз, и у развилки ставим другой Алерт. Первый убираем. Или, вернее, переносим Алерт к развилке. После развилки в каждой ветви еще по алерту -  и так далее. В Алерты выводим номера контрольных точек и значения переменных... Очевидные Алерты убираем... Кое-кто пользуется отладчиком  Два года назад был случай: убрал советника с графика - а он продолжает работать. Помог перезапуск терминала...

 
LRA:

Все мы знаем!!!

Функция OnTick - есть такая? В самое начало ставим Alert(TimeCurrent()); - это покажет, сработает советник на тик, или висит. Хотя лучше текстовую метку поставить на график. Если работает - идем вниз, и у развилки ставим другой Алерт. Первый убираем. Или, вернее, переносим Алерт к развилке. После развилки в каждой ветви еще по алерту -  и так далее. В Алерты выводим номера контрольных точек и значения переменных... Очевидные Алерты убираем...

     Кое-кто пользуется отладчиком

Два года назад был случай: убрал советника с графика - а он продолжает работать. Помог перезапуск терминала...


Для меня это откровение.
Значит разработчики мт рукожопые.
 
Debugger:   Значит разработчики мт ...
МТ работает под управлением операционной системы на компьютере, в котором практически отсутствуют схемы контроля. Например, память лишена даже контроля четности. Поэтому, нормой является 1 сбой за 8 часов. Так что ругать разработчиков, Windows и свой компьютер - бесполезное занятие.
 
LRA:
МТ работает под управлением операционной системы на компьютере, в котором практически отсутствуют схемы контроля. Например, память лишена даже контроля четности. Поэтому, нормой является 1 сбой за 8 часов. Так что ругать разработчиков, Windows и свой компьютер - бесполезное занятие.
Если следовать этому рассуждений то использовать этот терминал для торговли опасно, ибо он априори может допускать фатальные ошибки, приводящие к непредсказуемым действиям. Или разработчикам терминала придется из вернуться и придумать систему контроля и исправления ошибок. Разумеется если они хотят и дальше продвигать эту торговую платформу как профессиональную а не как платформу для лохов и сливаторов своих депозитов. Других вариантов нет.
 
Debugger:  Других вариантов нет.
Сбои дает компьютер и операционная система. А терминал является высоконадежным, так как работает циклически по тикам. В нем отсутствует накопление ошибок. В компьютере, например, может отключиться мышь. Восстановит только перезагрузка. Если в терминале, для примера, будет ошибочно воспринята одна котировка, то следующий тик ее исправит. Ругают разработчиков рукожопые, как Вы выражаетесь, программисты. Которые излишне усложняют свои советники, забывают поставить директиву #property strict и т.д.