Тенденция скользящей средней корпуса в соответствии со стратегией

Автор:Чао Чжан, Дата: 2023-11-02 14:57:37
Тэги:

img

Обзор

Эта стратегия основана на индикаторе Hull Moving Average для построения тренда после торговой системы.

Логика стратегии

Эта стратегия использует скользящий средний показатель Халла в качестве основного технического показателя.

В частности, Движущаяся средняя Хулла содержит два средних - один является движущейся средней MA ((n) периода n, другой - движущейся средней MA ((n/2) периода n/2. Разница между двумя движущимися средними формирует кривую разницы Хулла.

Когда кривая Хулла наклоняется вверх, скорейшая скользящая средняя пересекается над длинным периодом, давая длинный сигнал.

Эта стратегия устанавливает период n кривой Хулла на 16. Она вычисляет 8-периодный MA (n/2=8), 16-периодный MA и разницу между ними, чтобы получить кривую Хулла. Затем она берет 4-периодный MA (квадратный корень n=4) самой кривой Хулла. Когда кривая Хулла пересекается вверх, она идет длинной. Когда кривая Хулла пересекается вниз, она идет короткой.

Анализ преимуществ

По сравнению с обычными скользящими средними, скользящий средний Hull имеет следующие преимущества:

  1. Используя функцию квадратного корня, кривая Хулла приближает ценовое движение и быстрее улавливает обратные тенденции.

  2. Снижает количество ложных перекрестков. Традиционные МА, как правило, генерируют больше ложных перекрестков. Кривая корпуса может фильтровать шум и избегать ненужных сделок.

  3. В системе с двойным МА необходимо оптимизировать два параметра.

  4. Значение n кривой корпуса может быть скорректировано для разных рынков и адаптировано к различным инструментам.

  5. Систематическая система корпуса надежна и избегает ручного отбора, придерживаясь последовательности механических торговых систем.

Анализ рисков

Несмотря на свои преимущества по сравнению с системами скользящих средних, система Hull по-прежнему несет в себе следующие риски:

  1. Как стратегия преследования тренда, системы корпуса склонны к остановке во время резких изменений тренда.

  2. Быстрая реакция кривых Халла может увеличить частоту торгов и привести к переоценке.

  3. Наличие только одного параметра n может привести к рискам настройки кривой от чрезмерной оптимизации.

  4. Система Hull работает менее эффективно для инструментов с высокой волатильностью.

Направления к улучшению

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

  1. Добавьте фильтры с дополнительными индикаторами, чтобы избежать ложных перекрестков.

  2. Добавьте стратегии стоп-лосса для контроля потери на одной сделке, например, с остановками на ходу или остановками на прибыль.

  3. Оптимизировать выбор параметров n для предотвращения чрезмерной оптимизации.

  4. Используйте модели машинного обучения, такие как RNN, для динамической оптимизации значений параметров.

  5. Оптимизировать параметры отдельно для различных инструментов с помощью установки машинного обучения.

  6. Оптимизируйте размещение позиций для снижения частоты торговли.

Заключение

Hull Moving Average - это типичная стратегия, следующая за трендом. Несмотря на свои преимущества по сравнению с MAs, он все еще сталкивается с такими проблемами, как переоптимизация и переоценка. Мы можем улучшить стратегию посредством оптимизации параметров, остановки потерь, размещения позиций и т. Д. Система Hull проста и практична. Она заслуживает дальнейших исследований и улучшения путем включения большего количества индикаторов и методов для создания надежной торговой системы.


/*backtest
start: 2023-10-25 00:00:00
end: 2023-11-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's HullMA Strategy", shorttitle = "HullMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
n = input(title = "HullMA period", defval=16)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//HullMA
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)
    
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if n1 > n2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if n1 < n2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if true
    strategy.close_all()

Больше