
Idea teras strategi ini adalah untuk mengenal pasti trend pasaran dengan menggabungkan penunjuk garis rata-rata Kama dan penunjuk garis rata-rata, untuk mencapai trend. Apabila garis rata-rata Kama dan garis rata-rata berlaku persilangan emas, dinilai sebagai masuk ke dalam trend naik, lakukan lebih banyak; Apabila garis rata-rata Kama dan garis rata-rata berlaku persilangan mati, dinilai sebagai masuk ke dalam trend menurun, lakukan kosong.
Strategi ini mempunyai konsep yang jelas, menggunakan garis rata-rata karma dan penunjuk garis rata-rata untuk menilai dan mengesan trend, kawalan penarikan balik yang kuat, dengan penyesuaian dan pengoptimuman parameter, kesan yang lebih baik dapat dicapai. Namun, terdapat ruang untuk penambahbaikan tertentu, jika ditambah lebih banyak penunjuk pengesahan dan modul henti rugi, dapat meningkatkan kestabilan dan kemampuan keuntungan strategi.
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//synapticex.com
kamaPeriod = input(8, minval=1)
ROCLength=input(4, minval=1)
kama(length)=>
volatility = sum(abs(close-close[1]), length)
change = abs(close-close[length-1])
er = iff(volatility != 0, change/volatility, 0)
sc = pow((er*(0.666666-0.064516))+0.064516, 2)
k = nz(k[1])+(sc*(hl2-nz(k[1])))
n=input(title="period",defval=7)
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)
c=n1>n2?lime:red
ma=plot(n1,color=c, linewidth = 3)
plot(cross(nma, nma1) ? nma : na, style = cross, color = c, linewidth = 5)
kamaEntry = request.security(syminfo.tickerid,timeframe.period,kama(kamaPeriod))
plot(kamaEntry, color=gray, title="Kama",transp=0, trackprice=false, style=line)
strategy("Kama VS HeikinAshi", overlay=true, pyramiding=0, calc_on_every_tick=true, calc_on_order_fills=true)
buyEntry = n1 > n2
sellEntry = close < kamaEntry and n1 < n2
buyExit = close < kamaEntry and n1 < n2
sellExit = n1 > n2
if (buyEntry)
strategy.entry("KAMAL", strategy.long, comment="KAMAL")
else
strategy.close("KAMAL", when=buyExit)
if (sellEntry)
strategy.entry("KAMAS", strategy.short, comment="KAMAS")
else
strategy.close("KAMAS", when = sellExit)