Содержание статьи
- Доказательства и область применения
- Иллюстрация
- Процесс
- Зона обозначает уже известные наблюдения.
- Ограничьте весь кластер, а не свяжите цепочку.
- Числовое построение зоны и убыточная сделка на возврате
- Считайте независимые подходы, а не последовательные бары
- Для прорывов и реакций необходимы различные стратегические правила.
- Объем свечных торгов не равен объему торгов в данной зоне.
- Проверяйте историю зон и все доступные возможности
- Частые ошибки
- Практический список проверки
- Частые вопросы
- Источники исследования
Доказательства и область применения
CME предоставляет контекст уровней поддержки/сопротивления, scikit-learn определяет концепции связей, а исследования Osler по валютному рынку рассматривают каскады стоп-ордеров. Ни один из них не подтверждает прибыльность предложенного детектора последовательной кластеризации.
Практическая последовательность действий
- Получите подтверждённый пивотИспользуйте подтвержденные экстремумы того же типа.
- Проверьте включение в кластерПроверьте полный диаметр после добавления новой цены.
- Проверьте независимость касанияТребуйте прежнего отхода цены и достаточного временного разделения.
- Опубликовать версиюЗафиксировать границы, медиану и идентификаторы элементов.
- Проследите за реакцией.Примените отдельно заданную стратегию пробоя или возврата цены.
Зона обозначает уже известные наблюдения.
CME включает предыдущие максимумы и минимумы в качестве опорных точек для уровней поддержки и сопротивления [1]. В программном обеспечении более точным обозначением является набор подтвержденных исторических экстремумов, расположенных близко друг к другу. Это наблюдение не доказывает, что покупатели или продавцы в данный момент ожидают там, или что следующий визит приведет к отскоку.
Предлагаемая кластерная запись содержит cluster_id, тип HIGH или LOW, идентификаторы опорных точек участников, минимум, максимум, медиану, время последнего подтверждения и количество независимых касаний. Каждый участник должен быть подтвержден до использования зоны. Зона равных максимумов описывает ценовую геометрию; чтобы назвать ее «стеной стакана ордеров», необходимы фактические данные из стакана ордеров.
Отделяйте детектор от использующей его стратегии. Одна зона может служить гипотезе отскока против движения к ней, пробоя с продолжением или ретеста после смены роли. Отмена зоны для одной гипотезы не стирает исторические наблюдения, по которым она построена.
Ограничьте весь кластер, а не свяжите цепочку.
Установите значение epsilon=max(2 ticks,0.15×A_ref), при этом значение A_ref будет зафиксировано при создании кластера. Это предлагаемые параметры. Добавляйте новый опорный элемент только в том случае, если разница между полученным максимумом и минимумом остается в пределах 2epsilon. Это ограничение по диаметру напоминает идею максимального расстояния, лежащую в основе полной связи [2], но используемый здесь последовательный алгоритм не является полной реализацией AgglomerativeClustering.
Если подходят несколько кластеров, выбирайте ближайшую медиану; при равенстве — самый старый ID кластера. Иначе создавайте новый кластер. W=200 баров и min_separation=5 — исходные исследовательские настройки. Разделяйте кластеры HIGH и LOW до определения отдельного протокола смены ролей.
Начните кластер с одного независимого касания. Новые элементы добавляйте в геометрический состав, но число касаний увеличивайте лишь при выполнении и временного разделения, и отхода цены. Если не различать число элементов и касаний, боковой участок создаёт мнимые повторные свидетельства.
При истечении кластера зафиксируйте финальную историю, не используйте его ID повторно. Новый кластер по той же цене — новый объект. Храните epsilon и опорный ATR, чтобы поздняя волатильность не могла незаметно расширить прежнюю зону ради неудобных новых пивотов.
on_confirmed_pivot(p):
candidates = active_clusters_of_same_kind(p)
eligible = [c for c in candidates
if max(c.max,p.price)-min(c.min,p.price) <= 2*c.eps]
c = nearest_median_then_oldest_id(eligible)
if c is None:
c = new_cluster_with_single_member(p, touch_count=1,
last_touch_index=p.index)
return
independent = p.index-c.last_touch_index >= min_separation
independent &= price_departed_frozen_zone_between(c.last_touch_index,p.index,c)
add_pivot_once(c,p)
if independent:
c.touch_count += 1
c.last_touch_index = p.index
if c.touch_count >= 2:
publish_new_zone_version(c, available_at=p.confirmed_at)
# Active candidates retain their original zone-version snapshot.
Числовое построение зоны и убыточная сделка на возврате
Синтетический пример: опорный ATR=2 и tick=0.01 дают epsilon=0.30 и максимальный диаметр 0.60. Независимые подтверждённые максимумы 100.00, 100.35 и 100.55 образуют [100.00,100.55] с медианой 100.35. Максимум 100.80 отклоняется: полная ширина стала бы 0.80, хотя до ближайшего элемента лишь 0.25.
Это объясняет, почему расстояния до ближайшего члена недостаточно. Цепочка 100,100.4,100.8,101.2 может быть соединена небольшими смежными промежутками, охватывая при этом широкую область. Если любая последующая реакция в любой точке этой области будет названа успешным повторным тестированием, детектор потеряет полезный критерий фальсификации.
Условный выигрышный путь: цена выходит выше 100.55 до 100.90 и закрывается обратно на 100.20, создавая кандидата в шорт после возврата. Вход 100.10, стоп 101.00 и цель 98.30 означают цель 2R до издержек. При неудаче цена вместо этого закрывается на 101.10 и держится выше зоны. Убыток уже исполненного шорта учитывается по правилу стопа; нельзя затем сдвинуть зону вверх ради спасения метки.
Проверьте новый пивот точно на пределе диаметра и на один тик дальше. Создайте точку, равноудалённую от двух допустимых медиан. Одни данные всегда должны выбирать один кластер независимо от порядка обхода словаря или загрузки графиков.
Считайте независимые подходы, а не последовательные бары
Пять соседних баров около 100.3 обычно означают один подход, не пять независимых тестов. Для сброса требуется закрытие вне зоны на расстоянии не менее одного зафиксированного ATR и минимум пять баров до нового засчитываемого касания. Это определяет возврат извне области.
Отход цены имеет собственную временную метку. Пивот, подтверждённый позднее, мог возникнуть до доступности события отхода; обрабатывайте события в заданном порядке, не приписывая будущий отход ранним касаниям. Храните время возникновения и подтверждения пивота для восстановления допуска касания.
Возраст, независимые возвраты и величина отклонения могут стать характеристиками зоны, но будущие касания не должны повышать исторический показатель. Вопрос о том, укрепляет ли повторное тестирование зону или повышает вероятность ее разрушения, является эмпирическим. Количество касаний не является калиброванной вероятностью, и добавление десяти процентных пунктов за каждое касание потребовало бы доказательств, выходящих за рамки детектора.
Для прорывов и реакций необходимы различные стратегические правила.
Версия на возврат ждёт закрытия обратно внутри фиксированной зоны и входит при следующей возможности исполнения. Версия на пробой требует закрытия выше max+buffer и может задавать отдельное ожидание ретеста. Каждой нужны собственные отмена, стоп, цель и срок; детектор зон их не выбирает.
Официальная аннотация Osler сообщает свидетельства того, что стоп-лоссы способны ускорять движение валют [3]. Это не измеряет число стопов около кластера максимумов OHLCV и не гарантирует разворот после снятия ликвидности. Без более сильных данных описывайте наблюдаемое: выход за уровень, пробой закрытием или возврат.
Сохраняйте точную версию зоны, использованную для ордера. Новый участник может опубликовать более широкую или смещенную версию для будущих кандидатов, в то время как существующая сделка сохраняет свою первоначальную логику. Если стратегия допускает обновление стоп-лосса или контекста, записывайте их как явные действия со временем активации, а не перерисовывайте исходную конфигурацию.
Объем свечных торгов не равен объему торгов в данной зоне.
OHLCV указывает общий объем торгов по данному бару, а не долю сделок, совершенных в пределах зоны. Суммирование всего объема торгов по барам, касающимся данной зоны, и обозначение этого объема как «объем по цене» является неточным, особенно для баров с широким диапазоном. Для оценки распределения цен необходимы данные на уровне отдельных сделок или раскрытая приблизительная оценка.
Признаки: RVOL бара пробоя, объём отката относительно сопоставимой базы, средняя активность за независимый подход. Отделяйте объём от геометрии, чтобы исключить его в сравнении без изменения состава кластера. Высокая активность может означать другую среду и одновременно худшую доступную цену исполнения.
Нормализуйте внутридневную активность по сопоставимому времени сессии и отличайте пропуски от действительно малого объёма. При разной длительности подходов сравнивайте интенсивности или равные окна, не только суммы. Проверяйте добавочную информацию объёма после учёта диапазона и волатильности.
Проверяйте историю зон и все доступные возможности
Потоковое воспроизведение и пакетный расчёт должны публиковать одинаковые версии. Тестовые случаи: цепочное присоединение, равные расстояния, истечение W, несколько баров одного подхода и задержки подтверждения пивотов. Каждая прошлая сделка ссылается на сохранённый version_id; сегодняшнего графика для восстановления решения мало.
Сравните стратегию одного пивота с в остальном одинаковыми версиями двух и трёх касаний. Отчёт: число зон, ожидание, вероятность возврата, перекрытие, экспозиция и чистая доходность. Зоны без повторного посещения тоже входят в набор возможностей; отбор лишь прибыльных искажает результат.
Перекрытие требует правила формирования портфеля. Несколько близлежащих зон могут инициировать ордера на одно и то же рыночное событие, создавая концентрированное воздействие, которое выглядит диверсифицированным по идентификатору сигнала. Объедините кандидатов в рамках зарегистрированной политики или ограничьте одновременное воздействие, а затем сохраните исходные наблюдения детектора для анализа.
Частые ошибки
Цепь разрастается в неограниченную зону.
Расстояние между ближайшими парами не ограничивает общий охват кластера.
Боковое движение завышает число касаний
Без обязательного отхода цены один долгий подход выглядит как повторные независимые свидетельства.
Выводить скрытые заявки из геометрии
Кластер экстремумов — не прямое измерение стопов или ликвидности ожидающих заявок.
Список проверки перед использованием метода
Отмечайте пункты после проверки на своих данных. Прогресс сохраняется в этом браузере и не подтверждает прибыльность стратегии.
Частые вопросы
Центр зоны должен быть средним или медианным значением?
Медиана менее чувствительна к выбросам, но триггеры обычно должны указывать на четкие границы. Сравните определения центров, если центр действительно влияет на стратегию.
Возможно ли слияние старого уровня поддержки и нового уровня сопротивления?
Протокол смены ролей можно определить после подтвержденного прорыва и повторного тестирования. Сохраняйте историю состояний, а не автоматически объединяйте все ближайшие цены.
Источники исследования
Каждый источник подтверждает указанное рядом определение или доказательство. Псевдокод, искусственные примеры и предлагаемые параметры требуют отдельной проверки.
- Support and ResistanceCME Group. Ознакомьтесь с образовательным обсуждением ранее выявленных крайних значений и ценовых диапазонов. Проверено: .
- AgglomerativeClusteringscikit-learn. Ознакомьтесь с определениями полного и одиночного сцепления. Проверено: .
- Stop-Loss Orders and Price Cascades in Currency MarketsCarol L. Osler, Federal Reserve Bank of New York. Ознакомьтесь только с официальным резюме; это не тест данного детектора зон. Проверено: .
Связанные методы
Примечание о рисках
Материал предназначен для обучения и планирования исследований, а не является финансовой рекомендацией. Backtest моделирует прошлые данные, не гарантирует будущую доходность и не совершает реальные сделки. Методы библиотеки не обязательно реализованы в приложении. См. методологию и учебный центр.
Проверьте правила, прежде чем рисковать реальным капиталом
Проверьте возможности приложения, данные и каждую смоделированную сделку; сложные детекторы могут потребовать отдельной реализации.
Скачать Backtest в App Store