Автоматизация и скрининг в техническом анализе — инструменты, процесс и ловушки

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

Учебная иллюстрация с условной геометрией. Точные определения, данные и расчёты приведены в статье.
Главное за 60 секунд
  • Скринер отбирает кандидатов. Его ценность может быть в сокращении обзора с сохранением охвата списка. Для оценки влияния на финансовые результаты нужно также зафиксировать правила входа, выхода и издержек.
  • У уведомления определённый охват. Оно не заменяет сканирование условий за пределами охвата. Сокращение времени у экрана измеримо; автоматического улучшения дисциплины или результатов мы не предполагаем.
  • Бэктест — модель. Тестер может включать исторические спреды, комиссии и условное проскальзывание. Но он не воспроизводит каждую доступную цену или будущую реакцию брокера, в том числе реквоту. Соответствие модели истории не доказывает будущего преимущества.
  • Уровни автоматизации — описательная условность. У уведомления, фильтра и системы исполнения приказов разные обязанности. Полное исполнение также требует обработки ошибок, дубликатов и состояния счёта; одного сигнала мало.
Условный скан: 28 ожидаются, 26 оценены, 2 пропущены и 4 кандидата
Концептуальная схема условных исходов: покрытие 26/28 = 92,8571%; 26 = 4 кандидата + 22 без сигнала. Два недостающих исхода неизвестны. Кандидат — не ордер.

1. Зачем автоматизировать и что именно

Восемь валют USD, EUR, GBP, JPY, CHF, AUD, NZD и CAD образуют 8 × 7 / 2 = 28 неупорядоченных пар. Это выбранный набор, а не весь форекс или измерение «наиболее популярных» инструментов. У брокера может быть иной список. До сканирования запишите символы, направление котировки и версию списка. Мы оцениваем фильтры скользящих средних, осцилляторов и зон S/R по одному контракту данных.

Скринер применяет записанное условие ко всему списку. Результат — кандидаты и отчёт покрытия. Последующее ручное или автоматическое решение может отклонить кандидата; сохраните этот результат отдельно.

Скринер проводит повторяемый обзор без выбора любимых графиков, но лишь в рамках настроек. Список 28 пар не доказывает, что все получили актуальные данные. Отчёт должен содержать записи и для пары без сигнала, и для пары, которую оценить не удалось.

RSI ниже 30 — результат условия, не приказ купить. Если вход определяет дополнительный анализ ценового действия или контекста, записывайте и отклонения. Иначе тест скринера охватит лишь удобно отобранные сделки.

2. Спектр автоматизации: от уведомления до алгоритма

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

УровеньЧто делает машинаЧто делает трейдерПримеры
1. Ценовое уведомлениеУведомляет о достижении ценой уровняАнализирует, решает, исполняетУведомление при EUR/USD = 1,0700
2. Уведомление индикатораУведомляет о выполнении условия индикаторомАнализирует контекст, решаетRSI(14) < 30 на D1
3. СкринерФильтрует инструменты по критериямПросматривает результаты, анализирует, решаетTradingView Скринер
4. Полуавтоматическая системаГенерирует сигнал и предлагаемые параметрыОдобряет либо отклоняет, управляет позициейСвой индикатор + уведомление Pine Script
5. Полная автоматизацияАнализирует, открывает, управляет, закрываетНаблюдает, вмешивается при аварияхТорговый советник (EA) в MT4/MT5

Готовый фильтр или уведомление не всегда требуют программирования. Но нужны настройка, источник данных и операционный тест. Полуавтоматическое и автоматическое исполнение создают отдельную проблему: правильно выявленное условие может получить иное исполнение либо никакого.

Схема делит функции на три категории: уведомление и фильтрация, выбор набора инструментов и исполнение. Переход к исполнению требует дополнительных проверок инструкций и ошибок; схема не рейтинг качества и не прогноз результатов счёта.

Статья сосредоточена на уровнях с 1 по 4. Полная автоматизация EA появляется главным образом в контексте ловушек: туда попадают, потянувшись за роботом слишком рано.

Сканирование, уведомление и исполнение: разные функции
Последовательность операций: у каждого шага отдельные условие и запись.

3. Критерии скрининга на практике

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

Проверка объективности правила

До попадания в сканер условие должно перейти с языка интуиции на язык машины. Каждый явно не заданный элемент ниже сканер решит за вас, обычно не так, как вы предполагаете:

ЭлементКонтрольный вопрос
Набор инструментовКакие инструменты сканирую — закрытый список, не «всё»?
Источник данныхЧей поток и какие цены — bid, ask, mid? Тот же, на котором торгую?
Таймфрейм и момент оценкиКакие свечи — только закрытые? Когда именно вычисляется условие?
Индикатор и реализацияКакие параметры и чья реализация — RSI Уайлдера ≠ RSI на SMA?
Оператор и порогПересечение порога или состояние ниже/выше него? С каким допуском?
Частота сканированияРаз на закрытую свечу, ежедневно в заданный час либо непрерывно?
Пропуски данныхЧто делает правило при пропуске свечи, разрыве, смене символа?
Устранение дубликатовСколько уведомлений при условии шесть свечей подряд — шесть или одно?
Условие сбросаЧто отменяет сигнал и позволяет правилу сработать вновь?

Три отдельные меры. Длительность сканирования и охват данных измеряют удобство и надёжность. Согласие с независимо размеченным эталонным паттерном измеряет обнаружение условия. Финансовые результаты требуют всей стратегии, включая отвергнутых кандидатов, цены реакции и издержки. Достижение TP само по себе не определяет «правильный» результат скринера, а отсутствие роста доли побед не отменяет экономии времени. Сравнивайте с нефильтрованным вариантом на одной заранее отложенной выборке.

Фильтры тренда

  • Цена относительно EMA/SMA. Цена выше растущей EMA 200 на D1 может задавать фильтр направления. Он отвергает кандидатов, не выполняющих условие, а не все «контртрендовые» сделки по любому определению рынка. Равенство цены средней или плоский наклон требуют явного решения.
  • Пересечение скользящих средних. Условие EMA 50 прежде ≤ EMA 200, а теперь > EMA 200 обнаруживает переход. Это не кросс-курс и не доказательство смены будущего направления цены. Оба значения должны быть из полных свечей одного ряда.
  • ADX выше порога. Примеры условных порогов: ADX(14) > 25 трактуют как трендовый рынок, < 20 — консолидацию, помня, что ADX измеряет силу, не направление движения. Полезен прежде всего как отрицательный фильтр: ниже порога трендовое правило отвергает инструмент согласно выбранному параметру.

Фильтры импульса и осцилляторов

  • RSI в крайних зонах. Примеры порогов для RSI(14) — 30 и 70. Их частота зависит от инструмента, TF, периода и инициализации. Перепроданность не самостоятельный сигнал покупки, перекупленность — продажи. Без исследования мы не приписываем экстремумам D1 больше информационной ценности, чем H1.
  • Дивергенция. Нужно задать свинги, сопоставление экстремумов цены и осциллятора, момент подтверждения. Тогда можно вычислять даже сложный паттерн. Ручная оценка «многоволновой» дивергенции без правил оставляет произвольный отбор, который трудно честно воспроизвести в тесте.
  • Гистограмма MACD — смена знака. Гистограмма пересекает ноль снизу: в этой реализации меняется соотношение линии MACD и сигнальной, а не доказывается смена направления цены. Легко кодируется и часто служит предварительным фильтром дальнейшего анализа.

Фильтры цены и структуры

  • Близость к S/R. Определите зону и допуск в единицах цены. Уведомление у вручную отмеченной зоны может упростить обзор, но эффективность нужно тестировать: она не следует из простоты настройки.
  • Пробой диапазона N свечей. Например, закрытие полной свечи > наибольшего максимума прошлых 20 полных свечей. Проверяемая свеча исключается из окна максимума; равенство в строгом варианте не пробой. Это один подход Дончиана, а не автоматическое обещание прибыли.
  • Фибоначчи. Определите подтверждённые концы свинга и допуск вокруг отката. Задержка подтверждения описана в статье 5.11. Вычисление уровня не доказывает реакции цены на него.

Разберите одну свечу до чтения полного контракта

Используйте поддержку S=1,1000 и фиксированный ATR A=0,0040. Зона — [1,0992;1,1008]; отмена требует C < 1,0980; повторная готовность — C ≥ 1,1040 и L > 1,1008. При проверке сигнала считайте условия EMA выполненными.

  1. При недостающих или неверных данных запишите состояние и приостановите новые оповещения.
  2. Закрытие ниже границы отмены выводит контекст из использования.
  3. Если контекст не готов, проверьте повторную готовность для следующей свечи. На этой свече не оповещайте.
  4. Если готов, пересечение диапазона с зоной и C > S могут дать кандидата при выполнении фильтра EMA.

Трассировка ниже даёт числа. Это модельные входы, а не восстановленная история рынка. Полный контракт добавляет проверки, сохраняющие смысл при повторении данных и запросов.

Воспроизведите состояние оповещения без следующей свечи

Сохраняйте S, фиксированный A, порядок ветвей и контекст. Первые шесть решений используют опубликованную трассировку с повторным запросом. Последний пробел данных рассматривается отдельно. Сделайте выбор до раскрытия проверки; ответы доступны без заметок.

Шаг 1. Готов. L=1,1007,H=1,1015,C=1,1010.

Необязательная заметка. Сохраните копию, если хранилище браузера недоступно.

Проверить шаг и раскрыть следующий

SIGNAL. Диапазон пересекает зону, C > S, предполагаемый фильтр EMA выполнен. Снимите готовность этого контекста.

Шаг 1 — повторный запрос. Снова поступили те же ключ и хеш входа.

Необязательная заметка. Сохраните копию, если хранилище браузера недоступно.

Проверить шаг и раскрыть следующий

Верните существующий SIGNAL. Не оценивайте по теперь уже неготовому состоянию и не отправляйте новое уведомление.

Шаг 2. Не готов. L=1,1010,H=1,1042,C=1,1040.

Необязательная заметка. Сохраните копию, если хранилище браузера недоступно.

Проверить шаг и раскрыть следующий

REARM для следующей свечи. C равен разрешённому порогу, L выше 1,1008. Сейчас оповещения нет.

Шаг 3. Готов. L=1,1007,H=1,1025,C=1,1010; фильтр EMA выполнен.

Необязательная заметка. Сохраните копию, если хранилище браузера недоступно.

Проверить шаг и раскрыть следующий

SIGNAL по новому ключу свечи, затем снимите готовность.

Шаг 4. Не готов. L=1,0975,H=1,1014,C=1,0980.

Необязательная заметка. Сохраните копию, если хранилище браузера недоступно.

