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

저자:차오장, 날짜: 2023-12-19 15:51:30
태그:

img

전반적인 설명

하이킨 아시와 카우프만 적응형 이동 평균 거래 전략 (HLC3/Kaufman Strategy) 은 하이킨 아시 촛불과 카우프만 적응형 이동 평균 (KAMA) 을 결합한 양적 거래 전략이다. 거래 방향을 결정하기 위해 하이킨 아시 촛불과 무역 신호 필터링의 보조 지표로 KAMA를 사용합니다.

전략 논리

이 전략의 주요 구성 요소는 다음과 같습니다.

  1. 헤이킨 아시 오픈 및 클로즈 가격을 계산합니다. 이 가격은 촛불 몸의 중간 가격을 반영하고 약간의 소음을 필터 할 수 있습니다.

  2. 카프만 적응 이동 평균 (KAMA) 을 계산하십시오. KAMA는 동적으로 부드러움을 조정 할 수 있으며 급격한 시장 변동 중에 너무 많이 뒤떨어지지 않을 것입니다.

  3. 하이킨 아시 클로즈와 KAMA 사이의 관계를 비교하여 구매 및 판매 신호를 결정합니다. 하이킨 아시 클로즈가 KAMA를 넘으면 구매 신호가 생성됩니다. 하이킨 아시 클로즈가 KAMA를 넘으면 판매 신호가 생성됩니다.

  4. ADX 지표를 추가하여 범위 시장에서 잘못된 신호를 피하기 위해 트렌드의 강도를 판단합니다.

이점 분석

이 전략의 가장 큰 장점은 Heikin Ashi 촛불과 KAMA의 이중 필터입니다. 이는 시끄러운 거래와 잘못된 신호를 크게 줄일 수 있습니다. 구체적인 장점은 다음과 같습니다.

  1. 하이킨 아시 촛불 자체는 소음 감축 기능을 가지고 있습니다. 단기 변동을 필터링할 수 있습니다.
  2. KAMA는 SMA와 EMA보다 더 민감하며 주요 수준에서 트렌드 변화를 효과적으로 추적 할 수 있습니다.
  3. 하이킨 아시와 카마 이중 필터의 조합은 오류를 줄일 수 있습니다.
  4. ADX 지표는 잘못된 신호를 피하기 위해 트렌드의 강도를 결정하도록 구성 할 수 있습니다.
  5. 거래 신호는 직접적이고 쉽게 유연하게 작동합니다.

위험 분석

  1. 일부 범위 시장에서 잘못된 신호가 발생할 수 있습니다. 이러한 위험을 피하기 위해 매개 변수를 적절히 조정해야합니다.
  2. 너무 민감한 매개 변수는 정상을 쉽게 추격하고 바닥을 죽일 수 있습니다.
  3. 장기적인 트렌드 시장에서 KAMA는 가격 변화에서 어느 정도 뒤쳐질 수 있습니다. ADX는 트렌드의 안정성을 결정하기 위해 결합되어야합니다.

최적화 방향

  1. 가장 좋은 필터링 조건을 찾기 위해 하이킨 아시 근접 및 KAMA 매개 변수를 최적화하십시오.
  2. ADX와 같은 트렌드 판단 지표를 추가하여 트렌드가 안정된 경우에만 거래 신호가 생성되도록 합니다.
  3. 볼링거 밴드와 같은 다른 보조 지표를 결합하여 스톱 로스 표준을 설정합니다.
  4. 최적의 매개 변수 조합을 찾기 위해 서로 다른 제품에서 매개 변수의 안정성을 테스트합니다.

요약

하이킨 아시와 카우프만 적응형 이동 평균 거래 전략은 이중 필터 트렌드 추적 전략이다. 하이킨 아시 촛불의 노이즈 감축 기능과 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)





더 많은