Блог им. SamvelMayilyan

Как проверить MT5 EA, а не просто посмотреть, что он работает

Недавно нам написал Arnold Holm из StratCoreAlpha. Предложил проверить несколько пограничных сценариев в нашем MT5 EA: reconnect, restart, Profit Lock, состояние позиции. Сам аудит нам был не особенно нужен, но письмо оказалось достаточно конкретным, чтобы вместо обычного «спасибо, неинтересно» начать разбирать его предположения.

И тут случилась полезная вещь.

Глядя только на EA, довольно легко предположить, что после reconnect старая команда может прийти ещё раз и потребуется механизм duplicate suppression. В нашей архитектуре такого сценария вообще нет: TradingView отправляет alert, получает HTTP 201 примерно за 35 мс, дальше команда живёт уже внутри нашей очереди. Старый alert после reconnect не воспроизводится из памяти.

Мы это объяснили Arnold. И вот тут проявилось то, что я считаю главным признаком нормального технического специалиста: он не стал защищать красивую гипотезу только потому, что уже её сформулировал. Он поменял модель тестирования и разделил то, что можно проверить внутри EA, и то, что требует наблюдения за всей цепочкой TradingView >>>  WebSocket server >>> EA >>> broker.

Звучит банально, но именно на этом ломается огромное количество торгового софта. Люди спорят о коде, хотя сначала надо договориться о другом:

Когда именно считается, что сигнал возник? Кто владеет состоянием позиции?

Что происходит после restart? Что считается успешным close — намерение программы или ответ брокера?

Что должна сделать система, когда действие категорически не должно происходить?

У Arnold на StratCoreAlpha весь подход построен примерно вокруг этого: сначала сформулировать поведение и failure cases, потом уже писать или чинить код. Причём доказательства он старается оставлять публичными: test harnesses, MQL5 utilities, Pine diagnostics, cTrader preflight, логи и acceptance cases.

Мы его не нанимали для разработки и не покупали у него готовый EA. Наш опыт был интереснее: дали внешнему инженеру рассуждать о реальной системе, часть его гипотез оказалась верной как направление проверки, часть — нет, потому что он не видел серверную часть. Когда выяснялось, что предположение неверное, менялась гипотеза, а не факты. По-моему, это и есть нормальная инженерия. Не тот хорош, кто заранее знает ответ. Хорош тот, кто умеет поставить тест так, чтобы системе пришлось ответить самой.

А практически к Arnold можно прийти не только за аудитом чужого кода. StratCoreAlpha занимается исправлением воспроизводимых ошибок в MQL4/MQL5, разработкой MT5 Expert Advisors по уже определённым торговым правилам, переносом и сверкой поведения между Pine Script, MT4/MT5 и другими платформами, а также проектированием автоматизации для cTrader. Общая идея везде одна: сначала точно договориться, что программа должна и не должна делать, потом написать код и оставить клиенту исходник вместе с проверяемыми тестами. Если кому-то нужен именно такой, а не шаманский подход к торговым роботам: https://stratcorealpha.com

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
379

Читайте на SMART-LAB:
Фото
Bitcoin на распутье: минимальный риск против большой коррекции
Биткоин последние несколько дней застрял на уровне поддержки 75000, довольно вяло её тестируя. Однако, если присмотреться, на графике можно...
Обращение президента Холдинга "Селигдар" по теме влияния обвинений в адрес мажоритарных акционеров на деятельность компании
ПАО «Селигдар» продолжает осуществлять свою деятельность в штатном режиме, планомерно наращивая собственные операционные показатели. За 9 месяцев...
Фото
Каким вы видите следующий годовой отчёт ДОМ.PФ?
Наш годовой отчёт три года подряд получал награды на конкурсе Мосбиржи. Это высокая оценка экспертов и профессионалов рынка капитала. Но мы...
Фото
Коротко по дивиденду Диасофта. Глазков на смартлабе. Прогноз на ближайший отчет.
На этой неделе объявлен квартальный дивиденд Диасофта. Много это или мало? Можно ли предсказать из дивиденда финансовые результаты 2 квартала,...

теги блога Samvel Mayilyan

....все тэги



UPDONW
Новый дизайн