Проверить шаг и раскрыть следующий

DISARMED. Равенство не выполняет C < 1,0980. Повторная готовность тоже не выполнена.

Шаг 5. Не готов. L=1,0974,H=1,0982,C=1,0979.

Необязательная заметка. Сохраните копию, если хранилище браузера недоступно.

Проверить шаг и раскрыть следующий

INVALIDATED. Выведите прежний центр из использования; нужен новый подтверждённый фрактал.

Отдельный шаг: пробел данных. Вместо полной записи ошибка данных мешает оценке.

Необязательная заметка. Сохраните копию, если хранилище браузера недоступно.

Проверить шаг и раскрыть следующий

NO_DATA. Не выдумывайте NO_SIGNAL и не выводите повторную готовность или отмену внутри пробела. Приостановите оповещения до восстановления контекста.

Прочитать полную разобранную трассировку

Один уровень, последовательные состояния уведомления

Пройдём правило без смены порогов после результата. Поддержка S = 1,1000 — из фрактала, подтверждённого до первого проверяемого дня. Зафиксированный тогда ATR A = 0,0040, или 40 пипсов, задаёт зону [1,0992; 1,1008], отмену C < 1,0980 и повторную готовность при C ≥ 1,1040 и L > 1,1008. Это параметры модели, не рекомендации EUR/USD. Центр фрактала и A неизменны во всём примере.

Фрагмент условного реестра D1 bid, оценка после получения каждого закрытия
ШагL / H / CСостояние доИсход
11,1007 / 1,1015 / 1,1010Готово (armed)Диапазон пересекает зону, C > S: уведомить и снять готовность
1 — повторКлюч и хеш входа как в 1Существующая запись SIGNALВернуть прошлый исход без новой оценки, смены состояния и уведомления
21,1010 / 1,1042 / 1,1040Не готово (disarmed)C равен порогу повторной готовности, L выше зоны: готовность для следующего шага, без уведомления
31,1007 / 1,1025 / 1,1010Готово (armed)Новый тест: второе уведомление, другой конец свечи и ключ
41,0975 / 1,1014 / 1,0980Не готово (disarmed)Равенство не отменяет при строгом правиле; нет ни готовности, ни уведомления
51,0974 / 1,0982 / 1,0979Не готово (disarmed)C < 1,0980: контекст отменён

В шагах 1 и 3 заявленный фильтр EMA выполнен: закрытие выше EMA, текущая EMA выше значения 20 свечей назад. Таблица не восстанавливает 500 свечей прогрева; эти два условия — входы логической модели, не документированные рыночные значения. Повтор шага 1 обязан вернуть тот же SIGNAL, не пересчитывать по уже снятой готовности и перезаписывать DISARMED. При ревизии отдельно восстанавливаются состояние до той свечи и последующие зависимые состояния с сохранением исходного запуска. Шаг 2 не может одновременно установить готовность и выдать уведомление: в начале оценки был disarmed. Порядок ветвей — часть определения, не техническая мелочь.

После шага 5 старый фрактал хранится в архиве как отменённый. На следующий день нельзя переименовать его в «последнюю поддержку» и создать уведомление из того же центра: нужен новый подтверждённый фрактал. Истечение через 60 свечей — отдельное состояние даже без пересечения границы отмены. При пропуске между шагами неизвестно, произошли ли готовность или отмена: сообщите о разрыве и приостановите новые уведомления до восстановления контекста.

Исправление high/low может изменить соответствие фракталу. Сохраните исходный снимок, доступный тогда исход и связанное с ним позднее исправление. «Как правило работало на окончательных данных» и «что оно реально могло отправить тогда» — разные эксперименты. Можно провести оба, но нельзя смешивать записи. Приложенный CSV состояний даёт материал для проверки реализации без размещения приказов.

RSI: ниже 30 — не новое пересечение
Последовательность и ось времени; каждое условие применяется после доступности данных.

От интуиции к условию — полное правило и потери перевода

Интуиция: «покупай отскоки от поддержки при восходящем тренде D1». Та же мысль в форме, исполнимой сканером:

Полная версия решает четыре задачи: получить версионный снимок; зафиксировать контекст; оценить свечу из исходного состояния; записать исход и доставить уведомление без дублей. Читайте ветви по порядку. Повтор запроса не является новой свечой, исправление — первоначальным оповещением.

Прочитать полный контракт данных, состояния и доставки
ПСЕВДОКОД: КАНДИДАТ «ТЕСТ ПОДДЕРЖКИ», НЕ ПРИКАЗ
Фиксированная конфигурация: version, 28 пар, поток BID, D1, календарь,
  EMA: α=2/201, начальное значение — SMA первых 200 C; ATR(14) Уайлдера:
  начальное значение = среднее первых 14 TR с предыдущим C, далее α=1/14;
  прогрев не менее 500 полных свечей — выбор модели, не гарантия сходимости.
Состояние символа: уровень S, ATR A, интервал определения, armed/disarmed.
В начале t запишите неизменяемый снимок контекста по данным, известным до start_t:
  он фиксирует входы t без изменения рабочего состояния armed; повтор использует этот снимок.
  Состояние до t и архив центров фракталов берутся из последней ранее обработанной свечи.
  Выберите последний строгий нижний фрактал с 2 свечами по каждую сторону,
  подтверждённый и полученный до start_t, возрастом не более 60 свечей;
  равные минимумы не образуют строгого фрактала; нет фрактала = NO_LEVEL.
  Определяйте новый контекст по потоку и центру фрактала. Храните отменённые центры
  в реестре; не создавайте контекст заново из того же центра.
  Для нового контекста A := ATR, известный до start_t; сохраняйте его неизменным
  до истечения, отмены либо нового подтверждённого центра.
  Через 60 свечей от центра запишите EXPIRED; уведомление не выдавайте.
  Если A ≤ 0 либо значение отсутствует: NO_VALUE, без сигнала.
  Запишите зону [S − 0.2A; S + 0.2A] и отмену C < S − 0.5A.
  Новый подтверждённый фрактал создаёт новый контекст в состоянии armed до проверки.
После конца t для КАЖДОГО символа полного набора:
  Key := (version, feed, symbol, D1, end_UTC).
  Получите полные OHLC t и known_at, а также сохранённый снимок контекста до start_t.
  Хеш входа охватывает OHLC, историю индикатора, контекст, конфигурацию и версии данных.
  Если ключ и хеш существуют: верните прежний исход без оценки и смены состояния.
  Если ключ есть, но хеш иной: добавьте ревизию и выполните отдельное воспроизведение
    из зафиксированного состояния до t; не оценивайте t по уже изменённому им состоянию.
    Исправление истории до t требует воспроизведения с первого изменённого входа.
    Сохраните исходный результат/known_at; пометьте новый результат как позднее исправление.
    Не отправляйте исправление как новое исходное уведомление; завершите символ.
  При первой оценке используйте копию состояния до t и снимок контекста;
    проверьте L ≤ min(O,C) ≤ max(O,C) ≤ H.
  Проверьте непрерывность сессии, поток, компонент, шаг цены и прогрев.
  Ошибка данных: запишите NO_DATA; сохраните состояние; не выдавайте уведомление.
  Если C_t < S − 0.5A: запишите INVALIDATED, удалите контекст; завершите символ.
  Если состояние было disarmed:
    если C_t ≥ S + A AND L_t > S + 0.2A: установите armed для СЛЕДУЮЩЕЙ свечи;
    запишите REARM либо DISARMED; на той же свече уведомления нет.
  Если состояние было armed:
    trend := C_t > EMA200_t AND EMA200_t > EMA200_(t−20).
    test := H_t ≥ S − 0.2A AND L_t ≤ S + 0.2A AND C_t > S.
    signal := trend AND test.
    Запишите SIGNAL либо NO_SIGNAL со всеми операндами.
    При сигнале установите контексту disarmed; новое уведомление лишь после будущего REARM.
  Каждая завершающая ветвь записывает исход, входы, состояние до и после t.
  Зафиксируйте запись и состояние один раз в одной транзакции с уникальным ключом;
    при конфликте повтора верните существующую запись без второй мутации.
  Идентифицируйте уведомление этим ключом, включая возобновление доставки.
  Обрабатывайте концы свечей хронологически; пропуск данных блокирует последующие
    уведомления до восстановления контекста; его нельзя превратить в NO_SIGNAL.
После сканирования сообщите expected/evaluated/missing/candidates, в том числе при candidates = 0.
Уведомление содержит end_t, known_at, version, S, A и условия; функции исполнения нет.

Перевод в условия делает выбор явным. Поддержка — подтверждённый фрактал, зона — ±0,2 × фиксированный ATR, тест требует записанных пересечения диапазона и закрытия. Контекст W1 и субъективное качество свечи вне этого правила. Повторная готовность оповещения и отмена поддержки — разные события. Другому определению нужна другая версия.

Макроконтекст и фильтры издержек — чего скринер сам не покажет

Фильтр календаря, спреда или ролловера — отдельное правило. Оптимальность окна 30 или 60 минут здесь не установлена. Запишите охватываемые события, источник дат и блокирует ли фильтр новых кандидатов, новые приказы либо также меняет работу с открытыми позициями.

  • Фильтр календаря. Пример процедуры может отклонять новых кандидатов за два часа до выбранного события. Это проверяемый параметр, не универсальное требование. Сверьте дату с издателем и различайте расписание и фактическую публикацию; «High impact» — классификация поставщика календаря.
  • Фильтр спреда. Порог явный, с единицей и базой сравнения. Удвоенный ранее измеренный уровень для пары и времени суток может блокировать новую инструкцию. Он не объясняет расширение спреда и не защищает открытую позицию.
  • Фильтр ATR. ATR > 1,2 × среднее прошлых N значений описывает превышение выбранного порога. Значение ниже него не означает автоматически «малоликвидный рынок». Изменение SL, TP и объёма требует записанного правила, а не обязательно следует из одного ATR.

Сохраняйте последующие оценки моделей, контекста и риска отдельными правилами. Если одна меняет действие, сохраните входы и причину отказа.

Level 2 и поток приказов в розничном FX — видимая глубина. В спот-OTC видна книга брокера, а не рынка. При шоке показанная глубина может исчезнуть до исполнения рыночного приказа — так называемая призрачная ликвидность — кажущаяся ликвидность — с исполнением на несколько, дюжину и более пипсов дальше. Для стратегий пробоя младших TF это важная причина расхождения бэктеста и реальности. Поток с центральной книгой есть во фьючерсах CME; микроструктуру OTC рассматривает раздел 3.
Режимы рынка — скринер не универсален

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

