Эта стратегия является краткосрочной торговой стратегией, основанной на индикаторе Hull Moving Average. Стратегия использует золотой крест и мертвый крест линий Hull Moving Average для генерации торговых сигналов, относящихся к стратегии, следующей за трендом.
Эта стратегия основана в основном на индикаторе Hull Moving Average. Линия Hull Moving Average состоит из двух скользящих средних. Сначала она вычисляет медианную скользящую среднюю линию nma цены, с периодом hullperiod. Затем она вычисляет быструю скользящую среднюю линию n2ma, с периодом половины nma
Для отфильтрации некоторых ложных сигналов стратегия также вводит линию Hull (Hull_Line). Линия Hull является результатом линейной регрессии разницы между nma и n2ma. Когда есть расхождение между ценой и линией Hull, стратегия пропустит торговый сигнал.
В частности, правила стратегии следующие:
Вычислить nma с периодом корпуса
Вычислить n2ma с периодом половины периода nma
Вычислите разницу между n2ma и nma
Moving average the diff with period sqrt ((hullperiod), получает and get the Hull Line Hull_Line (получает и получает Hull_Line)
Когда цена пересекает линию Халла, генерируется сигнал покупки.
Когда цена переходит ниже линии корпуса, генерируется сигнал продажи.
Если есть расхождение между ценой и Hull Line, пропустите сигнал
Вход с определенным процентом позиции, принятие выхода стоп-лосс
Преимущества этой стратегии включают:
Основанный на Hull Moving Average, он может быстро улавливать тенденцию и следовать тренду
Используйте Hull Line для фильтрации ложных сигналов и улучшения качества сигнала
Хорошее соотношение риск-прибыль и привлечение, подходящее для краткосрочной торговли
Гибкая настройка параметров, адаптируемая к различным рыночным условиям
Использовать обратный стоп-потеря, может остановить потерю вовремя и контролировать риски
Сочетание сезонности для предотвращения системных рисков в конкретные периоды времени
Эта стратегия также сопряжена с некоторыми рисками:
Тенденционная стратегия, не может торговать весь день
Большие убытки при обратном тренде
Отставание от скользящих средних значений, невозможность своевременно зафиксировать переломные моменты
Высокая частота торговли приводит к более высоким затратам на торговлю
Ненадлежащие параметры могут привести к снижению рентабельности на рынках с ограниченным диапазоном
Чтобы контролировать эти риски, мы можем принять следующие меры:
Принять стратегию стоп-лосса мартингейла для контроля одиночных потерь
Оптимизация параметров и надежность испытаний в различных рыночных условиях
Комбинировать индикаторы оценки тенденций, чтобы избежать преследования тенденций во время перемен
Увеличить время хранения до более низкой частоты торговли
Эта стратегия также может быть оптимизирована в следующих аспектах:
Комбинируйте индикаторы импульса для определения отправной точки тенденций для лучшего входа
Добавление моделей машинного обучения для оценки направления и силы тренда
Принять адаптивные параметры для корректировки параметров на основе динамики рынка в режиме реального времени
Конфигурировать многочасовые системы корпуса, с разными размерами позиций для разных временных рамок
Комбинировать показатели объема для предотвращения ложных прорывов с недостаточной динамикой
Добавление модели размещения позиций на основе волатильности для динамической корректировки размеров позиций на основе волатильности
Стратегия Hull Moving Average Swing Trading - это эффективная краткосрочная стратегия следования тренду. Она использует систему Hull Moving Average для определения направления тренда с целью следования тренду. По сравнению с едиными системами движущихся средних, она имеет более высокое качество сигнала и гибкость параметров. Преимущество этой стратегии заключается в быстром улавливании изменений тренда с относительно небольшими снижениями.
/*backtest start: 2023-09-06 00:00:00 end: 2023-10-06 00:00:00 period: 6h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Hull Moving Average Swing Trader by SEASIDE420 strategy("Hull Moving Average Swing Trader", shorttitle="HMA_Swing_Trader", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0) hullperiod = input(title="HullMA Period", type=input.integer, defval=210, minval=1) price = input(open, type=input.source, title="Price data") FromMonth = input(defval=1, title="From Month", minval=1, maxval=12) FromDay = input(defval=1, title="From Day", minval=1, maxval=31) FromYear = input(defval=2020, title="From Year", minval=2017) ToMonth = input(defval=1, title="To Month", minval=1, maxval=12) ToDay = input(defval=1, title="To Day", minval=1, maxval=31) ToYear = input(defval=9999, title="To Year", minval=2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => true n2ma = 2 * wma(price, round(hullperiod / 2)) nma = wma(price, hullperiod) diff = n2ma - nma sqn = round(sqrt(hullperiod)) n2ma1 = 2 * wma(price[1], round(hullperiod / 2)) nma1 = wma(price[1], hullperiod) diff1 = n2ma1 - nma1 n1 = wma(diff, sqn) n2 = wma(diff1, sqn) Hull_Line = n1 / n1 * n2 Hull_retracted = if n1 > n2 Hull_retracted = Hull_Line - 2 else Hull_retracted = Hull_Line + 2 c1 = Hull_retracted + n1 - price c2 = Hull_retracted - n2 + price c4 = n1 > n2 ? color.green : color.red c2p = plot(c2, color=color.black, linewidth=1) c3p = plot(price, color=color.black, linewidth=1) fill(c3p, c2p, color=c4, transp=75) //plot(cross(c1, c2) ? c1 : na, style=plot.style_circles, color=c4, linewidth=4) if price < c2 strategy.close("BUY", when=window()) if price > c2 strategy.close("SELL", when=window()) if price > c2 and price[1] > c1 strategy.entry("BUY", strategy.long, when=window()) if price < c1 and price[1] < c2 strategy.entry("SELL", strategy.short, when=window()) // /L'-, // ,'-. ` ```` / L '-, // . _,--dMMMM\ ` ` ` '`.. / '-, // : _,--, )MMMMMMMMM),. ` ,<> /_ '-,' // ; ___,--. \MM( `-' )M//MM\ ,',.; .-'* ; .' // | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' / // | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,' // | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ / // | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___ // | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-. // | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-., // | __ \`. | | | \ / _ |. . . . \ `-. F // | ___ / \ | `| ' __ \ | /-' F . . . . \ '` // | \ \ \ / | __ / \ | |,-' __,- J . . . . . \ // | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,' // | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\ // | ___ \ \ | | ` __,--' /;;;;;;;;;;;;. // | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\ // \ | | / | __,--' `--;;/ \;-'\ // \ | |/ __,--' / / \ \ // \ | __,--' / / \ \ // \|__,--' _,-;M-K, ,;-;\ // <;;;;;;;; '-;;;; // :D