하이킨 아시와 카우프만 적응형 이동 평균 거래 전략


생성 날짜: 2023-12-19 15:51:30 마지막으로 수정됨: 2023-12-19 15:51:30
복사: 1 클릭수: 1108
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

하이킨 아시와 카우프만 적응형 이동 평균 거래 전략

개요

헤이킨 아시와 카우프만 자율적 이동 평균 거래 전략 (HLC3/Kaufman Strategy) 은 헤이킨 아시 K 라인과 카우프만 자율적 이동 평균 (KAMA) 을 결합한 양적 거래 전략이다. 이 전략은 헤이킨 아시 K 라인을 통해 거래 방향을 결정하고, 카우프만 자율적 이동 평균을 보조 지표로 사용하여 거래 신호 필터링한다.

전략 원칙

이 전략은 다음과 같은 주요 부분들로 구성됩니다.

  1. 헤이킨 아시 (Heikin Ashi) 개시 가격과 종료 가격을 계산한다. 이 가격은 K선 엔티티의 중간 가격을 반영하여 일부 잡음을 필터링 할 수 있다.

  2. 카우프만의 자기 적응 이동 평균을 계산하는 방법 (KAMA) . KAMA는 시장의 급격한 급격한 변동이 있을 때 너무 많은 지연을 일으키지 않고 자신의 부드러움을 동적으로 조정할 수 있다.

  3. 헤이킨 아쉬 종전 가격과 KAMA의 크기와의 관계를 비교하여 구매 및 판매 신호를 결정한다. 헤이킨 아쉬 종전 가격 위에 KAMA를 통과할 때 구매 신호가 발생하고, 헤이킨 아쉬 종전 가격 아래에 KAMA를 통과할 때 판매 신호가 발생한다.

  4. ADX 지표를 추가하여 트렌드 강도를 판단하여 흔들리는 시장에서 잘못된 신호를 방지 할 수 있습니다.

우위 분석

이 전략의 가장 큰 장점은 Heikin Ashi K 와 KAMA의 듀얼 필터링을 결합하여 노이즈 트랜잭션과 잘못된 신호를 크게 줄일 수 있다는 것입니다. 구체적인 장점은 다음과 같습니다:

  1. Heikin Ashi K 라인은 자체적으로 소음 제거 기능을 가지고 있으며, 따라서 일부 단기 파동을 필터링한다.
  2. KAMA는 SMA와 EMA에 비해 더 민감하며, 대규모의 트렌드 변화를 효과적으로 추적할 수 있다.
  3. Heikin Ashi와 KAMA의 듀얼 필터링 메커니즘을 결합하면 오류를 줄일 수 있습니다.
  4. 설정 가능한 ADX 지표는 트렌드를 판단하여 잘못된 신호를 피한다.
  5. 트레이딩 신호는 명확하고, 조작이 쉽고, 유연합니다.

위험 분석

  1. 일부 진동 상황에서는 잘못된 신호가 발생할 수 있으며, 이러한 위험을 피하기 위해 파라미터를 적절히 조정해야 한다.
  2. 지나치게 민감한 수요는 높은 가격과 낮은 가격에 따라잡을 수 있으며, KAMA 파라미터를 적절히 완화시켜야 한다.
  3. 장기적인 추세 상황에서는, KAMA는 가격 변화의 어느 정도 뒤에 있을 수 있다. 이것은 ADX 지표와 결합하여 추세 안정성을 결정해야 한다.

최적화 방향

  1. Heikin Ashi의 종식 가격과 KAMA 파라미터를 최적화하여 최적의 필터링 조건을 찾습니다.
  2. 트렌드 판단 지표인 ADX를 추가하여, 트렌드가 안정될 때 거래 신호가 발생하도록 한다.
  3. 볼 라인과 같은 다른 보조 지표와 함께 스톱 로즈 기준을 설정합니다.
  4. 다양한 품종의 변수의 안정성을 테스트하여 최적의 변수 조합을 찾습니다.

요약하다

헤이킨 아시와 카우프만 자율 적응 이동 평균 거래 전략은 쌍방향 파동의 트렌드 추적 전략이다. 그것은 헤이킨 아시 K 선의 무음 기능과 KAMA의 트렌드 변화에 대한 빠른 추적의 장점을 결합하여, 잡음 거래를 효과적으로 필터링하고, 잘못된 신호를 줄여, 중장기 트렌드를 추적하는 데 적합하다. 이 전략은 파라미터 최적화, 보조 지표 확인 등의 수단으로 안정성과 수익성을 더욱 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Heikin/Kaufman   by Marco

strategy("HLC3/Kaufman Strategy ",shorttitle="HLC3/KAU",overlay=true)
res1 = input(title="Hlc3 Time Frame", defval="D")
test = input(1,"Hlc3 Shift")
sloma = input(20,"Slow EMA Period")

//Kaufman MA
Length = input(5, minval=1)
xPrice = input(hlc3)
xvnoise = abs(xPrice - xPrice[1])
Fastend = input(2.5,step=.5)
Slowend = input(20)
nfastend = 2/(Fastend + 1)
nslowend = 2/(Slowend + 1)
nsignal = abs(xPrice - xPrice[Length])
nnoise = sum(xvnoise, Length)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
nAMA = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//Heikin Ashi Open/Close Price
//ha_t = heikinashi(tickerid)
//ha_close = request.security(ha_t, period, nAMA)
//mha_close = request.security(ha_t, res1, hlc3)
bha_close = request.security(syminfo.ticker, timeframe.period, nAMA)
bmha_close = request.security(syminfo.ticker, res1, hlc3)

//Moving Average
//fma = ema(mha_close[test],1)
//sma = ema(ha_close,sloma)
//plot(fma,title="MA",color=black,linewidth=2,style=line)
//plot(sma,title="SMA",color=red,linewidth=2,style=line)
bfma = ema(bmha_close[test],1)
bsma = ema(bha_close,sloma)
plot(bfma,title="MA",color=black,linewidth=2,style=line)
plot(bsma,title="SMA",color=red,linewidth=2,style=line)
//Strategy
//golong =  crossover(fma,sma) 
//goshort =   crossunder(fma,sma)
golong =  crossover(bfma,bsma) 
goshort =   crossunder(bfma,bsma)
strategy.entry("Buy",strategy.long,when = golong)
strategy.entry("Sell",strategy.short,when = goshort)