Пробой не раскрывает намерений. Уведомление и затем возврат ниже уровня не доказывают скопления стопов или действия крупного участника. ADX > 25 тоже не подтверждает эту причину: ADX не даёт направления. Правило может требовать ещё одного закрытия выше уровня, но сигнал тогда позднее и нуждается в отдельном измерении. Нельзя называть каждый убыточный пробой «ловушкой» лишь после результата.
Пересчитайте опубликованные примеры. Скачать примеры, программу проверки и инструкции. Распакуйте весь ZIP, затем выполните node reproduce-real-examples.cjs в этой папке. Прочитайте инструкции или изучите ожидаемые значения. Программа проверяет 50 утверждений и записывает проверки в ./reproduced. Все зависимости включены; связанные примеры H1/H4 и трёх символов используют общую программу.

Реальное сканирование H1: отклонённая тень и новый кандидат

Отдельный упрощённый эксперимент охватывает EURUSD, GBPUSD и USDJPY из того же экспорта ICMarketsSC-Demo. Каждая полная H1 оценивается после конца по Bid. Часы — исходное время MT5 без проверенного смещения. R — High последней строгой точки с двумя меньшими High слева и двумя справа; равенство точки не создаёт. Центр i известен лишь после закрытия i+2 и используется со следующей свечи. Допуск нулевой.

Кандидат требует обоих условий: Ct > R и Ct−1 ≤ R. Каждая точка даёт не более одного кандидата, ключ включает версию правила, поток, символ, H1 и начало оцениваемой свечи. Повтор запроса возвращает записанный исход. Через 24 последующие свечи от центра уровень истекает; любое нарушение часовой непрерывности сбрасывает контекст и требует новой непрерывной точки. Причину разрыва не выводим. Это фильтр кандидатов, а не стратегия входа и выхода.

Реальный EUR/USD H1: подтверждение точки, отклонённая тень и поздний Close выше уровня
ICMarketsSC-Demo, Bid, 13–14 октября 2026, исходное время MT5. Строгая точка 2+2; сигнал требует закрытия. Это логика сканирования, не исполнение или прибыльность.

EUR/USD: точка 13 октября 21:00 имеет High = 1,12037. Две её H1 справа заканчиваются 14 октября в 00:00, поэтому раньше R неизвестен. H1 [03:00, 04:00) имеет H = 1,12044, но C = 1,12034: пересечение одной тенью отклоняется без выдуманного рассказа о «ловушке». Лишь H1 [04:00, 05:00) закрывается на 1,12064, при прежнем C ≤ R. Кандидат появляется после получения закрытия, не раньше 05:00.

H1 [04:00, 05:00), 14 октября 2026 года — полная совокупность эксперимента
СимволRCИсход сканирования
EURUSD1,120371,12064Новый кандидат
GBPUSD1,325931,32669Эта точка уже сообщена — без повтора
USDJPY158,466158,392Отклонён: C ≤ R

Оценены все 3 из 3 символов; один новый кандидат не равен сделке. Отсев и все прежние исходы с 1 октября тоже записаны. Выбран первый кандидат EURUSD после этой даты с прежним отклонённым пересечением того же R за предыдущие 12 H1, а не по будущей прибыли. Экспорт не содержит времени фактического получения, Ask, исполнений или полной истории пересмотров. Показываем причинный порядок на фиксированных данных, а не реально отправленные тогда уведомления.

Для проверки: исходные H1 графика, последовательные состояния примера, а также полный регистр трёх символов, метаданные и SHA-256, и скрипт воспроизведения. Проверки начальных фрагментов сравнивают исход по истории до данного момента с той же частью полного воспроизведения. Добавление будущих свечей не должно менять прежний исход.

4. TradingView — скринер, уведомления, Pine Script

Встроенный скринер

TradingView даёт валютные фильтры и уведомления, но точный охват зависит от текущего инструмента и тарифа. Проверьте колонки, TF и источник. «Volume» в спот-FX — не центральный реестр сделок: это может быть число обновлений потока. Источники могут давать разные результаты; сравнение возможно при определённых данных и методе.

Для первой реализации выберите одну задачу: находить перепроданных кандидатов внутри этого фильтра нисходящего D1. Оценивайте полные доступные свечи записанной совокупности и потока. Правило: C < EMA(200) AND RSI(14) < 35 AND ADX(14) > 20. Равенство не проходит строгое сравнение. Реализации и инициализация индикаторов следуют объявленному контракту данных. Получаются кандидаты для проверки, а не указание купить или продать.

Три сконструированные проверки D1 — без рыночной истории
Строка моделиClose / EMA200RSI14 / ADX14Исход
A1,0900 / 1,100032 / 24Кандидат: три сравнения выполнены
B1,1100 / 1,100032 / 24Отклонён: Close не ниже EMA
C1,0900 / 1,100068 / 24Отклонён: RSI не ниже 35

Входы проверяют логику без восстановления истории индикатора. Доходность за пять сессий была бы отдельным условием: 100 × (C_t / C_(t−5) − 1) имеет знак; абсолютное значение — нет. Перед добавлением задайте знак, порог и ряд. Сообщайте ожидаемые, оценённые, недостающие записи и кандидатов вместо обещания типичного дневного числа.

Уведомления TradingView

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

Лимиты оповещений зависят от текущего тарифа TradingView, типа и длительности оповещения. Проверьте до выбора совокупности. Лимит активных оповещений и числа проверенных символов — разные ограничения.

Pine Script — свои индикаторы и стратегии

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

  • Пользовательский индикатор может объединить RSI, подтверждённую зону Фибоначчи и соотношение EMA. Каждому входу нужны расчёт, источник и время доступности; нарисованная стрелка их не даёт.
  • Уведомление по своему индикатору — при совпадении условий скрипт автоматически выдаёт уведомление. Вы получаете сообщение на телефон и открываете готовый к анализу график.
  • Бэктест стратегии — у Pine Script встроен модуль strategy() для теста логики на истории. Результаты во вкладке «Strategy Tester»: кривая капитала счёта, просадка, доля побед, профит-фактор.

Pine Script рассчитывает индикаторы, уведомления и имитируемые приказы в эмуляторе TradingView. Штатная интеграция брокера не означает, что стратегический скрипт отправляет ему свои сделки. Автоматическое исполнение после webhook требует отдельного правильно настроенного слоя с выявлением дубликатов, подтверждений и ошибок. Среда зависит от данных и требований; без измерения ни одна платформа не объявляется гарантией меньшего проскальзывания.

Событие RSI в псевдокоде. Это описание логики, не готовый к вставке код или система отправки приказов. Реализация сохраняет контракт полноты и времени и правило инициализации из статьи 5.8.

ПСЕВДОКОД — ТОЛЬКО УВЕДОМЛЕНИЕ, БЕЗ ПРИКАЗОВ
Конфигурация: версия правила, набор инструментов, поток BID, таймфрейм D1,
  границы дня, реализации RSI(14) и EMA(200), не менее 500 исторических свечей.
После каждого ожидаемого конца D1 для КАЖДОГО символа:
  Проверьте полноту, OHLC, непрерывность календаря и время доступности.
  При пропуске данных: запишите NO_DATA; сохраните состояние порога; завершите символ.
  Рассчитайте RSI и EMA тем же заявленным методом на двух последовательных полных D1.
  Если результат не определён: запишите NO_VALUE; завершите символ.
  Event := предыдущий RSI ≥ 30 AND новый RSI < 30 AND новый C < новая EMA.
  Key := (version, feed, symbol, D1, end_UTC).
  Запишите исход даже при event = FALSE, со временем и хешем данных.
  Если event и key ещё не отправлен: запишите уведомление, отправьте сообщение.
  Повтор с тем же ключом не отправляет нового уведомления.
  Исправление истории: добавьте версию исправления, не заменяйте исходное решение.
  При пропуске между свечами не изображайте непрерывное пересечение.
  Следующее событие требует новой пары последовательных полных свечей.

RSI = 30 на прошлой свече допускает переход, равенство на текущей — нет. Это явный выбор операторов. Ещё одна свеча ниже 30 не новый переход. Отдельно устраняются идентичные результаты повтора сканирования. Пропуск не позволяет выдумать недостающий RSI или принять ненаблюдавшееся пересечение.

Обнаружение и реакция. Close доступно после завершения и получения свечи. Затем следуют уведомление, решение и возможная попытка исполнения. Стандартный эмулятор TradingView исполняет новый приказ не ранее следующего тика, но имеет и моделирование исполнения по закрытию. Это не доказывает достижимости цены после получения уведомления. Будущее закрытие HTF до конца интервала — заглядывание вперёд независимо от названия настройки. Временная шкала приведена в статье 5.11.

Модель задержки. Уведомление получено через три секунды после конца свечи, ask в момент реакции на 12 пипсов выше эталонной модели. Это условная разница цен, не наблюдение CPI. Даже сигнал D1 может встретить скачок за эти три секунды. Запишите времена данных, уведомления, инструкции и исполнения: влияние задержки зависит не только от длины TF.
От логики индикатора к записи уведомления
Последовательность и ось времени; каждое условие применяется после доступности данных.

5. MT4/MT5 — сканеры, индикаторы, советники EA

MetaTrader поддерживает локальные индикаторы и советники на MQL4/MQL5. Советник может отправлять заявки и управлять ими, если разрешают платформа, счёт и поставщик. Скринер, лишь сообщающий условия, имеет более узкую ответственность.

Свои индикаторы и сканеры

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

Локальному скринеру MT4/MT5 нужен работающий процесс платформы на компьютере или VPS. Оповещения TradingView используют серверы сервиса. В обеих средах проверяйте свежесть данных, ошибки и получение сообщений; уведомление отдельно от обнаружения.

Советники EA — полная автоматизация

EA — программы, способные торговать самостоятельно. Возможности огромны: от «покупай при пересечении EMA 50 вверх через EMA 200» до сложных систем динамического управления позицией, трейлинг-стопов и мульти-TF.

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

Исполнение вне сканера. Связь цены и задержки касается и D1 при реакции в быстром движении. VPS и короткий сетевой путь не гарантируют исполнения. Политика, доступные цены и подтверждения конкретного поставщика — отдельные переменные; о них — статьи об исполнении: качество и инфраструктура.

MT5 и MT4

У MT5 мультисимвольный тестер, стандартный MT4 работает с выбранным символом. Это важно портфельным стратегиям, но не определяет качество данных или модели исполнения. Проверьте поддерживаемые инструменты, режимы теста и условия брокера: название платформы не оценка исполнения.

6. Процесс: от сканирования к списку наблюдения

