Hull MA 채널 및 선형 회귀 스윙 거래 전략

저자:차오장, 날짜: 2023-12-01 16:47:01
태그:

img

전반적인 설명

이것은 Hull MA, 가격 채널, EMA 신호 및 선형 회귀를 결합 한 스윙 거래 전략입니다. 중장기 트렌드를 파악하기 위해 하울 MA를 사용하여 시장 트렌드 방향, 가격 채널 및 선형 회귀를 사용하여 바닥 영역, EMA 신호 및 시장 진입 시간을 식별합니다.

전략 논리

이 전략은 다음과 같은 주요 지표로 구성됩니다.

  1. 헬스 MA
    • Hull MA의 전형적인 기간은 337이며 중장기 트렌드 방향을 나타냅니다.
    • 18주기 WMA의 2배가 337주기 WMA보다 높을 때, 그것은 황소 시장입니다, 그렇지 않으면 그것은 곰 시장입니다
  2. 가격 채널
    • 가격 채널 그래프 EMA 높고 EMA 낮, 지원 및 저항 영역을 나타냅니다
  3. EMA 신호
    • 전형적인 기간은 89입니다. 단기 트렌드와 진입 신호를 나타냅니다.
  4. 선형 회귀
    • 바닥과 파업에 대한 6 초의 빠른 라인
    • 중장기 동향에 대한 89 기간의 느린 라인

입력 논리:

롱 엔트리: Hull MA가 상향으로 향하고 상단보다 높은 가격, EMA 신호를 가로질러 선형 회귀 단기 입력: Hull MA가 아래로 향하고 가격이 하위 범위를 넘어선 경우, EMA 신호를 아래로 가로질러 선형 회귀

출구 논리:

긴 출구: 하위 계단 아래의 가격과 선형 회귀를 가로질러 짧은 출구: 상단 범위를 넘어서 선형 회귀를 가로질러

이점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 여러 지표로 더 높은 정확도
    • 주요 트렌드, 지원/저항 채널, 진입 EMA를 위한 Hull MA
  2. 중장기 동향을 파악하기 위한 스윙 트레이딩
    • 중장기 주기를 포착하기 위한 전략
  3. 통제 가능한 위험과 소액 사용
    • 신호는 높은 확률 영역에서만 생성됩니다. 추격을 피하고 높은 사망률을 낮게합니다.

위험 분석

또한 몇 가지 위험이 있습니다.

  1. 제한된 최적화 공간
    • EMA 기간과 같은 주요 매개 변수는 작은 최적화 공간으로 고정되어 있습니다
  2. 범위에 묶인 시장에서 잃을 수 있습니다.
    • 스톱 손실은 옆 범위에서 발동될 수 있습니다.
  3. 기술분석에 대한 지식이 필요해요
    • 전략 논리는 가격 행동과 지표 지식을 필요로하며 모든 사람에게 적합하지 않습니다.

개선 사항:

  1. 스톱 로스 전략 조정, 예를 들어 트래일 스톱 로스
  2. 입력 및 출력 논리를 최적화
  3. MACD와 같은 다른 필터 지표를 추가합니다.

요약

이 전략은 헐 MA, 가격 채널, EMA 및 선형 회귀를 결합하여 완전한 중장기 스윙 거래 전략을 수립합니다. 단일 지표 전략에 비해 트렌드 및 역전을 파악하는 정확도를 크게 향상시킵니다. 그러나 여전히 기술적 분석 지식이 필요한 위험이 있습니다. 매개 변수 및 논리에 대한 추가 개선은 안정성을 향상시킬 수 있습니다.


/*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


더 많은