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.
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.
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)