Процесс ниже разделяет сканирование, проверку и реакцию. Это организационный пример для свинг-трейдинга, а не результаты исследования эффективности. Каждый этап оставляет запись, включая отказ.

  1. W1 после завершения недели. Просмотрите контекст и ранее подтверждённые зоны S/R. При формальном определении оценка может быть ручной или автоматической. Запишите время определения и границы зон, не сдвигайте их позднее под результат.
  2. Сканирование D1 после заданного закрытия. Оцените каждый символ по фиксированному правилу. Проверьте кандидатов по записанному недельному контексту; сохраняйте ручной отсев и отсутствие данных.
  3. Список наблюдения и экспозиция. Число пар зависит от способности их просматривать, не от «идеальных» 2–5. Лонги EUR/USD, GBP/USD и шорт USD/CHF имеют общую короткую часть USD, но разные прочие валюты; это не одна идентичная позиция. Измеряйте корреляцию согласованных доходностей с указанием периода и окна. DXY частично повторяет эти курсы, COT имеет отдельные даты позиций и публикации. Расчёт размера позиции относится лишь к торговому плану.
  4. Уведомления и ожидание. Для пар списка ставите уведомления по цене — достижение зоны, индикатору — вход RSI в крайнюю зону, либо рисунку — касание трендовой линии. Вы не сидите у графика, а ждёте сообщения.
  5. Оповещение → проверка → решение. Изучите записанного кандидата и отдельные условия активации, риска и исполнения. Уведомление само по себе не разрешает заявку. Запишите причину отсутствия действия.

Запишите фактическое время и охват обзора. Уведомление не гарантирует верной оценки контекста или полноты списка. Смена данных после интервенции или объявления может изменить исход правила; проверка требует новой записи, а не замены прошлого прочтения.

Пять этапов контракта данных: снимок, правило, исход каждого символа, ключ события и ревизия. Это не EA. Сохранённая прошлая запись отделяет доступное тогда решение от позднего исправления.
Список наблюдения или одержимость

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

7. Утро понедельника — как выглядит скрининг 28 пар

Пример понедельника: источник использует дни с концом в 17:00 America/New_York и пять полных D1 в обычной неделе. Оценка по последней полученной полной D1. В UTC к понедельнику уже может быть короткая воскресная свеча; универсального отсутствия новой D1 за выходные не предполагаем.

8:15. В скринере TradingView фильтры D1 по закрытию пятницы: RSI(14) < 35, цена ниже EMA 200, ADX(14) > 20. Цель — перепроданные пары в нисходящем тренде.

Модельный фильтр возвращает четыре пары при полных данных всех 28. Обзор использует одинаковые источник, конец D1 и инициализацию индикаторов:

  • AUD/USD. Условный RSI 28 и цена ниже EMA 200 выполняют фильтр. С заранее записанной зоной W1 кандидат идёт на дальнейший анализ; одна близость поддержки не приказ купить.
  • NZD/USD. Фильтр выполнен, но дополнительное правило требует близости зоны W1, которой здесь нет. Запись: отказ при проверке, не «ложный сигнал» после убытка.
  • EUR/GBP. В модели сканер показывает ADX 21, другой поток — 18 при пороге > 20. Это не единое согласованное измерение. Запишите источники и приостановите сравнение до проверки OHLC, границ дня и инициализации. Без пересчёта не приписывайте всю разницу ADX в три пункта лишь потоку.
  • GBP/CHF. Условные RSI 31 и ADX 27 выполняют фильтр. Близость отката 61,8% требует заранее известного свинга и допуска; ценовое уведомление и RSI остаются отдельными условиями.

Модель: фильтр проходят 4/28 = 14,2857% инструментов, в списке остаются 2/28 = 7,1429%. Время работы не измерено. При двух пропусках верный отчёт: «4 кандидата из 26 оценённых, охват 26/28 = 92,8571%», а не «4 из 28»; исходы недостающих двух неизвестны.

Четыре уведомления и общая валюта. В модели открыты лонги AUD/USD, NZD/USD, EUR/USD и GBP/USD с плановым ценовым риском 1R каждый. Если все реально закрыты по −1R, сумма −4R; если R уже включает все издержки, повторно их не добавляют. Проскальзывание и разрывы меняют исполнения. Общая часть USD усиливает общую чувствительность, но не устраняет четыре разные базовые валюты и не устанавливает постоянной корреляции. Раздел 9 развивает измерение экспозиции.
28 символов: кандидат, нет сигнала, нет данных
Последовательность операций: у каждого шага отдельные условие и запись.

8. Уведомления — как не пропустить без наблюдения

Уведомление отделяет ожидание условия от просмотра графика. Его влияние на время работы можно вычислить. Это не гарантия меньшего числа импульсивных сделок: сообщение всё равно требует следования плану.

Рыночный и лимитный приказ — краткое правило

Рыночный приказ не гарантирует ни цены, ни исполнения при любых условиях. Лимит ограничивает цену по правилам продукта, но может не исполниться. Без данных мы не предполагаем, что лимит «обычно выигрывает» на D1. Выбор типа и активация по bid/ask описаны в статье 2.7.

Виды уведомлений

  • Цена. «Сообщи, когда EUR/USD достигнет 1,0700». Их ставят на уровнях S/R, откатах Фибоначчи и интересующих зонах. Без программирования.
  • Индикатор. «RSI(14) < 30 на D1» либо «гистограмма MACD сменила знак». В TradingView: щелчок по индикатору → Create Alert. В MT4/MT5 — свой индикатор с уведомлением. Важно: MT4 работает локально и требует открытой платформы либо VPS.
  • Объект рисования. TradingView ставит уведомления на нарисованных трендовых линиях и зонах: цена касается недельной линии — на телефон приходит push. Это сочетает ручную разметку и автоматическое сообщение.
  • Составное условие. Многокомпонентное уведомление: «цена ниже EMA 200 И RSI < 35 И ADX > 25». Нужны Pine Script или MQL, но настройка однократная.

Как сочетать уведомления на практике

По зоне + по индикатору. На выходных рисуете зоны W1/D1 и ценовые уведомления, параллельно — RSI < 30 на парах списка. Близкое по времени срабатывание делает условие более избирательным, но не обязательно независимо подтверждённым: оба критерия вычислены по одной цене. Зональный подход сочетается с анализом поддержки и сопротивления, индикаторный — со стратегиями осцилляторов.

Сокращайте ненужные повторы и истёкшие условия. Число активных уведомлений зависит от процесса обзора: можно сканировать весь набор и отправлять лишь новые события без дубликатов. Для сокращения сообщений не нужно исключать инструменты.

Состояние RSI < 30 может сохраняться несколько свечей. Предыдущий RSI ≥ 30 и текущий RSI < 30 — событие перехода. Оценивайте выбранное условие один раз на заданную полную свечу, затем убирайте дубли её обработки. Это отдельные проверки.

Перед сравнением скринеров согласуйте источник, сторону цены, дневные границы и инициализацию. Разные OHLC меняют прохождение порогов. Серверные метки сами не устанавливают размер или направление различия. Урок 5.11 разбирает временное сопоставление.

Ролловер и закрытие D1. Если день источника кончается в 17:00 America/New_York, это 23:00 Варшавы при совпадении сезонов летнего времени или 22:00 при несовпадении. Само GMT+2/+3 сервера не доказывает этой схемы. Запишите исторический спред и отдельное правило задержанной реакции: откладывание анализа до утра меняет цену и может отменить сетап. Условия перерывов и ролловера — в статье 4.6.
Уведомление не исполняет сделку. При публикации спреды могут изменяться, но само уведомление не имеет цены исполнения. Только приказ подчиняется правилам конкретного продукта. Блокирующее окно ±15 минут — параметр, а не гарантия безопасности снаружи. Расписания и перевод времени раскрыты в статье 4.5.
Общая информация, разные позиции. Уведомления AUD/USD, NZD/USD, EUR/USD и GBP/USD имеют общую валюту котировки, но разные базовые. Мы не суммируем их как независимые доказательства и не считаем идентичной сделкой. Раздел 9 отделяет экспозицию от измеренной корреляции.
Три позиции с общей короткой стороной по USD
Матрица показывает знаки валютных экспозиций трёх направлений позиций, а не тепловую карту корреляций. Для корреляции нужны согласованные доходности, окно и метод; стресс не устанавливает каждой паре ±1. Вес EUR в DXY равен 57,6%, и индекс не даёт независимого подтверждения EUR/USD.
Пример: уведомление по зоне EUR/USD

В условной модели зону W1 [1,0680; 1,0720] задали до теста. Отдельно определён переход RSI(14) ниже 30 по полной D1. Их сочетание требует заданного окна, например обоих событий в один день, а не произвольного «близкого времени» задним числом. После выполнения полная H4 проверяется по правилу паттерна. Это более избирательный фильтр, но сигналы происходят из цены и не становятся автоматически независимыми.

9. Бэктест — что проверять и как толковать результат

Бэктест применяет модель к историческим входам. Он выявляет несогласованные правила и оценивает исходы по заданным допущениям, но не устанавливает точные цены после решения в реальном времени и не гарантирует новых результатов.

Что стоит тестировать

Исторический тест требует воспроизводимых правил и доступных в каждый момент данных. Даже простое неравенство неполно без источника, TF, инициализации и цены реакции.

  • Условия индикатора. RSI(14) < 30 воспроизводим лишь после фиксации источника, границ, расчёта и времени оценки.
  • Правила выхода и SL/TP. Фиксированный SL 50 пипсов, TP 100 пипсов либо трейлинг-стоп 2× ATR. Измеримо и сравнимо.
  • Сравнение вариантов. Измерьте ту же процедуру с иным порогом или стопом. Запишите все изученные варианты и сохраните данные, не использованные для выбора.

Хуже тестируется всё, что требует человеческого суждения:

  • Ценовое действие. Геометрию свечи, зону и время подтверждения можно определить численно. Произвольное «выглядит убедительно» требует отдельного записанного протокола оценки; доказанного преимущества глаза над правилом мы не предполагаем.
  • Структурный контекст. Ручная разметка волны 2 требует правил, версии и времени создания. Поздняя перемаркировка не может улучшить прежний результат теста.
  • Дискреционные решения. Отказы кандидатам можно записывать заранее. Без записи неизвестно, улучшило ли суждение результат или отобраны лишь удачные случаи. Нет оснований считать, что прибыльность объясняется одним невидимым алгоритму контекстом.

Качество данных — редкая тема

Бэктест надёжен лишь настолько, насколько данные. Для форекса это серьёзно: рынок децентрализован, данные брокеров могут различаться спредами и небольшими отличиями OHLC. OHLC теряет внутрисвечную траекторию; при близких SL и TP невозможно узнать, какое касание было первым.

