Как я тестирую торговые гипотезы на золоте до того, как написать хоть строчку кода EA
Коротко о методологии, дальше — два реальных примера из недавней работы: одна гипотеза убита, вторая закрыта чисто на большой выборке, и одна интересная побочная находка.
Зачем диагностический скрипт вместо сразу полного EA
Прежде чем тратить дни или недели на полноценного советника, я пишу маленький диагностический скрипт с одной задачей: найти конкретный исторический паттерн и замерить forward-return после него. Никакой торговой логики, никакого мани-менеджмента, никакого исполнения ордеров — просто "есть ли у этого паттерна вообще статистические ноги". Пишется быстрее, гоняется быстрее, и плохая идея умирает за вечер, а не после недели написания полноценного EA вокруг неё.
Два примера из недавнего тестирования гипотез на золоте (XAUUSD).
Гипотеза 1: разворот после liquidity sweep
Идея: цена "сметает" хай/лоу азиатской сессии на Лондонском открытии, затем закрывается обратно внутрь диапазона — трактуется как ложный пробой с последующим разворотом.
Методологическая заметка, которая может сэкономить кому-то время: изначально у брокера оказалось доступно только ~3 месяца M1-истории (запрашивал 2 года, брокер столько не хранит). Вместо того чтобы мириться с крошечной выборкой, добавил в тот же скрипт вторую независимую пару сессий — London range (8-12), сметаемый на NY-открытии (12-16) — это примерно удвоило число событий в том же календарном окне и дало встроенную кросс-валидацию: если механизм реален, он должен проявляться на обоих переходах сессий, а не только на одном.
Результаты (движение в USD в предсказанном направлении разворота, обе пары):
| Горизонт | Pair 1 (Asian→London) WR / avg | Pair 2 (London→NY) WR / avg |
|---|---|---|
| 15м | 58.8% / +$0.40 | 43.8% / -$1.55 |
| 60м | 35.3% / -$2.53 | 53.1% / +$0.91* |
| 240м | 23.5% / -$6.02 | 43.8% / -$8.14 |
| 1440м | 41.2% / -$13.33 | 46.9% / -$5.18 |
*почти целиком за счёт одной сделки-выброса
На 15м/60м пары спорят друг с другом (если бы механизм был реальным — не должны бы). А там, где они наконец соглашаются — 240м и 1440м — они соглашаются в том, что предсказанное направление разворота устойчиво проигрывает. Чистое убийство гипотезы разворота.
Интересный побочный эффект: раз направление разворота проигрывает после часа, то направление продолжения (простой трендовый вход после sweep, без нарратива про разворот) показывает реальный перекос — WR 76.5% / 56.3% на двух парах на горизонте 240м. Любопытно, но механически это близко к обычной логике продолжения пробоя — если у вас уже есть трендовая система на этом инструменте, диверсификации это не добавит.
Гипотеза 2: mean-reversion внутри диапазона
Идея: в подтверждённом флэт-режиме (канал H1 + ADX-фильтр) касание края канала на M15 с подтверждением RSI и закрытием-отбоем должно вести к движению к противоположной стороне.
Первый прогон: всего 17 событий за ~20 месяцев M15-данных (глубина истории была в порядке — просто комбинация фильтров оказалась слишком строгой: одновременное совпадение ADX-флэт + касание + RSI-экстремум + подтверждённый отбой — редкость). Ослабил требование по RSI и чуть расширил зону касания, перезапустил: n=312.
| Горизонт | n | WR | avg move | avg win | avg loss |
|---|---|---|---|---|---|
| 15м | 312 | 46.8% | -$0.14 | +$2.60 | -$2.55 |
| 60м | 312 | 49.4% | -$0.91 | +$4.50 | -$6.19 |
| 240м | 312 | 50.3% | -$1.52 | +$7.97 | -$11.14 |
| 1440м | 312 | 46.2% | -$5.79 | +$21.93 | -$29.55 |
WR около честной монеты на каждом горизонте, и отрицательное матожидание везде, потому что средний убыток стабильно больше среднего выигрыша — классическая ловушка mean-reversion: много мелких выигрышей у края диапазона, редкий крупный убыток, когда диапазон реально пробивается. Чистое, статистически весомое закрытие гипотезы.
Вывод
Ни одна из гипотез не пережила встречу с данными на этом инструменте за этот период — и, кстати, сам этот период (рост золота к ATH около $5600 в январе 2026, сейчас консолидация) — это выраженный трендовый макро-режим, который структурно наказывает mean-reversion подходы. Стоит перепроверить, если режим сменится; строить под это прямо сейчас смысла нет.
Если кто-то гоняет похожую диагностику перед тем как закладывать полноценный EA — welcome обсудить методологию в комментариях.


