하이킨 아시와 카우프만 적응형 이동 평균 거래 전략 (HLC3/Kaufman Strategy) 은 하이킨 아시 촛불과 카우프만 적응형 이동 평균 (KAMA) 을 결합한 양적 거래 전략이다. 거래 방향을 결정하기 위해 하이킨 아시 촛불과 무역 신호 필터링의 보조 지표로 KAMA를 사용합니다.
이 전략의 주요 구성 요소는 다음과 같습니다.
헤이킨 아시 오픈 및 클로즈 가격을 계산합니다. 이 가격은 촛불 몸의 중간 가격을 반영하고 약간의 소음을 필터 할 수 있습니다.
카프만 적응 이동 평균 (KAMA) 을 계산하십시오. KAMA는 동적으로 부드러움을 조정 할 수 있으며 급격한 시장 변동 중에 너무 많이 뒤떨어지지 않을 것입니다.
하이킨 아시 클로즈와 KAMA 사이의 관계를 비교하여 구매 및 판매 신호를 결정합니다. 하이킨 아시 클로즈가 KAMA를 넘으면 구매 신호가 생성됩니다. 하이킨 아시 클로즈가 KAMA를 넘으면 판매 신호가 생성됩니다.
ADX 지표를 추가하여 범위 시장에서 잘못된 신호를 피하기 위해 트렌드의 강도를 판단합니다.
이 전략의 가장 큰 장점은 Heikin Ashi 촛불과 KAMA의 이중 필터입니다. 이는 시끄러운 거래와 잘못된 신호를 크게 줄일 수 있습니다. 구체적인 장점은 다음과 같습니다.
하이킨 아시와 카우프만 적응형 이동 평균 거래 전략은 이중 필터 트렌드 추적 전략이다. 하이킨 아시 촛불의 노이즈 감축 기능과 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)