Режим MT5 «Every tick based on real ticks» — «Все тики на основе реальных тиков» — использует доступные тики, но не гарантирует их наличия везде. MetaQuotes описывает генерацию тиков при пропусках и отбрасывание не согласующихся с минутными данными. Проверьте отчёт данных. Исторический спред отделён от задержки исполнения. Фиксированный «текущий» спред другого режима — сценарий, не всегда нижняя оценка: относительно истории он может быть высоким или низким.

Bid/ask, mid и цены поставщика. Не выводите тип цены из бесплатности API. Метаданные указывают bid, ask, mid, сделку либо иной ряд. В модели лонга относительно mid издержка спреда в пипсах — (спред входа + спред выхода)/2. При обоих спредах 1 пипс и 200 полных оборотах разница 200 пипсов до прочих издержек. С фактическими ask входа и bid выхода она уже в ценах. Dukascopy и TrueFX — примеры источников для проверки; название не отменяет проверки колонок, охвата и пропусков.

Закрытие свечи и внутрисвечное событие — разные правила. Касание может появиться и исчезнуть до конца свечи. Событие по закрытию ждёт завершения и получения. OHLC не восстанавливают весь порядок движения внутри интервала и не обосновывают заявленного процентного преимущества любого правила.

Условное быстрое движение. Приказ может достичь стопа, хотя позднее H1 закроется выше входа. OHLC не задаёт порядка экстремумов и исполнений. M5 уменьшает неоднозначность, но не восстанавливает каждую траекторию тиков. Без данных мы не приписываем движение алгоритмам поставщика. Отмечайте окна публикаций отдельно для сравнения чистых результатов и математического ожидания.

У финансирования есть знак и единица. Своп бывает отрицательным или положительным по продукту и стороне; знак для шорта USD/MXN или лонга USD/TRY не выводится из названий валют. Тест требует исторических спецификаций и дневных множителей, не одной текущей таблицы. Например, ценовой результат +80 USD, комиссии −7 USD и финансирование −18 USD дают +55 USD; при финансировании +18 USD результат +91 USD. Спред внутри фактических цен повторно не начисляется. Единицы и пересчёты описаны в статье 2.8.

EUR/CHF, 15 января 2015. SNB объявил об отмене минимального курса 1,20 и смене ставки на −0,75%. FSCS подтверждает специальное управление Alpari (UK) с 19 января. Эти документы не подтверждают прежнее число EA, их просадки 3–5%, длительность исчезновения всех котировок или масштаб потерь клиентов. Вывод для теста уже: данные периода одной политики не содержат автоматически её последующей смены, а цена стопа не гарантирована без соответствующего условия договора.

Одна свеча, два возможных исхода

Модель лонга уже открыта по исполнению 1,1000. Следующая свеча по bid имеет OHLC: O = 1,1000, H = 1,1030, L = 1,0980, C = 1,1010. TP = 1,1020, обычный SL = 1,0990; предполагаются исполнение без разрыва ровно на уровне и отсутствие прочих издержек. Путь O→H→L→C первым достигает TP: +20 пипсов. Путь O→L→H→C — сначала SL: −10 пипсов. OHLC у них одинаковы.

При номинале 10 000 EUR результаты +20 либо −10 USD. Это не два исхода одной фактической сделки, а две траектории, согласующиеся с неполными данными. Исполнения входа и выхода уже учитывают сторону рынка, спред повторно не добавляется. Тестер, выбирающий порядок по OHLC, принимает условность и раскрывает её в отчёте. Младший TF или тики разрешают больше случаев, но пропуски остаются пропусками.

Один OHLC, две возможные последовательности
У двух траекторий Bid OHLC 1,1000/1,1030/1,0980/1,1010. Исполнение длинной позиции 1,1000, номинал 10000 EUR. Предполагается исполнение на уровнях без гэпов и сборов.

Mid и исполнение — два расчёта одного оборота

Модель EUR/USD: mid входа 1,1000, спред 2 пипса, значит ask 1,1001; исполнение покупки 1,1002. Mid выхода 1,1020, спред 4 пипса, значит bid 1,1018; исполнение продажи 1,1017. Номинал 10 000 EUR. Прибыль mid — 20 USD. Половины спредов стоят 1 + 2 = 3 USD; проскальзывание относительно ask/bid — 1 + 1 = 2 USD. Результат исполнений (1,1017 − 1,1002) × 10 000 = 15 USD согласуется с 20 − 3 − 2.

Комиссия оборота 2 USD и финансирование со знаком −1 USD дают чистые 12 USD. При общем условном курсе 4,00 PLN/USD это 48 PLN; реальный реестр использует курсы и моменты проводок отдельных сумм. Мы не считаем 15 − 3 − 2 повторно. CSV отделяет ориентир от фактических цен.

Как толковать результаты

Основные метрики бэктеста:

МетрикаЧто сообщаетНа что смотреть
Профит-фактор (PF)Сумма положительных ЧИСТЫХ результатов / модуль суммы отрицательныхНоль не входит ни в одну сумму. Без убытков отношение не определено, а не доказывает бесконечное преимущество. PF 1,5 не универсальный порог.
Максимальная просадкаНаибольшее падение капитала счёта от прошлого пикаВ валюте либо процентах от пика; зависит от частоты наблюдений. Одни закрытые сделки могут упустить риск открытых позиций.
Доля прибыльных исходовДоля положительных исходов заданной выборки30% исходов по +3R и 70% по −1R дают +0,2R брутто за сделку. Издержка 0,25R за оборот меняет ожидание на −0,05R. Одни R:R и доля побед не доказывают будущей прибыльности.
Число сделокЧисло наблюдений и реальное разнообразие100 сделок в одном движении USD ≠ 100 независимых наблюдений. Проверяйте кластеры, режимы и неопределённость: волшебного минимума нет.
Коэффициент ШарпаСредняя избыточная доходность над ориентиром / стандартное отклонение доходностиВажны частота, ориентир, годовой пересчёт и временная зависимость. > 1 либо > 2 — ни тест качества, ни доказательство переобучения.

Пример: плохой бэктест и его исправление

Модель оптимизации: порог RSI от 10 до 30 с шагом 1, SL от 30 до 80 пипсов с шагом 1, TP от 80 до 200 с шагом 1. Сетка содержит 21 × 51 × 121 = 129 591 сочетание, а не несколько дюжин. Считайте и брошенные попытки, и ручные правки правила. Лучший условный PF 2,8 на 2020–2025 — результат отбора в том наборе, не доказательство преимущества выбранных RSI 22 / SL 43 / TP 167.

Резкий пик вокруг одного сочетания — повод проверить чувствительность. Он не доказывает подгонки сам по себе: могут влиять издержки, малая выборка, смена режима. Отчитывайтесь о всей сетке и правиле выбора, не одной лучшей точке.

После подбора на всём 2020–2025 нельзя назвать 2024–2025 отложенной выборкой. Нужны новые будущие наблюдения либо иной заранее заданный план. У обучения, валидации и теста разные функции; после использования теста не оптимизируйте на нём вновь.

Различия теста и работы возникают из модели издержек, данных, исполнения или смены условий. Не всякий слабый реальный запуск доказывает подгонку и не всякий бэктест по определению оптимистичен. Сравнивать нужно одни правила с журналом сигналов, приказов и фактических исполнений.

Форвард-тест — мост от бэктеста к реальному счёту

Форвард-тест проверяет работу на новых наблюдениях. Срок не определяет представительность: несколько месяцев могут охватить мало событий одного режима. Демо проверяет логику и доступность, но исполнение может не соответствовать реальному счёту. Разложите худший результат на различия данных, исполнения, издержек и распределения самих событий.

Монте-Карло — распределение сценариев вместо одного пути

Перемешивание закрытых исходов, например 1 000 перестановок 150 сделок, показывает условные траектории капитала той же выборки при фиксированных правилах размера. Оно не создаёт новых шоков или смены распределения и может удалить временную зависимость. При процентном риске или одновременных позициях сохраняйте их структуру. 95-й процентиль симуляции не гарантирует предела будущей просадки. Инструмент упражнения — симулятор Монте-Карло.

10. Python в скрининге и бэктестах

Python поддерживает свой реестр данных и тесты. Цена и сложность зависят от источников, охвата и сопровождения. Своему сканеру нужны обработка ошибок, версии зависимостей и мониторинг; статья даёт логический контракт, а не производственный код или обещание дешёвой готовой системы.

Собственная среда даёт контроль над несколькими частями процесса:

  • Объединение источников. API брокеров и библиотеки данных дают разные инструменты и метаданные. До объединения рядов проверьте доступ, покрытие и пересмотры.
  • Статистический анализ. Библиотеки рассчитывают тесты и распределения. Вопрос, опорное распределение, допущения зависимости и семейство попыток всё ещё нужно выбрать правильно.
  • Гибкость бэктестов. Библиотеки backtrader и vectorbt тестируют портфельные стратегии многих пар, динамического распределения капитала и корреляций инструментов. У Pine Script и MQL здесь ограничения.
  • Связанный процесс. Получение, отбор и уведомления могут иметь общий регистр. Исполнение требует отдельного слоя инструкций и подтверждений со своей обработкой повторов.
  • Анализ настроений. Некоторые трейдеры пробуют автоматический анализ настроений новостей и отчётов как вход скрининга. Инструменты есть — от скриптов до API языковых моделей, но в розничной практике это ещё скорее эксперимент, чем готовое решение.

Цепочка в псевдокоде — данные, сканирование и архив. В нём нет токенов API или функций исполнения приказов. Та же логика реализуема в любой среде.

ПСЕВДОКОД ЦЕПОЧКИ — БЕЗ ФУНКЦИИ ОТПРАВКИ ПРИКАЗОВ
Загрузите фиксированную конфигурацию и полный версионируемый список символов.
Определите ожидаемые концы свечей по календарю источника, не часам компьютера.
Для каждого символа получите данные с component, start, end, complete,
  received_at, revision и идентификатором источника.
Сохраните неизменяемый снимок данных и контрольную сумму.
Проверьте OHLC, единицу цены, непрерывность сессии и прогрев индикатора.
При ошибке запишите NO_DATA с причиной; не создавайте NO_SIGNAL.
По корректному снимку рассчитайте полное правило критериев.
Запишите исход каждого символа, в том числе не выполнившего условие.
Дедуплицируйте уведомления по version, feed, symbol, timeframe и end_UTC.
При исправлении добавьте запись, связанную с предыдущим снимком.
Сводка: expected, evaluated, missing, candidates и длительность сканирования.
Архивируйте ручное решение и время отдельно, не перезаписывая исход фильтра.
Сообщите о сбое процесса и недостающих символах, даже если кандидатов ноль.

