Kama dan Moving Average Berasaskan Trend Mengikuti Strategi

Penulis:ChaoZhang, Tarikh: 2024-02-06 09:53:22
Tag:

img

Ringkasan

Idea utama strategi ini adalah untuk mengenal pasti trend pasaran dengan menggabungkan rata-rata bergerak Kama dan indikator rata-rata bergerak untuk mencapai trend berikut. Apabila rata-rata bergerak Kama dan rata-rata bergerak Kama mempunyai salib emas, ia dinilai bahawa trend menaik telah bermula dan kedudukan panjang diambil. Apabila rata-rata bergerak Kama dan rata-rata bergerak Kama mempunyai salib kematian, ia dinilai bahawa trend menurun telah bermula dan kedudukan pendek diambil.

Logika Strategi

  1. Mengira purata bergerak Kama. purata bergerak Kama adalah penunjuk trend yang lebih sensitif terhadap bunyi pasaran dan boleh digunakan untuk menentukan trend harga.

  2. Hitung purata bergerak. Dua purata bergerak dikira di sini, satu adalah purata bergerak eksponensial ganda yang lebih cepat, yang lain adalah purata bergerak normal.

  3. Apabila garisan pantas menembusi garisan perlahan dari bawah, pergi panjang. Apabila garisan pantas menembusi garisan perlahan dari atas, pergi pendek. Jadi penilaian trend dan penjejakan selesai.

  4. Selepas mengambil kedudukan, keluar apabila harga menembusi garis Kama untuk mencapai trend selepas keluar.

Kelebihan

  1. Strategi ini menggabungkan penunjuk purata bergerak Kama dan purata bergerak untuk membuat penilaian yang agak tepat mengenai trend pasaran dan mencapai trend berikut dengan keupayaan kawalan pengeluaran yang kuat.

  2. Rata-rata bergerak Kama lebih sensitif terhadap bunyi pasaran dan dapat mengesan titik pembalikan trend terlebih dahulu.

  3. Penghakiman gabungan purata bergerak adalah jelas dan mudah difahami.

  4. Strategi ini mempunyai ruang pengoptimuman parameter yang besar dan parameter boleh diselaraskan dan dioptimumkan untuk pelbagai jenis dan instrumen perdagangan.

Analisis Risiko

  1. Masih ada kemungkinan penilaian yang salah apabila gabungan purata bergerak Kama dan purata bergerak menilai trend pasaran.

  2. Tiada tetapan stop loss boleh membawa kepada kerugian yang lebih besar dalam keadaan pasaran yang melampau.

  3. Tetapan parameter yang tidak sesuai juga boleh menyebabkan kesilapan penilaian. Parameter perlu diselaraskan mengikut pelbagai jenis.

Cadangan Pengoptimuman

  1. Pertimbangkan untuk menambah penunjuk ATR untuk tetapan stop loss.

  2. Uji kesan nilai parameter yang berbeza pada pulangan strategi untuk mencari parameter yang optimum.

  3. Pertimbangkan untuk menambah penunjuk lain untuk pengesahan, seperti penunjuk osilator, untuk meningkatkan ketepatan penilaian.

  4. Membina kerangka parameter yang menyesuaikan diri dan dinamik untuk pengoptimuman parameter automatik.

Ringkasan

Idea keseluruhan strategi ini jelas, menggunakan Kama moving average dan moving average golden cross dan death cross untuk menentukan dan mengikuti trend dengan keupayaan kawalan penarikan yang kuat. Melalui penyesuaian parameter dan pengoptimuman, hasil yang baik dapat diperoleh. Tetapi masih ada ruang untuk peningkatan. Dengan menambah lebih banyak penanda pengesahan dan modul kehilangan berhenti, kestabilan dan keuntungan strategi dapat ditingkatkan lagi.


/*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)



Lebih lanjut