Количественная стратегия с пересечением скользящих средних Double Hull Moving Average Momentum

HMA WMA 移动平均线 交叉信号 趋势跟踪 动量策略 买卖信号
Дата создания: 2025-08-04 10:57:42 Последнее изменение: 2025-08-04 10:57:42
Копировать: 0 Количество просмотров: 160
2
Подписаться
319
Подписчики

Количественная стратегия с пересечением скользящих средних Double Hull Moving Average Momentum Количественная стратегия с пересечением скользящих средних Double Hull Moving Average Momentum

Обзор

Двойная Hull Moving Average (HMA) - это система отслеживания тенденций, основанная на Hull Moving Average (HMA). Эта стратегия использует отношения между стандартной HMA и гладкой версией HMA (HMA3) для выявления изменений в рыночных тенденциях и создания высокой вероятности продолжения и обратного подхода в условиях бычьего и медвежьего рынка.

Стратегический принцип

Ключевым принципом этой стратегии является сравнение относительной позиции между движущимися средними Хелл и их перекрестным положением в двух различных методах расчета. Конкретные реализационные способы следующие:

  1. Стандартный HMA ((variable a): использует оригинальный алгоритм, разработанный Уильямом Халлом, который обеспечивает более чувствительную подвижную среднюю через трехэтапный процесс вычислений:

    • WMA, рассчитанная на длину
    • WMA, рассчитанная на длину/2
    • Увеличьте кратковременный WMA в два раза, вычтите длинный WMA и получите исходный HMA
    • Сглаживание WMA с периодичностью √length для исходного HMA
  2. Сглаживание HMA3 ((variable b): применяется более сложный алгоритм сглаживания, реализуемый с помощью нескольких комбинаций WMA:

    • Использование length/2 в качестве базового цикла p
    • Сложите WMA ((p/3, p/2, и p) трех различных периодов в весовое среднее
    • Сглаживание WMA с периодичностью p
  3. Логика генерирования сигнала:

    • Когда b пересекает a ((b > a и b[1] < a[1]) при создании сигнала покупки
    • Когда a пересекает b снизу, а a > b и a[1] < b[1]) при создании сигнала продажи
  4. Логика исполнения стратегии:

    • При появлении сигнала “покупать” сначала обнажьте пустую позицию, а затем открывайте позицию “покупать”
    • При появлении сигнала продажи, сначала обнулите позицию с большим количеством позиций, а затем откройте позицию с пустым количеством позиций

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

Стратегические преимущества

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

  2. Раннее распознавание тенденций: благодаря особенностям алгоритма Hull Moving Average, эта стратегия может распознавать изменения в тренде раньше, чем традиционные движущиеся средние, что обеспечивает лучший момент входа.

  3. Ясная визуальная обратная связь: стратегия предоставляет интуитивно понятный цветовой код (бычий - зеленый, медвежий - красный) и маркировку сигналов покупки и продажи, позволяя трейдерам быстро оценивать состояние рынка.

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

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

  6. Высокая вычислительная эффективность: по сравнению с сложными многопоказательными системами, эта стратегия использует относительно простые математические вычисления, снижая риск переизмеримости, сохраняя при этом эффективность выполнения.

Стратегический риск

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

  2. Проблема отставания: хотя HMA отстает меньше, чем традиционные скользящие средние, в любой системе, основанной на скользящих средних, есть определенная отсталость, которая может привести к тому, что в сильно волатильных рынках будут пропущены лучшие точки входа или выхода.

  3. Чувствительность к параметрам: эффективность стратегии сильно зависит от выбранных параметров длины HMA. Разные рынки и временные рамки могут требовать разных оптимальных параметров. Рекомендуется проведение всестороннего отбора для определения оптимальных параметров в конкретной рыночной среде.

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

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

Направление оптимизации стратегии

  1. Добавление фильтра тренда: введение дополнительных индикаторов подтверждения тренда, таких как ADX (средний индекс направления), совершение торгов только при подтверждении наличия сильной тенденции, избежание частых торгов в поперечном рынке. Реализация может быть следующей: только когда значение ADX больше определенного порога (например, 25), рассматривается перекрестный сигнал HMA.

  2. Интегрированный механизм адаптации к волатильности: изменение параметров HMA в зависимости от динамики рыночной волатильности, использование более длительных циклов в условиях высокой волатильности и более коротких циклов в условиях низкой волатильности. Это может быть достигнуто путем расчета ATR (среднее значение истинной волатильности) и его отображения на параметры длины HMA.

  3. Внедрение интеллектуальных стоп-механизмов: добавление ATR-основанного стопа или использование мобильного стопа, такого как отслеживание HMA с обратной мобильной установкой стоп-стопа, для защиты уже полученных прибылей и ограничения потенциальных потерь.

  4. Введение подтверждения объема сделок: включение индикатора объема сделок в логику генерации сигнала, требует покупки сигнала с увеличением объема сделок, повышает надежность сигнала. Можно проверить, не превышает ли объем сделок его n-дневную среднюю стоимость.

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

  6. Добавить временные фильтры: учитывать временные особенности рынка и избегать известных неэффективных торговых периодов, таких как азиатский обеденный час или период высокой волатильности до и после публикации несельскохозяйственных данных в США.

  7. Добавление логики обратного входа: после подтверждения направления тренда, ожидание небольшого обратного входа, а не прямой вход в перекрестке, может обеспечить лучшую входную цену. Это может быть достигнуто путем обнаружения расстояния между ценой и HMA.

Подвести итог

Двойная Hull Moving Average Cross Moving Quantitative Strategy - это хорошо разработанная система отслеживания тенденций, которая использует отношения между двумя методами расчета HMA-индикаторов, чтобы обеспечить четкий многополосный сигнал. Сравнивая относительное положение и пересечение стандартной HMA с гладкой версией HMA3, стратегия может эффективно уменьшить рыночный шум, сохраняя при этом чувствительность к изменениям в ценовой динамике. Преимущество стратегии заключается в ее четкой логике генерирования сигналов, интуитивной визуальной обратной связи и полноценном механизме торговли.

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

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

Исходный код стратегии
/*backtest
start: 2024-08-04 00:00:00
end: 2025-08-02 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("HMA Strat", shorttitle="HMAstrat", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1)

// === INPUTS ===
length = input.int(24, minval=1, title="HMA Length")
src = input.source(hl2, "Source")
showSignals = input.bool(true, "Show Buy/Sell Signals")

// === FUNCTIONS ===
hma(_src, _length) =>
    wma1 = ta.wma(_src, _length)
    wma2 = ta.wma(_src, _length / 2)
    rawHMA = 2 * wma2 - wma1
    ta.wma(rawHMA, math.round(math.sqrt(_length)))

hma3(_src, _length) =>
    p = _length / 2
    ta.wma(ta.wma(close, p / 3) * 3 - ta.wma(close, p / 2) - ta.wma(close, p), p)

// === HMA CALCULATIONS ===
a = hma(src, length)
b = hma3(src, length)

// === COLOR LOGIC ===
isBull = b > a
colorLine = isBull ? color.lime : color.red
fillColor = color.new(colorLine, 80)

// === PLOTTING ===
p1 = plot(a, color=colorLine, linewidth=1)
p2 = plot(b, color=colorLine, linewidth=1)
fill(p1, p2, color=fillColor)

// === SIGNALS ===
crossUp = b > a and b[1] < a[1]
crossDown = a > b and a[1] < b[1]

plotshape(showSignals and crossUp, title="Buy Signal", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.green, text="Buy")
plotshape(showSignals and crossDown, title="Sell Signal", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.red, text="Sell")

// === STRATEGY LOGIC ===
// Close opposite position before opening a new one
if crossUp
    strategy.close("Short")
    strategy.entry("Long", strategy.long)

if crossDown
    strategy.close("Long")
    strategy.entry("Short", strategy.short)