До выбора источника проверьте лицензию, инструменты, сторону цены, время, полноту, ревизии и bid/ask. Мы не даём одной оценки всем данным Yahoo или бесплатным API. Библиотека чтения не улучшает данные автоматически и не предоставляет цен исполнения.

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

Повтор и состояние инструкции. Ошибка ответа не доказывает непринятия приказа. Перед повтором слой исполнения проверяет статус и применяет поддерживаемую API дедупликацию. Не предполагается поддержка произвольного ключа идемпотентности каждым брокером. Лимиты запросов и ожидания заданы контрактом поставщика. Псевдокод скринера не отправляет приказов, поэтому его повтор нельзя напрямую связать с торговой операцией.
Контракт сканирования: записывайте результаты и без сигналов
Последовательность операций: у каждого шага отдельные условие и запись.

11. Ловушки автоматизации

Автоматизация повторяет заданный процесс. Измерьте экономию времени проверки, сохранение покрытия или изменение операционных ошибок. Она может последовательно повторять ошибку; следующие проверки упрощают её выявление.

ЛовушкаМеханизмКак ограничить
Модель midДля двух исполнений разница — половина спреда входа плюс половина спреда выходаПроверьте тип цены; не прибавляйте спред к фактическим ask/bid повторно
Фиксированный спредУсловный сценарий, который может быть слишком низким или высокимИстория bid/ask и отчёт пропусков; одни «реальные тики» не гарантируют полноты
Пропущенные проскальзывание и комиссияЧистый результат ниже валового, особенно на младших TFМоделируйте проскальзывание консервативно, учитывайте комиссию в R
Заглядывание вперёдСигнал использует недоступные в момент решения данные: закрытие формирующейся свечи, будущий свингДоступные при решении входы с задержками подтверждения и доставки; реакция по более поздней доступной котировке
ПереобучениеПараметры подогнаны к шуму одной историиМало параметров; вневыборочный тест; walk-forward
Множество попытокОтбор лучшего варианта повышает риск ложного открытияРегистрируйте все попытки, используйте подходящую поправку и неиспользованный тест
Ошибка выжившегоВидны лишь выжившие системыОценивайте процесс, не отобранные результаты
ПерерисовкаИндикатор перерисовывает закрытую историюПроверяйте индикатор вперёд; избегайте в правилах инструментов вроде ZigZag
Пропущенный свопИздержки удержания съедают результат свингаУчтите своп-пункты; тестируйте на данных с учтёнными издержками

Переобучение — подгонка к прошлому

Переобучение — подгонка выбора к свойствам конкретной выборки, не сохраняющимся за её пределами. Это не синоним любого убытка первого дня. Оценить проблему помогают чувствительность параметров, число попыток и новые наблюдения.

Признаки возможной подгонки:[5]

  • У стратегии много свободных параметров относительно числа сделок и доступной истории.
  • Небольшая правка параметра — RSI 14 → RSI 15 — резко меняет результаты: хрупкость.
  • Тест одного периода даёт отличный результат, другого — убыток.
  • Высокие PF и Шарп требуют оценки неопределённости, числа проверенных вариантов и зависимости исходов. Ни меньше 100, ни больше 500 сделок сами по себе не определяют наличие преимущества. Проверьте также длину наблюдения, редкие крупные убытки и показатели на данных, не использованных для выбора правила.

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

Иллюстративная модель — генетическая оптимизация и «чудо-параметр». Предположим тест EUR/USD за пять лет с шестью параметрами. Условный результат: профит-фактор 4,3, просадка 6%, 847 сделок; выбраны RSI=16, SL=63,2 пипса, TP=214,8 пипса, фильтр ATR=1,237, дельта EMA=37 и минимум ADX=23,6. В другом окне PF модели 0,8, результат счёта следующей недели −18%. Это не реализованная стратегия и не установленная причина снижения. Подгонка шума — одна гипотеза; проверяют также изменчивость исходов, смену условий, издержки и соответствие исполнения правилу. Чувствительность к периоду требует проверки, но сама не доказывает подгонки. Храните все попытки и выбор до теста. Ограничение параметров сужает поиск, не заменяя новой выборки. Walk-forward осмыслен с заранее записанными окнами и правилами; повторная подгонка процесса к его результатам вновь расходует тестовые данные.

Перебор данных — data snooping

Для 50 независимых тестов истинных нулевых гипотез на уровне 5% вероятность хотя бы одного ложного отклонения — 1 − 0,95^50 = 92,3055%, ожидаемое число — 2,5. Это высокий риск, а не неизбежный исход. Варианты одних данных обычно зависимы, поэтому расчёт независимости не измеряет их вероятность.

Запишите семейство попыток до выбора победителя. При 50 тестах и семейном уровне 5% Бонферрони даёт порог 0,05/50 = 0,001 для каждого корректного p-значения. Он контролирует риск хотя бы одного ложного отклонения без требования независимости. FDR отвечает на другой вопрос, различие показано ниже. Никакая поправка p-значений не устанавливает прибыльности стратегии.

Бонферрони, FDR и предел вывода

Модель пяти корректных тестов одного заранее заданного семейства: упорядоченные p-значения 0,0004; 0,008; 0,019; 0,021; 0,070. Бонферрони при α = 0,05 даёт 0,01 и отвергает первые два. Бенджамини–Хохберг при q = 0,05 сравнивает с i × q / 5: 0,01; 0,02; 0,03; 0,04; 0,05. Последний удовлетворяющий индекс — 4, поэтому отвергаются первые четыре.

FWER контролирует вероятность хотя бы одного ложного отклонения, FDR — ожидаемую долю ложных среди всех отклонений, равную нулю при их отсутствии. Классический BH требует подходящей зависимости, например независимости либо заданной положительной зависимости. Мы не применяем его без проверки к произвольно коррелирующим FX-вариантам. q = 5% не означает 95% шанса работы каждой выбранной стратегии. Статья авторов (1995) и документация методов описывают охват процедур. Корректный тест требует заранее заданных вопроса, данных, эталонного распределения и статистики; здесь p-значения — условные входы.

Разбиение выборки учитывает время метки

В условном плане, фиксированном до анализа, обучение — 2018–2022, валидация — 2023, нетронутый тест — 2024–2025. При горизонте метки до пяти сессий наблюдение конца декабря 2022 с исходом в январе 2023 не относится к обучению до 31 декабря. Удалите пересекающие границу метки либо сдвиньте раздел по фактическому концу. Одного разделения дат входа мало.

Исторические цены до границы могут прогреть индикатор в начале теста, если были известны тогда. Масштабирование, пороги и выбор инструментов не подгоняют по будущему сегменту. Валидация служит отбору, тест — однократной оценке; изменение правила по тесту уже расходует его. Walk-forward требует тех же принципов каждого окна и заранее записанного обновления. Калибровке вероятностей тоже нужен отдельный сегмент: восемь событий из десяти прогнозов 0,8 в малой группе не доказывают ни общей калибровки, ни прибыльности.

Точность, полнота и издержки пропуска

Модель 100 независимо размеченных случаев: эталонный паттерн положителен в 20, отрицателен в 80. Скринер даёт 15 уведомлений: 12 совпадают с эталоном, 3 ложные; пропущены 8 положительных. Точность = 12/15 = 80%, полнота = 12/20 = 60%, специфичность = 77/80 = 96,25%. Финансовый результат из этих трёх мер не следует. Эталон независим от фильтра; мы не метим положительным всякий вручную выбранный поздний выигрыш.

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

Распознавание фигур: матрица 100 случаев
Матрица 100 размеченных случаев: TP12 FP3 FN8 TN77; это не финансовая результативность.

Ошибка выжившего в готовых EA

Обзор лишь продаваемых и опубликованных систем пропускает снятые попытки. Сравнению нужны известная совокупность и реестр неудачных версий. Число «тысяч» снятых EA и примеры результатов инфлюенсеров неизвестны; их не используют как доказательство.

Как читать публичную историю результатов Публично проверенный счёт убедительнее скриншота, но важно понимать охват проверки. Проверьте хотя бы: (1) отмечен ли счёт как реальный (Real) а не Demo; (2) проверены ли история и торговые права, в Myfxbook «Track Record Verified» и «Trading Privileges Verified»; (3) с какой даты показаны результаты: можно задать раскрываемую начальную дату, поэтому смотрите и весь диапазон; (4) видны ли вводы и выводы; (5) охватывает ли период разные условия, включая шоки 2015, 2016, 2022? Пропуск не доказывает мошенничества, но возвращает бремя доказательств продавцу.

Иллюзия контроля

Автоматизации нужен мониторинг процесса, свежести данных и необработанных ошибок. Одна ночная работа не определяет ни проскальзывания, ни числа убытков. Тревоги сообщают и о пропусках или остановке сканирования, не только о сетапе.

GBP/USD, 7 октября 2016 — охват отчёта и автоматизация. Отчёт BIS описывает резкое движение примерно с 00:07 BST: 23:07 UTC 6 октября и 01:07 CEST в Варшаве 7 октября. Он показывает различия платформ, цен, ликвидности и проблемы части сделок, но не содержит исполнений стопов всех розничных брокеров.[13] Для открытого лонга результат зависел бы от номинала, уровня и типа стопа, стороны активации и доступных цен. После активации stop market может исполниться ниже порога, но без записи счёта нельзя вычислить убыток или заявить каскад стопов каждой автоматической системы. Фильтр спреда или пропуска данных может приостановить новые попытки, но не превращает риск открытой позиции в гарантированную цену выхода. Аварийное закрытие тоже требует котировки и исполнения. Событие обосновывает тест таких сценариев, не одинаковый исход всех систем.
Фильтр с явной единицей. Условный ATR 0,0060 EUR/USD = 60 пипсов. Порог спреда 0,15 × ATR — 0,0009 = 9 пипсов. Сравнивайте обе стороны в цене либо в пипсах, не 9 с 0,0060. Это параметр модели, не рекомендация. Фильтр блокирует новые попытки, не гарантируя цены закрытия. Лимит отклонения зависит от режима продукта, а аварийный приказ при отсутствии котировок может не исполниться.
Политика исполнения. Собирайте цену-ориентир в момент инструкции, исполнение, отказы и задержки. Положительное и отрицательное проскальзывание возможно и на D1. Универсальная асимметрия всех брокеров неизвестна; ECN/STP не гарантия качества. Модель может задавать задержки и отказы, но параметрам нужны данные. Last look описан в разделе 3.
Соглашение проп-программы. Договор может ограничивать использование задержанного потока или ошибки симулятора. Мы не выдаём сценарий челленджа и отмены выплаты за подтверждённое событие. Отдельно проверьте разрешение EA и запреты: автоматизация не отменяет прочих условий.

