Скачать MetaTrader 5

Торговые системы: Как упростить обнаружение и устранение ошибок в коде эксперта

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes Software Corp.
Модератор
184335
MetaQuotes Software Corp.  

New article Как упростить обнаружение и устранение ошибок в коде эксперта has been published:

В разработке торговых экспертов не последнее место занимают вопросы диагностики и исправления ошибок в их коде. Специфика такова, что порой не обнаруженная вовремя ошибка может погубить стоящую идею торговой системы еще на этапе ее первых испытаний. Поэтому любой здравомыслящий разработчик МТС будет изначально заботиться о таких проблемах. Данная статья рассматривает некоторые подходы, помогающие в этом нелегком деле.

Author: Roman Kramar

Andrey Khatimlianskii
136
Andrey Khatimlianskii  

Вторую ошибку, связанную с занятостью торгового контекста терминала, полностью исключить не получится. При работе нескольких экспертов в одном терминале всегда возможна ситуация, когда один из экспертов попытается открыть позицию, пока другой все еще делает то же самое. Следовательно, такую ошибку всегда нужно обрабатывать.

Не соглашусь.
Ошибка 146 ("Торговый поток занят") и как с ней бороться [ en ]

Статья посвящена бесконфликтной торговле нескольких экспертов на одном терминале МТ 4 и рассчитана на пользователя, обладающего базовыми навыками работы с терминалом и программирования на MQL4.

Roman Kramar
742
Roman Kramar  
komposter:
Не соглашусь.
Ошибка 146 ("Торговый поток занят") и как с ней бороться [ en ]

Статья посвящена бесконфликтной торговле нескольких экспертов на одном терминале МТ 4 и рассчитана на пользователя, обладающего базовыми навыками работы с терминалом и программирования на MQL4.



Предложенные в отмеченной вами статье методы имеют определенные недостатки. Так вариант с использованием функции IsTradeAllowed() не дает 100%-й гарантии свободности торгового потока, что отмечено также и в самой статье, и следовательно, не исключает полностью этой ошибки.

Второй вариант, основанный на работе с глобальными переменными терминала, также имеет существенные, на мой взгляд, недостатки. Во-первых, при фатальном сбое в терминале, сохранившееся состояние глобальных переменных может привести к неработоспособности всех экспертов, использующих этот метод (семафор заблокирован, но нет текущего хозяина - ни один эксперт не может выполнять торговые операции). Во-вторых, этот метод требует доработки всех экспертов, торгующих на одном терминале, что в общем случае не всегда возможно. Например, если в терминале работает эксперт, исходного кода к которому у вас нет.

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий