
ハイキン・アシとカウフマン自律移動平均取引戦略 (HLC3/Kaufman Strategy) は,ハイキン・アシK線とカフマン自律移動平均 (KAMA) を組み合わせた量的な取引戦略である.この戦略は,ハイキン・アシK線を介して取引方向を決定し,その後,カフマン自律移動平均を補助指標として取引信号フィルタリングに使用する.
この戦略は以下の部分から構成されています.
Heikin Ashiの開値と閉値を計算する.これらの価格は,K線実体の中間価格を反映し,部分的なノイズをフィルターすることができます.
カフマン自律移動平均を計算する (KAMA) 〔KAMAは,市場が急激に大幅な波動を起こすときにあまり遅れをとらないように,自分の平滑さを動的に調整することができる〕.
ハイキン・アシの閉盘価格とKAMAの大きさの関係を比較して,買入と売却のシグナルを決定する.ハイキン・アシの閉盘価格がKAMAを上から穿越すると買入シグナルが生じ,ハイキン・アシの閉盘価格がKAMAを下から穿越すると売りシグナルが生じます.
ADX指標を足してトレンドの強さや弱さを判断し,波動的な市場で誤ったシグナルを生じさせないようにする.
この戦略の最大の利点は,Heikin Ashi K線とKAMAのダブルフィルタリングを組み合わせることで,ノイズ取引と誤信号を大幅に減らすことです.具体的利点は以下の通りです.
ハイキン・アシとカウフマンの自己適応移動平均取引戦略は,二重フィルタリングのトレンド追跡戦略である.それは,ハイキン・アシの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)