Содержание статьи
- Доказательства и область применения
- Иллюстрация
- Процесс
- Использование нескольких масштабов и нескольких временных рамок — это разные подходы к проектированию.
- Соединяйте по времени доступности, а не времени экстремума
- Пример времени и допустимый, но убыточный сетап
- Зафиксируйте роль и опорные точки каждой шкалы.
- Не следует пересчитывать один и тот же объем несколько раз.
- Измерьте дополнительную ценность контекста более высокого временного интервала.
- Частые ошибки
- Практический список проверки
- Частые вопросы
- Источники исследования
Доказательства и область применения
Технические справочные материалы объясняют временные рамки, данные за более высокие временные интервалы и временные объединения. Они не доказывают, что добавление большего количества временных рамок автоматически улучшает процент выигрышных сделок или прибыльность.
Практическая последовательность действий
- Рассчитайте отдельно.Каждый временной интервал имеет свои собственные бары, опорные точки и календарь.
- Запишите время доступностиУчтите подтверждение пивота и задержку доставки данных.
- Соедините с уже известными записямиИспользуйте наиболее актуальный и уже известный контекст.
- Заморозить кандидатаБолее крупная структура определяет зону; более мелкая структура определяет время.
- Измерьте дополнительную пользуСравните с базовым вариантом только младшего таймфрейма.
Использование нескольких масштабов и нескольких временных рамок — это разные подходы к проектированию.
Несколько масштабов — например, расчёт пивотов с радиусами 2, 5 и 10 на одном ряду H=1. Несколько таймфреймов — отдельные расчёты баров H=1, H=4 или дневных баров. Это не одно и то же: объединение четырёх баров H=1 в H=4 теряет их внутренний порядок. Пивот H=1 с радиусом восемь не обязан совпадать с пивотом H=4 с радиусом два.
TradingView определяет таймфреймы баров [1] и объясняет запросы подтверждённых данных старшего таймфрейма [2]. Здесь H=4 задаёт только контекст, H=1 — только сигнал входа. Нельзя выбирать таймфрейм, который делает известный исход сделки убедительнее.
Определите, какой вклад должен вносить контекст. Он может указывать на направление, зону отсчета или режим волатильности. Сочетание всех трех сразу затрудняет определение того, какой компонент действительно помогает. Начните с одной роли, сравните с базовым уровнем на более коротком временном интервале и добавляйте сложность только в рамках зарегистрированного эксперимента.
Соединяйте по времени доступности, а не времени экстремума
Для каждого пивота нужны occurred_at, confirmed_at и available_at. Последнее поле при необходимости учитывает доставку и обработку данных. В момент решения t на H=1 используйте лишь состояние H=4 с available_at≤t. Если пивоту H=4 требуется r=2, закрытия бара с экстремумом недостаточно: должны закрыться ещё два бара H=4.
pandas merge_asof с направлением backward выбирает последнюю запись справа, чьё время не позже ключа слева [3]. Соединяйте по available_at, группируйте по инструменту и торговой площадке, сортируйте время и задавайте предельный возраст контекста. Направление nearest может выбрать будущую запись и не подходит для поиска без будущих данных.
Одинаковые метки времени требуют явного порядка событий. Обновление H=4 должно завершиться до решения H=1; иначе задержка обработки делает его доступным позже. Совпадение времени на часах не доказывает доступность. Различайте последнее отдельное обновление пивота H=4 и полное структурное состояние с нужными подтверждёнными максимумами и минимумами.
for each closed H1 bar t:
h4 = latest_state(where available_at <= t, same_instrument=True)
if h4 is None or h4.age > max_context_age: continue
up = h4.H2 > h4.H1 + eps and h4.L2 > h4.L1 + eps
near_support = abs(H1.low[t] - h4.last_low) <= zone_width
if up and near_support: create_frozen_candidate(h4.anchor_ids, t)
if candidate and H1.close[t] > candidate.micro_high + buffer:
emit(signal_at=t, context_available_at=h4.available_at)
# Use only a micro_high confirmed before the trigger.
Пример времени и допустимый, но убыточный сетап
Пусть бар H=4 с минимумом закрывается в 12:00, а пивоту нужны два бара справа, закрывающиеся в 16:00 и 20:00. Этот минимум нельзя использовать для ордера H=1 в 13:00. Он входит в контекст лишь после получения данных 20:00. При задержке доставки две секунды решение в 20:00:00 всё ещё использует старое состояние.
Синтетический допустимый сетап: известные максимумы H=4 растут 110→116, минимумы — 100→105. Предлагаемая поддержка — 104.7–105.3. H=1 касается 105.1, позже закрывается по 106.2 выше уже подтверждённого микромаксимума 106. Вход 106.3 со стопом 104.7 даёт плановый риск 1.6 пункта; исследовательская цель 109.5 соответствует 2R до издержек.
Путь неудачи: происходит прорыв H=1, но затем цена падает ниже 104.7. Восходящий тренд H=4 описывал известную историю, а не гарантировал, что 105 удержится. Переход к H=8 после потери для утверждения, что контекст на самом деле был медвежьим, изменил бы правило после наблюдения за результатом.
В тестовых данных сдвигайте один сигнал H=1 на несколько секунд до и после available_at состояния H=4. Допустимый контекст должен меняться только на заданной границе. Отдельный тест с пропущенным баром H=4 должен оставлять новый пивот неподтверждённым, а не подставлять поздний завершённый бар без записи о пропуске.
Зафиксируйте роль и опорные точки каждой шкалы.
Полная конфигурация назначает старшему масштабу зону, младшему — сигнал, и заранее задаёт стоп. Стоп по малому масштабу может сократить расстояние риска, но срабатывать на обычных движениях внутри большой структуры. Стоп по крупному масштабу меняет размер позиции и часто время удержания. Нельзя выбирать вариант задним числом для каждой сделки.
При создании кандидата сохраните идентификаторы опор контекста, цены, ширину зоны, время доступности контекста и уже подтверждённый микромаксимум младшего таймфрейма. Новый контекст может отменить кандидата без исполнения по заранее заданному правилу, но не переписывать причины прежнего сигнала.
Псевдокод представляет собой структурный набросок: активация кандидата и оценка триггера должны иметь разные временные метки. В варианте со строгим отслеживанием более поздних баров требуется t>candidate.created_at и подтверждение микро-максимума не позднее момента создания. Определите, что произойдет, если бар создания уже пересек этот максимум. Либо отклоните устаревший кандидат, либо зарегистрируйте вариант с немедленной активацией.
Задайте TTL в прошедшем торговом времени или барах H=1. Старое состояние H=4 не становится свежим свидетельством лишь потому, что остаётся последней записью. Истечение срока контекста, пропущенные данные и переход к медвежьей структуре должны иметь разные коды причин, чтобы измерять потерю возможностей из-за каждого правила.
Не следует пересчитывать один и тот же объем несколько раз.
Объем H=4 содержит активность составляющих его баров H=1. Поэтому растущий объем H=1 и H=4 не являются двумя независимыми наблюдениями. Показатель может учитывать выполненные условия, но произвольные веса не превращают этот показатель в калиброванную вероятность выигрыша.
Более точный признак сравнивает активность отката H=1 с обычной активностью H=1 в то же время суток, оставляя структуру H=4 зафиксированной. Частичный объём H=4 сравнивайте с историческим частичным объёмом после того же числа минут от начала бара. Нельзя корректно сравнивать полный прошлый объём H=4 с текущим баром H=4, который только открылся.
График ввода данных имеет такое же значение, как и формула. Исправление объемов, задержка появления баров и различные определения сессий могут привести к тому, что агрегирование одного и того же номинального периода H=4 будет отличаться от агрегирования четырех локальных баров H=1. Сохраняйте информацию о происхождении агрегированных данных и сравнивайте итоговые суммы для проверки целостности перед оценкой любого предполагаемого подтверждения.
При абляции следует добавлять по одному параметру объема за раз, используя один и тот же набор кандидатов и правила исполнения. Необходимо проверить, сохраняется ли улучшение при учете времени суток, волатильности и ликвидности, а не предполагать, что несколько благоприятных условий объема обеспечивают независимое подтверждение.
Измерьте дополнительную ценность контекста более высокого временного интервала.
Сравните один детектор H=1 в трёх вариантах: без контекста, только направление H=4, направление H=4 плюс близость к его зоне. Правила риска и исполнения, а также даты теста должны совпадать. Сообщайте число отклонённых сигналов, экспозицию и чистое математическое ожидание: фильтр может повысить долю выигрышей лишь изменением состава сделок.
Выполните проверку данных на границах H=4, с учетом запланированных закрытий, изменений, связанных с переходом на летнее время, и отсутствующих наблюдений. Воспроизведите данные в порядке их поступления и сравните с пакетным временным объединением. Если пакетная обработка обнаружит структуру H=4 раньше, чем будет выполнено воспроизведение, исправьте объединение перед добавлением еще одного индикатора.
Сравните также базовый вариант одного таймфрейма с несколькими масштабами. Простая синхронизация может объяснить значительную часть кажущейся пользы без второго календаря баров. Регистрируйте пары таймфреймов и предельный возраст данных как исследовательские варианты; зафиксируйте их до финального теста.
Сообщайте о сбоях в устаревшем контексте отдельно от убыточных сделок в корректном контексте. В первом случае могут быть выявлены проблемы с синхронизацией или политикой истечения срока действия; во втором – прогностическая ценность гипотезы. Четкая классификация предотвращает ситуацию, когда каждый убыток объясняется выбором другой шкалы.
Частые ошибки
Предоставление H1 окончательного закрытия H4 досрочно
Присваивание окончательного значения завершённой свечи H=4 всем составляющим её свечам H=1 приводит к утечке будущей информации.
Игнорировать задержку подтверждения пивота
Закрытый бар H=4 ещё не подтверждает экстремум, которому нужны дополнительные бары справа.
Изменение контекста после убыточной сделки
Выберите таймфрейм контекста до периода оценки; сохраняйте неудачные конфигурации в результатах.
Список проверки перед использованием метода
Отмечайте пункты после проверки на своих данных. Прогресс сохраняется в этом браузере и не подтверждает прибыльность стратегии.
Частые вопросы
Три бычьих таймфрейма делают сигнал втрое сильнее?
Нет. У них одинаковая базовая траектория цен. Дополнительная информация и любая калибровка вероятностей должны проводиться вне выборки.
Для простоты предпочтительнее использовать один временной промежуток?
В качестве базового показателя можно использовать один временной интервал с несколькими шкалами. Добавьте еще один временной интервал только для определенной цели и проверьте, улучшит ли это соответствующий результат.
Источники исследования
Каждый источник подтверждает указанное рядом определение или доказательство. Псевдокод, искусственные примеры и предлагаемые параметры требуют отдельной проверки.
- Pine Script: TimeframesTradingView. Прочитаны определения таймфреймов и единиц. Проверено: .
- Other timeframes and dataTradingView. Прочитаны примеры запроса подтверждённых данных старшего таймфрейма. Проверено: .
- pandas.merge_asofpandas. Прочитано описание backward-сопоставления, допуска и поведения при точном совпадении. Проверено: .
Связанные методы
Примечание о рисках
Материал предназначен для обучения и планирования исследований, а не является финансовой рекомендацией. Backtest моделирует прошлые данные, не гарантирует будущую доходность и не совершает реальные сделки. Методы библиотеки не обязательно реализованы в приложении. См. методологию и учебный центр.
Проверьте правила, прежде чем рисковать реальным капиталом
Проверьте возможности приложения, данные и каждую смоделированную сделку; сложные детекторы могут потребовать отдельной реализации.
Скачать Backtest в App Store