CCI dan EMA Trend Berikutan Strategi Dagangan

Penulis:ChaoZhang, Tarikh: 2023-11-02 15:17:22
Tag:

img

Ringkasan

Idea teras strategi ini adalah untuk menggunakan penunjuk CCI untuk menentukan arah trend pasaran dan menggunakan penunjuk EMA untuk meluruskan CCI untuk melaksanakan trend selepas perdagangan.

Logika Strategi

  1. Mengira penunjuk CCI. Penunjuk CCI menilai sama ada harga saham semasa terlalu banyak dibeli atau terlalu banyak dijual berdasarkan tahap penyimpangan dari purata bergerak 20 hari. Formula adalah: (harga biasa - 20D SMA) / (0.015 * 20D TP deviasi standard).

  2. Lemparkan penunjuk CCI dengan EMA untuk mendapatkan kurva CCI-EMA, yang mengurangkan turun naik CCI dan menjadikan isyarat lebih jelas.

  3. Tetapkan titik beli dan jual untuk CCI. Pergi panjang apabila CCI-EMA melintasi di atas titik beli, dan pergi pendek apabila CCI-EMA melintasi di bawah titik jual.

  4. Pegang kedudukan sehingga CCI-EMA menyentuh titik beli atau jual lagi untuk menutup kedudukan.

Analisis Kelebihan

  1. Penggunaan CCI untuk menentukan arah trend pasaran digabungkan dengan EMA untuk menapis isyarat palsu dapat dengan berkesan mengikuti trend pasaran.

  2. CCI sensitif terhadap anomali harga dan boleh dengan cepat menangkap pembalikan trend. EMA mengurangkan isyarat palsu.

  3. Strategi trend berikut meminimumkan transaksi, mengurangkan kos dagangan dan slippage.

  4. Hasil backtest adalah baik, memberikan strategi beberapa kebolehgunaan praktikal.

Analisis Risiko

  1. CCI boleh terlalu sensitif terhadap lengkung dan EMA tidak dapat menyaring sepenuhnya semua isyarat palsu, beberapa isyarat palsu kekal.

  2. Strategi mengikut trend murni terdedah kepada kerugian apabila trend mengukuhkan atau membalikkan.

  3. Sistem perdagangan mekanikal tidak boleh menyesuaikan parameter secara fleksibel berdasarkan pasaran.

  4. Data backtest yang terhad tidak dapat mencerminkan sepenuhnya prestasi langsung. Parameter harus diselaraskan dengan teliti dan berhenti dikendalikan dengan ketat.

Arahan pengoptimuman

  1. Mengoptimumkan parameter CCI dengan menguji tempoh panjang yang berbeza.

  2. Mengoptimumkan parameter EMA untuk mencari tempoh EMA yang optimum.

  3. Uji kombinasi titik beli/jual yang berbeza untuk mencari parameter yang optimum.

  4. Menggabungkan penunjuk lain untuk menentukan pembalikan trend dan menetapkan stop loss.

  5. Tambah pengoptimuman parameter automatik untuk mencari parameter optimum untuk produk yang berbeza.

Ringkasan

Secara keseluruhan ini adalah trend yang agak mudah mengikuti strategi perdagangan. Ia menggunakan CCI untuk menentukan arah trend dan sensitif terhadap perubahan harga, digabungkan dengan penapisan EMA untuk menghasilkan isyarat. Strategi ini mempunyai beberapa kelebihan tetapi juga risiko untuk diperhatikan. Melalui pengoptimuman parameter dan menggunakan penunjuk lain, kestabilan dan prestasi langsung dapat ditingkatkan lagi. Secara keseluruhan ia menyediakan templat trend berikut yang mudah dan boleh dipercayai untuk perdagangan kuant.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CCI with EMA Strategy", overlay=false, pyramiding=1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.07)

length = input(20, minval=1)
src = input(close, title="Source")
cciSellPoint = input(0, title = 'CCI Sell Point', type = input.integer) 
cciBuyPoint = input(0, title = 'CCI Buy Buy Point', type = input.integer) 
lengthcci = input(12,"length cci ema", minval=1)

ma = sma(src, length)
cci = (src - ma) / (0.015 * dev(src, length))
cciema=ema(cci,lengthcci)
plot(cci, "CCI", color=#996A15)
plot(cciSellPoint, title = 'CCI  Sell Point', color = color.red, linewidth = 1, style = plot.style_cross, transp = 35)
plot(cciBuyPoint, title = 'CCI Buy Point', color = color.green, linewidth = 1, style = plot.style_cross, transp = 35)
plot(cciema, title = 'CCI EMA', color = color.green, linewidth = 1, transp = 35)
band1 = hline(100, "Upper Band", color=#C0C0C0, linestyle=hline.style_dashed)
band0 = hline(-100, "Lower Band", color=#C0C0C0, linestyle=hline.style_dashed)
fill(band1, band0, color=#9C6E1B, title="Background")

startLongTrade=  cciema >cciBuyPoint 
startShortTrade= cciema <cciSellPoint

//exitLong = cciema <cciSellPoint
//exitShort = cciema >cciBuyPoint 

strategy.entry("long",strategy.long, when = startLongTrade )
//strategy.close( "long", when=exitLong)
strategy.entry("short",strategy.short,when=startShortTrade )
//strategy.close("short", when=exitShort)

Lebih lanjut