Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не можешь разобраться в коде? Возможно, на эту тему уже написана статья!
Debugger
2501
Debugger 2016.10.04 06:31 
Всем доброго времени суток!
Столкнулся с проблемой самопроизвольного отключения советника. На графике он висит но делать то что в него заложено перестает. Лечится только удалением с графика и повторным размещением.
Поначалу использовал указатели. Думал утечка памяти. Отказался от указателей. Проблема осталась.
Может кто объяснит как подобные ситуации обходить и почему они возникают?
Alexey Viktorov
6933
Alexey Viktorov 2016.10.04 06:55  
Читай логи, ищи ошибку.
Debugger
2501
Debugger 2016.10.04 07:40  
AlexeyVik:
Ну попробуй в коммент вывести информацию по условиям открытия ордеров. Чудес-то на свете не бывает... Может не сбрасывает какую-то переменную.

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


Alexey Viktorov
6933
Alexey Viktorov 2016.10.04 08:10  
Ну попробуй в коммент вывести информацию по условиям открытия ордеров. Чудес-то на свете не бывает... Может не сбрасывает какую-то переменную.
Debugger
2501
Debugger 2016.10.06 10:08  
Я так понимаю никто ничего не знает и сказать ничего не может.

Alexey Viktorov
6933
Alexey Viktorov 2016.10.06 10:27  

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

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

LRA
336
LRA 2016.10.06 10:48  
DebuggerЯ так понимаю никто ничего не знает и сказать ничего не может.

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

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

Debugger
2501
Debugger 2016.10.06 14:22  
LRA:

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

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

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

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


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