Strategi pembalikan CCI 4 jam

Penulis:ChaoZhang, Tanggal: 2023-10-13 15:29:05
Tag:

Gambaran umum

Ini adalah strategi trading reversal berdasarkan indikator CCI. Ini akan membuka perdagangan reversal ketika indikator CCI menunjukkan tingkat overbought atau oversold. Secara keseluruhan, strategi ini memanfaatkan fitur overbought dan oversold dari indikator CCI untuk menangkap peluang reversal harga.

Logika Strategi

Pertama, strategi ini didasarkan pada indikator CCI.

CCI = (Typical Price - Simple Moving Average) / (0,015 * Standar Deviasi)

Di mana, Harga Tipikal = (Paling Tinggi + Terendah + Tutup) / 3 Rata-rata Gerak Sederhana = Rata-rata Gerak Harga Tipikal selama N hari terakhir
Standar Deviasi = Akar kuadrat dari varians Harga Tipikal selama N hari terakhir

Strategi ini menggunakan indikator CCI 11 periode dan -150 ditetapkan sebagai tingkat oversold, sementara 150 sebagai tingkat overbought.

Pada setiap penutupan bar, indikator CCI 11 periode akan diperiksa. Jika CCI melintasi di bawah -150, sinyal panjang akan dihasilkan. Jika CCI melintasi di atas 150, sinyal pendek akan dihasilkan.

Setelah menerima sinyal, pesanan pasar akan digunakan untuk membuka posisi. target keuntungan 1% dan stop loss 0,5% ditetapkan.

Analisis Keuntungan

  1. Menggunakan indikator CCI dapat secara efektif menangkap peluang pembalikan harga
  2. Parameter CCI dapat disesuaikan untuk optimalisasi
  3. Target laba tetap dan rasio stop loss secara efektif mengendalikan risiko
  4. Logika strategi yang sederhana dan jelas, mudah dimengerti dan diterapkan

Analisis Risiko

  1. Indikator CCI dapat menghasilkan banyak sinyal palsu, sinyal masuk mungkin tidak dapat diandalkan
  • Solusi: Optimalkan parameter CCI, tambahkan filter dengan indikator lain
  1. Target laba tetap dan rasio stop loss mungkin tidak cocok untuk produk yang berbeda
  • Solusi: Tambahkan target keuntungan dinamis dan stop loss
  1. Strategi hanya bergantung pada CCI, risiko tidak efektifnya tinggi
  • Solusi: Gabungkan beberapa indikator untuk meningkatkan ketahanan
  1. Tidak ada pertimbangan pada biaya perdagangan, pertunjukan langsung dapat menderita
  • Solusi: Tambahkan kontrol slippage, mengurangi frekuensi perdagangan

Arahan Optimasi

  1. Mengoptimalkan parameter CCI untuk menemukan kombinasi parameter yang lebih baik
  2. Tambahkan indikator lain seperti MACD, KDJ untuk penyaringan sinyal
  3. Mengembangkan target keuntungan dinamis dan stop loss daripada rasio tetap
  4. Mengoptimalkan strategi untuk mengurangi frekuensi perdagangan, mengurangi dampak biaya perdagangan
  5. Melakukan optimasi backtesting untuk menemukan kombinasi parameter terbaik untuk perdagangan langsung

Ringkasan

Strategi pembalikan CCI 4 jam adalah strategi sederhana yang menggunakan indikator CCI untuk perdagangan pembalikan. Ini memiliki keuntungan logika yang jelas dan penerapan yang mudah. Tetapi juga memiliki kelemahan seperti sinyal CCI yang tidak dapat diandalkan dan target keuntungan / stop loss yang tidak fleksibel. Perbaikan lebih lanjut dapat dilakukan dengan mengoptimalkan parameter CCI, menambahkan indikator filter, mengembangkan exit dinamis, dll. Secara keseluruhan strategi ini memberikan ide berbasis CCI untuk perdagangan kuantitatif, tetapi membutuhkan optimasi lebih lanjut sebelum aplikasi langsung.


/*backtest
start: 2023-09-12 00:00:00
end: 2023-10-12 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("4H CCI Strategy", overlay=true)
length = input( 11 )
overSold = input( -150 )
overBought = input( +150 )
price1 = high
price2 = low
ucci = cci(price1, length)
dcci = cci(price2, length)
vcci = cci(ohlc4, 11)

resCustom = input(title="Timeframe", defval="15")
Length = input(16, minval=1)
xPrice = request.security(syminfo.tickerid, resCustom, hlc3)
xvnoise = abs(xPrice - xPrice[1])
nfastend = 0.666
nslowend = 0.0645
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]))
basis1 = nAMA
slope = change(basis1,1)

if (not na(vcci))
    if (crossover(dcci, overSold))
        strategy.entry("CCILE", strategy.long, comment="CCILE")
        strategy.exit("exit", "CCILE", profit = 0.01, loss = 0.005)
    if (crossunder(ucci, overBought))
        strategy.entry("CCISE", strategy.short, comment="CCISE")
        strategy.exit("exit", "CCISE", profit = 0.01, loss = 0.005)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Lebih banyak