Содержание статьи
- Доказательства и область применения
- Иллюстрация
- Процесс
- Что именно измеряет каждая функция
- Формулы и сроки предоставления информации
- Разделение волатильности и объема
- Примеры расчётов и случай, способный ввести в заблуждение
- Как детектор обрабатывает полученные данные
- Тестирование фильтров без изменения стратегии.
- Частые ошибки
- Практический список проверки
- Частые вопросы
- Источники исследования
Доказательства и область применения
Основные определения были проверены на соответствие документации платформы и поставщика графиков. Приведенные ниже комбинированные фильтр, нормализация наклона и пороговые значения процентилей являются оригинальными исследовательскими предложениями. Для данной комбинации индикаторов не предоставляется никаких новых результатов тестирования или заявлений о прибыли.
Практическая последовательность действий
- Выровняйте данныеСинхронизировать OHLC, значения контрольных показателей и метки времени доступности.
- Вычислите характеристикиИспользуйте фиксированные формулы ATR, slope, ADX и RS.
- Проверьте разминкуВместо того чтобы придумывать нули, возвращайте значение NA, если история данных недостаточна.
- Отфильтруйте контекстИспользуйте сохранённый снимок, предшествующий сигналу исходного детектора.
- Измерьте дополнительную пользуПроверяйте отдельные фильтры и их взаимодействия с объёмом вне обучающей выборки.
Что именно измеряет каждая функция
ATR измеряет ценовой диапазон, включая гэпы, и не имеет указания направления. [1] ADX измеряет силу тренда, при этом +DI и −DI добавляют информацию о направлении. [2] Относительная сила здесь означает соотношение цены актива к цене эталонного показателя. [3] RSI — это другой осциллятор, полученный на основе изменений цены самого актива, а не на основе сравнения с эталонным показателем.
Эти характеристики отвечают на отдельные вопросы: является ли предлагаемый стоп-лосс большим по сравнению с обычным движением, является ли долгосрочное направление восходящим или нисходящим, достаточно ли устойчиво движение, чтобы регистрироваться как тренд, и превосходит ли актив свой бенчмарк? Несколько благоприятных показателей не являются автоматически независимым доказательством, поскольку эти показатели используют одни и те же ценовые входные данные.
Целью реализации является создание неизменяемого контекстного снимка, к которому может обращаться существующий детектор. При тестировании фильтра необходимо сохранять исходный сигнал, размер позиции и правила выхода в неизменном виде. В противном случае более сильный результат не может быть конкретно обусловлен добавленной информацией.
Формулы и сроки предоставления информации
TR[t]=max(H[t]−L[t],|H[t]−C[t−1]|,|L[t]−C[t−1]|). Задайте начальное значение ATR14, используя среднее значение первых четырнадцати допустимых наблюдений TR, затем обновите ATR[t]=(13ATR[t−1]+TR[t])/14. Предлагаемое нормализованное значение ATR будет nATR=100ATR/C, когда C>0. Сравните текущее значение nATR с предыдущими допустимыми наблюдениями 252 для вычисления pATR; исключите текущее наблюдение из этого исторического набора. Верните NA, если требуемая история отсутствует.
Предлагаемый наклон скользящей средней равен s=(SMA50[t]−SMA50[t−10])/(10ATR14[t]), измеренный в ATR единицах на бар. Верните NA, если знаменатель равен нулю (ATR). Положительный наклон не гарантирует, что цена находится выше среднего значения, поэтому сохраняйте эти значения как отдельные характеристики. Процентное изменение среднего значения — это другой способ нормализации.
Для направленного движения используйте UpMove=H[t]−H[t−1] и DownMove=L[t−1]−L[t]. Установите +DM=UpMove только тогда, когда установлены UpMove>DownMove и UpMove>0; в противном случае установите его равным нулю. Определите −DM симметрично. При совпадении оба значения устанавливаются равными нулю. Примените Wilder RMA14 к DM и TR; +DI=100RMA(+DM)/ATR, и аналогично для −DI. DX=100|+DI−−DI|/(+DI+−DI); ADX=RMA14(DX). Объявите начальное значение и политику прогрева. Если оба значения DI равны нулю после корректного прогрева, используйте DX=0 в этой реализации.
RS[t]=P[t]/B[t], где цена бенчмарка B положительна. Относительный результат за n наблюдений — rel_n=RS[t]/RS[t−n]−1. Не ранжируйте инструменты по абсолютному значению RS: номинальные цены акций различаются. Сопоставляйте P и B по времени доступности значений, а не только по совпадению даты. Закрытие бенчмарка, наступающее позже, не может фильтровать ордер на рынке, где решение уже принято.
Предлагаемый фильтр контекста для длинной позиции использует снимок t−1 для сигнала на закрытии бара t: C>SMA50, slope>0.02, ADX≥20, rel20>0 и pATR между 0.20 и 0.80 включительно. Отставание на один бар — явно выбранное правило. Признаки завершённого бара t также могут использоваться без подглядывания для ордера, отправленного после закрытия, но это уже другая конфигурация.
Если ATR равен нулю или недоступен, в предлагаемой реализации для DI, DX и ADX возвращается NA; деление на ноль не производится. Соглашение DX=0 применяется только после корректного прогрева с положительным значением ATR и обеими направленными компонентами, равными нулю.
after close t, save immutable feature snapshot:
nATR=100*ATR14[t]/C[t]
pATR=count(past_252_nATR<=nATR)/252
slope=(SMA50[t]-SMA50[t-10])/(10*ATR14[t])
rel20=(P[t]/B[t])/(P[t-20]/B[t-20])-1
# Proposed LONG filter: use snapshot t-1 for a setup emitted at close t.
context_ok = C[t-1]>SMA50[t-1] and slope[t-1]>0.02
context_ok &= ADX14[t-1]>=20 and rel20[t-1]>0
context_ok &= 0.20<=pATR[t-1]<=0.80
# The filter enables the original detector; it does not submit orders.
Разделение волатильности и объема
ATR и ADX не измеряют объем торгов. При добавлении RVOL к прорыву, сохраняйте волатильность и контекст тренда постоянными, чтобы оценить дополнительный вклад объема. Одно новостное событие может увеличить как ATR, так и объем; совпадение между характеристиками не обязательно означает, что они представляют собой независимые источники информации.
Небольшой эксперимент начинается с ценового детектора: каждый признак контекста добавляют отдельно, затем проверяют взаимодействие с RVOL. Если фильтр pATR одновременно исключает новостные сессии и крупные успешные пробои, показывайте уменьшение просадки вместе с упущенной прибылью и сокращением охвата возможностей.
Четко обозначьте политику обработки пропущенных данных для объединенной модели. Наличие допустимого значения ATR наряду с отсутствующим значением RVOL не означает нулевой активности, а отсутствие эталонного значения не означает нейтральной относительной силы. Отслеживайте строки с недоступными признаками отдельно от строк, отклоненных из-за того, что действительно наблюдаемое значение не соответствовало пороговому значению.
Примеры расчётов и случай, способный ввести в заблуждение
Синтетический пример: цена актива P за двадцать наблюдений выросла с 100 до 110, в то время как бенчмарк B вырос с 200 до 210. RS увеличилась с 0.5 до 0.52381, что дает rel20=4.7619%. Это отличается от вычитания доходности, которое дает пять процентных пунктов. При ATR=2.5 значение nATR приблизительно равно 2.273%.
SMA50 растёт с 103 до 105 за десять баров: slope=2/(10×2.5)=0.08 ATR на бар. При ADX=28, pATR=0.60 и C=110>SMA50=105 предлагаемый фильтр контекста пропускает сигнал. Для сигнала на закрытии бара t эти значения должны принадлежать объявленному снимку t−1, а не более позднему наблюдению, выбранному из-за благоприятного вида.
В обманчивом примере P падает со 100 до 95, а B — с 200 до 180. Относительный результат равен +5.5556%, хотя актив теряет 5% в абсолютном выражении. Если SMA50=100, а наклон отрицателен, предлагаемый фильтр длинных позиций отклоняет сигнал. Высокий ADX при сильном падении также не создаёт сигнал покупки.
Это проверки формул и логики, а не анализ прибыльных и убыточных исторических сделок. График индикатора нормализует RS до начального значения 100; он может расти, в то время как цена актива падает. Нулевой объем означает, что объем не применим к данному графику, а не то, что торговая активность была нулевой.
Как детектор обрабатывает полученные данные
Данный набор функций не имеет независимых точек входа, защитных стоп-лоссов или точек выхода. При подключении к детектору двойного дна, VCP или детектору прорыва сохраняются торговые правила этого детектора; фильтр определяет только, подходит ли его контекст. Введение стоп-лосса 2ATR создает дополнительное стратегическое решение, требующее собственного сравнения.
Согласование данных важнее ещё одного индикатора. Храните часовой пояс, биржевую сессию, updated_at, задержку ленты и правило соединения по доступности на момент решения (as-of). Не переносите последнее значение бенчмарка бесконечно вперёд через несовпадающие праздники. Задайте предел устаревания и решите, ведут ли устаревшие данные к отклонению кандидата или отметке недоступности.
Для оценки относительной силы на долгосрочном горизонте следует последовательно выбирать доходность от изменения цены или общую доходность. Смешивание актива, скорректированного с учетом дивидендов, с эталонным показателем, который их не учитывает, меняет сравнение. При конвертации валюты необходимо использовать курсы, доступные на момент принятия решения. Для неположительных фьючерсных цен ATR/C не является заявленным показателем; альтернативный показатель, масштабированный по тикам или контрактам, требует отдельного определения.
Тестирование фильтров без изменения стратегии.
Сравните один базовый уровень с каждым фильтром, сохраняя при этом затраты и размер постоянными. Сообщите количество сделок, чистую ожидаемую доходность, просадку и покрытие в зависимости от рыночного режима. ADX20, slope0.02 и диапазон от двадцатого до восьмидесятого процентиля являются предлагаемыми параметрами. Выберите их на выборке для разработки и зафиксируйте перед окончательной оценкой.
Проверяйте ATR и ADX библиотеки на вручную рассчитанных последовательностях с гэпами, внутренними барами, равными величинами направленных движений и границами периода инициализации. Разные начальные значения могут заметно менять ранние результаты. Добавление будущих баров не должно менять признаки, уже выданные для предыдущей части ряда.
Для RS протестируйте активы и бенчмарки, рынки которых закрываются в разное время. Учтите несоответствия, связанные с праздниками, устаревшее значение бенчмарка, конвертацию валюты и отсутствие знаменателя. Для pATR протестируйте совпадения и проверьте заявленное правило ранжирования «меньше или равно». Анализ чувствительности должен варьироваться в небольшой заранее заданной сетке, а не продолжать поиск бесконечно, пока не окажется, что одна комбинация приносит прибыль.
Частые ошибки
Положительная относительная сила рассматривается как рост цены.
Актив может превзойти контрольный показатель просто за счет меньшего падения стоимости.
Перекрывающиеся показатели считались независимыми доказательствами.
Наклон скользящей средней, ADX и импульс могут описывать одно и то же базовое движение цены.
Эталонный показатель, закрытие которого произойдет позже.
Цена закрытия с той же календарной датой может быть ещё неизвестна на момент решения: её использование создаст подглядывание в будущее.
Список проверки перед использованием метода
Отмечайте пункты после проверки на своих данных. Прогресс сохраняется в этом браузере и не подтверждает прибыльность стратегии.
Частые вопросы
Можно ли использовать нормализованный ATR, когда фьючерсные цены отрицательные?
Нет, не с используемым здесь определением ATR/C. Нужна отдельно определённая мера в тиках или единицах контракта; модуль знаменателя не сохраняет в точности прежний смысл.
Является ли эта относительная сила показателем IBD RS?
Нет. Это соотношение цены к выбранному эталонному показателю и его изменение с течением времени. Собственный рейтинг или процентиль по всей совокупности компаний — это другой показатель.
Источники исследования
Каждый источник подтверждает указанное рядом определение или доказательство. Псевдокод, искусственные примеры и предлагаемые параметры требуют отдельной проверки.
- Average True Range — TradingViewTradingView. Формула истинного диапазона, сглаживание и интерпретация волатильности. Проверено: .
- Average Directional Index — TradingViewTradingView. ADX и компоненты направленного движения; источник не доказывает торгового преимущества предложенного фильтра. Проверено: .
- Price Relative / Relative Strength — ChartSchoolStockCharts. Соотношение цены актива к цене эталонного показателя; примеры графиков из исходного источника не воспроизводятся. Проверено: .
Связанные методы
Примечание о рисках
Материал предназначен для обучения и планирования исследований, а не является финансовой рекомендацией. Backtest моделирует прошлые данные, не гарантирует будущую доходность и не совершает реальные сделки. Методы библиотеки не обязательно реализованы в приложении. См. методологию и учебный центр.
Проверьте правила, прежде чем рисковать реальным капиталом
Проверьте возможности приложения, данные и каждую смоделированную сделку; сложные детекторы могут потребовать отдельной реализации.
Скачать Backtest в App Store