Чёрный ящик

Без документации трудно определить, чем вызвана смена результатов: данными, правилом или исполнением. Система может перестать отвечать ожиданиям; нужны условие остановки и процедура оценки. «До сих пор работала» мало.

Перерисовывающие индикаторы

Отличайте изменение открытой свечи, позднее подтверждение свинга, исправление данных и переписывание прошлого сигнала. Храните снимок значения со временем оценки и сравнивайте с поздней историей. Одно название ZigZag не определяет использование; проблема — точка до подтверждения или скрытые изменения.

Проп-фирмы и автоматизация

Правила проп-фирм договорные, различаются по программам и этапам. Мы не заявляем, что многие фирмы запрещают всю автоматизацию. Например, FTMO описывает разрешение алгоритмов и EA с ограничениями программы. Проверьте текущие правила, природу счёта, включая симулируемые, лимиты и запреты; принятие скринера не означает любого способа исполнения.

Четыре источника ошибочного теста
Четыре проблемы теста: преждевременное использование данных, неизвестный порядок SL/TP внутри OHLC, использованная тестовая выборка и двойной учёт спреда. Для каждой нужна отдельная проверка. Схема не диагностирует переобучение только по виду кривой капитала.

12. Что не стоит автоматизировать в начале

До автоматизации исполнения опишите действия за пределами сигнала. Список выделяет задачи отдельного правила и теста; ручное исполнение не объявляется всегда эффективнее.

  • Управление позицией. Задайте размер позиции, изменения стопа и частичные закрытия до автоматизации. Практика выявляет неясные решения, но ручное исполнение не доказывает превосходства правила.
  • Макрокалендарь. Скринер учитывает NFP при корректном расписании и блокирующем правиле. Он не предсказывает спред или содержание ещё не вышедшего объявления. Отсутствие календаря — явное ограничение, не свойство всех автоматических систем.
  • Выбор набора инструментов. Задайте и версионируйте список до теста. Исключение слабых пар после результата — ещё одна попытка отбора. Измеряйте свойства пар на заданных данных, не приписывая постоянные черты.
  • Выходные и перерывы. Фильтр спреда может остановить новые приказы, но не ограничивает убыток разрыва открытой позиции. Сокращение номинала снижает чувствительность к цене; обычный стоп цены не гарантирует. Опционный хедж требует отдельного договора и счёта, не одного обозначения «хедж». Риск перерывов — в статье 4.4.
  • Состояние счёта. Проверьте продукт, режим хеджирования/неттинга, маржу новой инструкции и закрытие при недостаточном обеспечении. Очерёдность ликвидации зависит от поставщика; наибольший убыток не объявляется универсальным первым закрытием. Маржа и защита клиента отдельно описаны в статье 2.6. Возможность принять приказ сейчас не гарантирует последующего удержания позиции.
Сетка и удвоение — разные правила. Шесть равных позиций по 1 единице дают 6 единиц экспозиции. Шесть уровней удвоения 1, 2, 4, 8, 16, 32 дают 63; седьмой уровень 64 повышает сумму до 127. Сетка не растёт экспоненциально лишь потому, что она сетка. Ни одна сумма не доказывает прибыли в колебаниях. Лимит номинала и приказ выхода не гарантируют худшего убытка разрыва; ценовые сценарии и условия продукта описывают отдельно.

Автоматизируйте чёткие повторяемые действия и храните след. Сканирование, уведомления, решения и исполнение — этапы с разными ошибками и границами. Быстрое повторение не улучшает правило, а позволяет последовательно применять и тестировать.

13. Сравнение инструментов

ИнструментЯзык скриптовСкринингУведомленияБэктестАвтоисполнениеИздержки (ориентир)
TradingView — базовый тарифPine ScriptФильтры платформыПо текущему тарифуЭмулятор стратегииСам скрипт стратегии не отправляет приказы брокеру через встроенную интеграциюПроверьте тариф и данные
TradingView — платные тарифыPine ScriptОхват зависит от инструментаПо текущему тарифуЭмулятор стратегииWebhook требует отдельного слоя исполнения; интеграция не превращает скрипт в EA автоматическиТекущие цены
MT4MQL4Свои индикаторыДа: окно, push, почтаStrategy Tester (1 символ)Советники EA0 USD от брокера
MT5MQL5Свои индикаторыДа: окно, push, почтаStrategy Tester (мультивалютный)Советники EA0 USD от брокера
cTraderC# / инструменты платформыПо настройкеПо настройкеТесты cBotcBot — отдельная логика исполненияУсловия платформы и поставщика
Своя средаНапример, PythonПравило автораСвоя инфраструктураМодель автора / библиотекиОтдельный слой APIДанные, сопровождение и инфраструктура

Таблица описывает функции, не рейтинг качества. Лицензия, данные, VPS и транзакционные издержки — отдельные статьи. Лимиты и цены сверяйте с текущей документацией.

Минимальный стартовый набор — начните здесь
  • Основной таймфрейм: D1 — здесь сканируете и анализируете. Контекст — с W1.
  • Список наблюдения: выберите версионную совокупность, которую можете проверять и наблюдать. Число попавших в активный список — выход правила, а не принудительная цель.
  • Два фильтра. Например, EMA 200 и RSI 14 как явно заданные преобразования цены. Пороги — условности для оценки, не доказанное удаление большей части шума.
  • Для начала 1 тип уведомления: ценовые у зон S/R недельного графика. Индикаторные добавите позже.
  • Начните с проверяемого процесса. Скринер и одно правило оповещения — посильное первое упражнение. Добавляйте исполнение после определения состояния счёта и обработки ошибок.
  • Практика процесса и форвард-тест. Два-три месяца демо могут быть условным сроком практики работы, регистрации и соблюдения правила, но не достаточным минимумом валидации. Число и период наблюдений зависят от частоты событий, зависимости и изменчивости исходов. Демо не воспроизводит реальное исполнение автоматически, а истечение срока не гарантирует ни представительности, ни прибыли.

Размер позиции — за рамками статьи

Выбор сетапа без верного размера позиции — половина дела, но формулы, издержки в бюджете риска и числовые примеры относятся к разделу 9. Интерактивный калькулятор размера позиции и симулятор Монте-Карло находятся в разделе инструментов.

Учебный охват. Скрининг не оценивает пригодности продукта и не гарантирует результата. Защита от отрицательного баланса ряда розничных режимов CFD действует на счёт, не гарантируя цены стопа. Статус клиента, договорное юрлицо и инструмент проверяются отдельно. Процент убыточных счетов брокера относится к его счетам и периоду, не всем пользователям форекса или EA; охват рассмотрен в разделе о розничном рынке.

Фиксированное правило на реальных данных: закрытие за диапазоном или только тень?

Свеча может пересечь прежний максимум и закончиться выше него либо вернуться внутрь. Описывает ли разница разные дальнейшие изменения в этих записях? Мы зафиксировали сравнение до расчёта сводки. Это ретроспективное описание истории одного поставщика. Некоторые периоды уже были в учебных примерах; ни дата плана, ни временное разделение не создают невиданной контрольной выборки.

Вход — по 6000 неизменённых записей Bid H1 EUR/USD, GBP/USD и USD/JPY ICMarketsSC-Demo / MT5. В датах кандидатов регистр содержит 17995 записей и 3140 односторонних кандидатов. Период пропуска выбирает 1086; у 1039 есть непрерывный исход из шести записей, 47 пересекают будущий разрыв времени. Эти 47 сохраняются в подсчёте, а не исчезают.

Пробой Close и тенью: наблюдённые изменения
Объединённые описательные средние и медианы. Числа доступных/выбранных сохраняют недостающие исходы; разделение дат — не невиданная контрольная выборка.
Объединённая полная выборка. Изменения делятся на предшествующий средний TR20; это не доходности сделок.
Направление · категорияДоступно / выбраноСреднееМедианаДоля > 0
ВВЕРХ · закрытие271 / 280-0,0689-0,14330,4613
ВВЕРХ · тень258 / 2730,20770,05770,5078
ВНИЗ · закрытие226 / 2360,0934-0,12560,4823
ВНИЗ · тень284 / 297-0,0152-0,25690,4472

Положительное изменение со знаком следует направлению нарушения, отрицательное идёт против него. Среднее, медиана и доля выше нуля отвечают на разные вопросы. Для «ВНИЗ · закрытие» среднее положительно, медиана отрицательна, а положительных наблюдений меньше половины. Это не доли прибыльных сделок после издержек.

Точное правило и ограничения сравнения

Для кандидата t зафиксируйте самый высокий High и самый низкий Low предыдущих 20 полных H1. Требуйте часовую непрерывность от t−21 до t; самая старая запись даёт прежний Close для True Range. Сначала исключите нарушение обеих границ. Иначе классифицируйте Close строго снаружи как CLOSE, пересечение High/Low с Close внутри, включая равенство, — как WICK. Одно равенство экстремума не является нарушением.

Возьмите первого кандидата символа, затем пропустите следующие шесть индексов независимо от доступности будущего исхода. Лишь после отбора проверьте следующие шесть записей на точный часовой шаг. Измерьте направление × (C на t+6 − C на t) в пипсах и единицах среднего арифметического TR предыдущих 20 записей. Кандидат не входит ни в опорный диапазон, ни в знаменатель.

График объединяет события, поэтому символы с большим числом доступных событий весят больше. Окна исходов одного символа не пересекаются, но 808 соседних пар событий имеют общую прежнюю историю, а доступные окна разных пар пересекаются по времени 950 раз. Июльские группы используют дату кандидата; один исход пересекает границу. Зависимости и структурированные по времени разрывы не допускают независимой или причинной интерпретации. Здесь нет исполнений, допущений спреда, доходности счёта или заявлений о статистическом преимуществе.

Все 48 строк сводки (CSV) · Полный регистр классификаций (CSV) · Выбранные события и недостающие исходы (CSV) · Метод и инструкции воспроизведения · Источники, фиксированный план, код и результаты (ZIP).

Итоговый практикум: отделите решение от следующих шести свечей

Это первый выбранный EUR/USD UP_CLOSE с 1 сентября 2026 года с доступным исходом: H1 с открытием 3 сентября 19:00. Более ранние UP_CLOSE 2 сентября 16:00 и 3 сентября 15:00 исключены существующим периодом пропуска. Случай выбран по хронологии и доступности, а не знаку или размеру будущего движения. Обозначим подходящую H1 буквой P.

При решении диапазон предыдущих 20 записей — 1,15826–1,16302, их средний True Range — 9,325 пипса. P закрывается на 1,16368 выше фиксированного верха. Последняя подходящая H4 открывается в 16:00 и заканчивается в 20:00 вместе с закрытием H1 P. Это более широкий вид той же истории Bid, а не независимый подтверждающий голос. Обе окончательные записи ещё должны поступить после конца интервалов.

