Hull MA Channel e estratégia de negociação swing de regressão linear

Autora:ChaoZhang, Data: 2023-12-01 16:47:01
Tags:

img

Resumo

Esta é uma estratégia de negociação de swing que combina Hull MA, canal de preços, sinal EMA e regressão linear.

Estratégia lógica

A estratégia consiste nos seguintes principais indicadores:

  1. Hull MA
    • O período típico do Hull MA é de 337, representando a direcção da tendência a médio e longo prazo
    • Quando 2 vezes a WMA de 18 períodos está acima da WMA de 337 períodos, é um mercado de touro, caso contrário é um mercado de urso
  2. Canal de preços
    • Gráficos de canais de preços EMA alta e EMA baixa, representando área de suporte e resistência
  3. Signalização da EMA
    • Período típico é de 89, representando tendência de curto prazo e sinal de entrada
  4. Regressão linear
    • Linha rápida de 6 períodos para fundo e ruptura
    • Linha lenta de 89 período para tendência de médio a longo prazo

Logic de entrada:

Introdução longa: Hull MA apontando para cima e preço acima da faixa superior, regressão linear cruzando o sinal EMA Introdução curta: Hull MA apontando para baixo e preço abaixo da faixa inferior, regressão linear atravessando o sinal EMA para baixo

Lógico de saída:

Saída longa: preço abaixo da faixa inferior e cruzamento da regressão linear para baixo Saída curta: preço acima da faixa superior e cruzamento da regressão linear para cima

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. Maior precisão com vários indicadores
    • Hull MA para tendência principal, canal para suporte/resistência, EMA para entrada
  2. O balanço de negociação para captar as tendências de médio prazo
    • Estratégia principalmente de reversões para captar cada ciclo a médio prazo
  3. Risco controlado e menor utilização
    • O sinal só é gerado na área de alta probabilidade, evitando a perseguição de alta morte baixa.

Análise de riscos

Há também alguns riscos:

  1. Espaço de otimização limitado
    • Parâmetros principais como período EMA é fixo, com pequeno espaço de otimização
  2. Pode perder no mercado de gama
    • O limite de perda pode ser activado no intervalo lateral
  3. Preciso de conhecimentos técnicos de análise.
    • A lógica da estratégia requer ação de preços e conhecimento de indicadores, não adequados para todos

Melhorias:

  1. Ajustar a estratégia de stop loss, por exemplo, trailing stop loss
  2. Otimizar a lógica de entrada e saída
  3. Adicionar outros indicadores de filtro como o MACD

Resumo

A estratégia combina Hull MA, canal de preços, EMA e regressão linear para uma estratégia completa de negociação de balanço de médio prazo. Em comparação com as estratégias de indicador único, melhora significativamente a precisão na captura de tendências e reversões.


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

//@version=2
strategy("Swing Hull/SonicR/EMA/Linear Regression Strategy", overlay=true)
//Hull MA
n=input(title="HullMA Period",defval=377)
//
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)
condDown = n2 >= n1
condUp = condDown != true
col =condUp ? lime : condDown ? red : yellow
plot(n1,title="Hull MA", color=col,linewidth=3)
// SonicR + Line reg
EMA = input(defval=89, title="EMA Signal")
HiLoLen     = input(34, minval=2,title="High Low channel Length")
lr     = input(89, minval=2,title="Linear Regression Length")
pacC        = ema(close,HiLoLen)
pacL        = ema(low,HiLoLen)
pacH        = ema(high,HiLoLen)
DODGERBLUE = #1E90FFFF
// Plot the Price Action Channel (PAC) base on EMA high,low and close//
L=plot(pacL, color=DODGERBLUE, linewidth=1, title="High PAC EMA",transp=90)
H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=90)
C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=80)
//Moving Average//
signalMA =ema(close,EMA)
plot(signalMA,title="EMA Signal",color=black,linewidth=3,style=line)
linereg = linreg(close, lr, 0)
lineregf = linreg(close, HiLoLen, 0)
cline=linereg>linereg[1]?green:red
cline2= lineregf>lineregf[1]?green:red
plot(linereg, color = cline, title = "Linear Regression Curve Slow", style = line, linewidth = 1)
//plot(lineregf, color = cline2, title = "Linear Regression Curve Fast", style = line, linewidth = 1)
longCondition = n1>n2
shortCondition = longCondition != true
closeLong =  lineregf-pacH>(pacH-pacL)*2 and close<lineregf and linereg>signalMA
closeShort = pacL-lineregf>(pacH-pacL)*2 and close>lineregf and linereg<signalMA
if shortCondition    
    if (close[0] < signalMA[0] and close[1] > pacL[1] and linereg>pacL and close<n1 and pacL<n1) //cross entry
        strategy.entry("SHORT", strategy.short, comment="Short")
strategy.close("SHORT", when=closeShort) //output logic
if longCondition // swing condition          
    if (close[0] > signalMA[0] and close[1] < pacH[1] and linereg<pacH and close>n1 and pacH>n1) //cross entry
        strategy.entry("LONG", strategy.long, comment="Long")
strategy.close("LONG", when=closeLong) //output logic


Mais.