Kama dan Moving Average Berbasis Tren Mengikuti Strategi

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

img

Gambaran umum

Ide inti dari strategi ini adalah untuk mengidentifikasi tren pasar dengan menggabungkan rata-rata bergerak Kama dan indikator rata-rata bergerak untuk mencapai tren berikut. Ketika rata-rata bergerak Kama dan rata-rata bergerak Kama memiliki salib emas, itu dinilai bahwa tren naik telah dimulai dan posisi panjang diambil. Ketika rata-rata bergerak Kama dan rata-rata bergerak Kama memiliki salib kematian, itu dinilai bahwa tren menurun telah dimulai dan posisi pendek diambil.

Logika Strategi

  1. Rata-rata bergerak Kama adalah indikator trend-mengikuti yang lebih sensitif terhadap kebisingan pasar dan dapat digunakan untuk menentukan tren harga.

  2. Perhitungkan rata-rata bergerak. dua rata-rata bergerak dihitung di sini, satu adalah rata-rata bergerak eksponensial ganda yang lebih cepat, yang lainnya adalah rata-rata bergerak normal.

  3. Ketika garis cepat menembus garis lambat dari bawah, pergi panjang. Ketika garis cepat menembus garis lambat dari atas, pergi pendek. Jadi penilaian tren dan pelacakan selesai.

  4. Setelah mengambil posisi, keluar saat harga menembus garis Kama untuk mencapai tren setelah keluar.

Keuntungan

  1. Strategi ini menggabungkan indikator rata-rata bergerak Kama dan rata-rata bergerak untuk membuat penilaian yang relatif akurat tentang tren pasar dan mencapai tren berikut dengan kemampuan kontrol penarikan yang kuat.

  2. Rata-rata bergerak Kama lebih sensitif terhadap kebisingan pasar dan dapat mendeteksi titik pembalikan tren sebelumnya.

  3. Penghakiman kombinasi rata-rata bergerak jelas dan mudah dipahami.

  4. Strategi ini memiliki ruang pengoptimalan parameter yang besar dan parameter dapat disesuaikan dan dioptimalkan untuk berbagai varietas dan instrumen perdagangan.

Analisis Risiko

  1. Masih ada kemungkinan kesalahan penilaian ketika kombinasi rata-rata bergerak Kama dan rata-rata bergerak menilai tren pasar.

  2. Tidak ada pengaturan stop loss dapat menyebabkan kerugian yang lebih besar dalam kondisi pasar yang ekstrim.

  3. Pengaturan parameter yang tidak tepat juga dapat menyebabkan kesalahan penilaian. Parameter perlu disesuaikan sesuai dengan berbagai varietas.

Saran Optimalisasi

  1. Pertimbangkan untuk menambahkan indikator ATR untuk pengaturan stop loss.

  2. Uji dampak dari nilai parameter yang berbeda pada strategi pengembalian untuk menemukan parameter optimal.

  3. Pertimbangkan untuk menambahkan indikator lain untuk verifikasi, seperti indikator osilator, untuk meningkatkan akurasi penilaian.

  4. Membangun kerangka optimasi parameter yang dapat beradaptasi sendiri dan dinamis untuk optimasi parameter otomatis.

Ringkasan

Ide keseluruhan strategi ini jelas, menggunakan rata-rata bergerak Kama dan rata-rata bergerak salib emas dan salib kematian untuk menentukan dan mengikuti tren dengan kemampuan kontrol penarikan yang kuat. Melalui penyesuaian parameter dan optimalisasi, hasil yang baik dapat diperoleh. Tapi masih ada ruang untuk perbaikan. Dengan menambahkan lebih banyak indikator verifikasi dan modul stop loss, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut.


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