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

Автор:Чао Чжан, Дата: 2023-09-19 16:40:00
Тэги:

Обзор

Эта стратегия основана на индикаторе Hull Moving Average, изобретенном Аланом Халлом, относящемся к следующим тенденциям стратегиям.

Принцип стратегии

  1. Вычислить краткосрочные и долгосрочные Hull MA. Короткий период для конкретного направления торговли, длительный период для общей тенденции.

  2. Когда краткосрочные Hull MAs пересекаются, определяется обратный тренд.

  3. Добавьте ценовой прорыв через Hull MA условие, чтобы обеспечить успешный прорыв.

  4. Добавить фильтр изменения курса цены, чтобы избежать нежелательного прорыва.

  5. Установите стоп-лосс и возьмите прибыль, чтобы контролировать риск.

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

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

  1. Hull MA реагирует на изменения цен быстрее, способна своевременно улавливать тенденции.

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

  3. Фильтры ценового прорыва и изменения курса помогают избежать ложных прорывов.

  4. Динамическая остановка потерь и получение прибыли блокирует прибыль и контролирует риск.

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

Риски этой стратегии:

  1. Неправильное установление параметров может пропустить повороты ценового тренда.

  2. Ошибочное общее суждение о тренде может привести к сделкам с противоположным трендом.

  3. Строп-лосс, установленный слишком широко, может привести к большим потерям.

  4. Слишком частые сделки увеличивают затраты на транзакции и риски скольжения.

Руководство по оптимизации

Она может быть оптимизирована в следующих аспектах:

  1. Оптимизировать периоды MA корпуса для сбалансированной чувствительности и гладкости.

  2. Оптимизируйте параметры входа и выхода, чтобы найти оптимальные значения.

  3. Испытать прочность параметров на различных приборах для улучшения адаптивности.

  4. Включить объем, чтобы избежать рисков дивергенции.

  5. Добавьте условия для улучшения стабильности.

Резюме

В целом, эта стратегия использует способность Hull MA реагировать на тенденции вовремя, и имеет сильную прибыльность при контроле рисков.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 22:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//SeaSide420
strategy("SS420FX", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
q=input(title="HullMA Short",defval=14)
z=input(title="HullMA Long",defval=14)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
SL = input(defval=-50000.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=100000.00, title="Target Point in $", type=float, step=1)
ot=1
n2ma=2*wma(close,round(q/2))
nma=wma(close,q)
diff=n2ma-nma
sqn=round(sqrt(q))
n2ma1=2*wma(close[1],round(q/2))
nma1=wma(close[1], q)
diff1=n2ma1-nma1
sqn1=round(sqrt(q))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
z2ma=2*wma(close[11],round(z/2))
zma=wma(close[11],z)
ziff=n2ma-nma
zqn=round(sqrt(z))
z2ma1=2*wma(close[12],round(z/2))
zma1=wma(close[12], z)
ziff1=n2ma1-nma1
zqn1=round(sqrt(z))
z1=wma(diff,sqn)
z2=wma(diff1,sqn)
z1e=z1>z2?green:black
z2e=z1>z2?black:red
z3e=z1>z2?green:red
n1e=plot(z1, title="HMA1", color=z1e, linewidth=2, offset=2)
n2e=plot(z2, title="HMA2", color=z2e, linewidth=2, offset=2)
fill(n1e, n2e, color=z3e, transp=80)
confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1])
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and z1>z2 and strategy.opentrades<ot and confidence>dt and close>n1
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and z1<z2 and strategy.opentrades<ot and confidence<dt and close<n1 
if (shortCondition)
    strategy.entry("Short",strategy.short)

Больше