До раскрытия следующей свечи: запишите соответствие, самое раннее время оценки и неизвестное. В упражнении прекратите наблюдение на первом следующем H1 Close не выше 1,16302. Сохраняйте границу. Это аналитическое условие прекращения, без ордера, исполнения стопа или размера позиции.

  1. Кадр 0: до H1 с открытием 2026-09-03 19:00

    P соответствует UP_CLOSE лишь после поступления окончательной записи, не раньше 20:00. Продолжение скрыто. Одно соответствие не даёт исполнимой Ask или издержек.

    Итоговый практикум: кадр 0/6
    EUR/USD Bid H1/H4. Исходное время MT5; виден лишь этот начальный фрагмент. Контекст H4 фиксирован.

    Только записи H1/H4 этого кадра (CSV).

  2. Раскрыть запись 1 из 6

    Кадр 1: до H1 с открытием 2026-09-03 20:00

    Раскрытый Close — 1,16328, выше 1,16302. Условие прекращения наблюдения не наступило; это не прогноз следующего Close.

    Итоговый практикум: кадр 1/6
    EUR/USD Bid H1/H4. Исходное время MT5; виден лишь этот начальный фрагмент. Контекст H4 фиксирован.

    Только записи H1/H4 этого кадра (CSV).

  3. Раскрыть запись 2 из 6

    Кадр 2: до H1 с открытием 2026-09-03 21:00

    Раскрытый Close — 1,16346, выше 1,16302. Условие прекращения наблюдения не наступило; это не прогноз следующего Close.

    Итоговый практикум: кадр 2/6
    EUR/USD Bid H1/H4. Исходное время MT5; виден лишь этот начальный фрагмент. Контекст H4 фиксирован.

    Только записи H1/H4 этого кадра (CSV).

  4. Раскрыть запись 3 из 6

    Кадр 3: до H1 с открытием 2026-09-03 22:00

    Close 1,16286 не выше 1,16302. Наблюдение заканчивается после закрытия этой свечи 22:00, не раньше 23:00. Прежняя классификация UP_CLOSE остаётся верной.

    Итоговый практикум: кадр 3/6
    EUR/USD Bid H1/H4. Исходное время MT5; виден лишь этот начальный фрагмент. Контекст H4 фиксирован.

    Только записи H1/H4 этого кадра (CSV).

  5. Раскрыть запись 4 из 6

    Кадр 4: до H1 с открытием 2026-09-03 23:00

    Теперь Close — 1,16257. Наблюдение уже завершилось на свече 22:00; новая запись не меняет момента, когда условие стало известно.

    Итоговый практикум: кадр 4/6
    EUR/USD Bid H1/H4. Исходное время MT5; виден лишь этот начальный фрагмент. Контекст H4 фиксирован.

    Только записи H1/H4 этого кадра (CSV).

  6. Раскрыть запись 5 из 6

    Кадр 5: до H1 с открытием 2026-09-04 00:00

    Теперь Close — 1,16229. Наблюдение уже завершилось на свече 22:00; новая запись не меняет момента, когда условие стало известно.

    Итоговый практикум: кадр 5/6
    EUR/USD Bid H1/H4. Исходное время MT5; виден лишь этот начальный фрагмент. Контекст H4 фиксирован.

    Только записи H1/H4 этого кадра (CSV).

  7. Раскрыть запись 6 из 6

    Кадр 6: до H1 с открытием 2026-09-04 01:00

    Шестой Close — 1,16232: −13,6 пипса от P, или −544/373 (около −1,4584) единицы прежнего среднего TR20. Это наблюдённое изменение Bid, а не восстановленный убыток сделки.

    Итоговый практикум: кадр 6/6
    EUR/USD Bid H1/H4. Исходное время MT5; виден лишь этот начальный фрагмент. Контекст H4 фиксирован.

    Только записи H1/H4 этого кадра (CSV).

Каждый кадр масштабируется по собственным видимым ценам; будущий экстремум не задаёт начальные оси. H4 остаётся фиксированной на решении. Сохраняются исходные метки открытия MT5, смещение брокера не проверено, фактические времена получения не измерялись. Для моделирования исполнимой реакции всё ещё нужна более поздняя котировка.

Данные практикума и временные пояснения · Все 28 записей H1 с раскрытым продолжением (CSV). Полный регистр и ZIP выше сохраняют исключения и ход расчётов.

Вопросы и ответы — автоматизация и скрининг в ТА

Нужно ли программировать для скрининга?

Нет. Встроенные скринеры TradingView и панели MT4/MT5 работают по принципу «выбери фильтры, пороги, получи список». Pine Script и MQL добавляют свои условия и составные уведомления, но базовый скрининг не требует кода.

Стоит ли покупать готового советника EA?

Оценке нужны документированные правила, полная история попыток и изменений, модель издержек и новые наблюдения. Даже проверенная история счёта не гарантирует представительности или будущего результата. Красивый тест либо отзыв не заменяют проверки.

Сколько уведомлений ставить одновременно?

Универсального числа нет. Запишите возможности обзора, истечение условий и уберите дубликаты. Можно сканировать весь набор без сообщения после каждой свечи в том же состоянии.

Насколько надёжен бэктест форекса?

Зависит от данных, правил и модели исполнения. OHLC не устанавливает порядка SL/TP одной свечи. Режим реальных тиков может заполнить пропуски сгенерированными данными. Бэктест не прогнозирует результат; форвард-тест проверяет новые наблюдения с ограничениями длины и разнообразия.

TradingView или MT4/MT5 для скрининга?

Сравните источник и границы свечей, фильтры, уведомления и охват тестера. TradingView уведомляет с сервера; локальный MT требует работающей платформы либо VPS. Один стратегический скрипт TradingView не является встроенной системой торговли у брокера.

Python лучше Pine Script для бэктестов?

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

Нужно ли запускать скринер ежедневно?

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

Источники

Первичные источники

  1. Роберт Пардо, Оценка и оптимизация торговых стратегий, 2-е изд., Wiley, 2008 — методика бэктестов, walk-forward, распознавание подгонки; ключевая работа о проверке автоматических стратегий.
  2. Эрнест П. Чан, Количественный трейдинг: как создать собственный алгоритмический торговый бизнес, 2-е изд., Wiley, 2021 — практическое руководство построения количественных стратегий от скрининга до алгоритмического исполнения.
  3. Перри Дж. Кауфман, Торговые системы и методы, 6-е изд., Wiley, 2020 — энциклопедический обзор торговых систем: фильтры тренда, скрининг, тесты, оптимизация.
  4. Андреас Ф. Кленоу, Следуя за трендом, Wiley, 2013 — систематическая трендовая торговля: отбор инструментов, портфельный бэктест, управление позицией; практика автоматизации.

Дополнительная литература

  1. Дэвид Аронсон, Технический анализ на основе доказательств, Wiley, 2007 — статистическая проверка ТА: искажение перебора данных, значимость, множественные сравнения (data snooping); важная литература для тестирующих стратегии.
  2. Маркос Лопес де Прадо, Достижения финансового машинного обучения, Wiley, 2018 — дополнительная литература; непрочитанные главы не приводятся в подтверждение правил.
  3. Александр Элдер, The New Trading for a Living («Новый трейдинг ради жизни»), Wiley, 2014 — дополнительная литература; непрочитанные главы не приводятся в подтверждение правил.
  4. Кэти Лин, Внутридневная и свинг-торговля на валютном рынке, 3-е изд., Wiley, 2016 — дополнительная литература; непрочитанные главы не приводятся в подтверждение правил.
  5. Лукас Мэнкхофф, Марк П. Тейлор, «Упорная страсть профессионалов валютного рынка: технический анализ», Journal of Economic Literature, том 45, № 4, 2007 — обзор применения ТА в форексе; контекст обсуждения автоматизации у профессиональных валютных трейдеров.
  6. Эндрю У. Ло, Адаптивные рынки: финансовая эволюция со скоростью мысли, Princeton University Press, 2017 — гипотеза адаптивных рынков: почему прежние стратегии перестают работать; выводы для автоматизации и бэктестов.

Источники учреждений и документация

  1. Швейцарский национальный банк (2015), «Швейцарский национальный банк отменяет минимальный курс и снижает ставку до −0,75%», пресс-релиз, 15 января 2015.
  2. FCA (2015), «Информация для клиентов Alpari (UK) Limited» — переход Alpari (UK) под специальное управление.
  3. Комитет BIS по рынкам (2017), «Внезапное событие в стерлинге 7 октября 2016», январь 2017 — анализ события: низкая ликвидность, приказы, алгоритмические реакции и расхождения платформ.
  4. TradingView, Документация Pine Script — официальная документация языка: скрипт на текущей и закрытой свече (barstate), уведомления, strategy().
  5. MetaQuotes, Справочник MQL5 — официальная документация MQL5: индикаторы, советники EA, Strategy Tester.
  6. ESMA (2018), «ESMA согласилась запретить бинарные опционы и ограничить CFD для защиты розничных инвесторов», 27 марта 2018 — пакет вмешательства в продукты: лимиты плеча, защита отрицательного баланса, предупреждения; надзорные исследования указывали убытки 74–89% розничных счетов CFD.

Ваш прогресс обучения

Закончили урок? Отметьте это самостоятельно. Открытие или прокрутка страницы не засчитывают прохождение.

Для сохранения прогресса нужны JavaScript и хранилище браузера.

Сохраняется только в этом браузере. Без аккаунта и синхронизации устройств. Очистка данных сайта может удалить прогресс.

Jarosław Wasiński

Главный редактор, ForexMechanics.com • Макро- и валютный аналитик

Независимый аналитик и профессионал с более чем 20-летним опытом работы на финансовых рынках. Активно работает на Форексе с 2004 года, специализируется на фундаментальном анализе, структуре внебиржевого (OTC) рынка и дисциплинированном управлении риском капитала.

  • Основатель и главный редактор MyBank.pl, который с 2004 года предоставляет надёжное финансовое образование.
  • Автор сотен глубоких рыночных комментариев, структурных аналитических материалов и обучающих пособий для трейдеров и инвесторов.
  • Сторонник прозрачности рынка, продвигает обучение, основанное на конкретных данных и институциональных отчётах (BIS, ESMA, CFTC).

Все материалы носят исключительно образовательный и информационный характер – они не являются инвестиционной рекомендацией или каким-либо советом. Помните: торговля с кредитным плечом (Форекс/CFD) сопряжена с высоким риском быстрой потери капитала.