Ini adalah strategi perdagangan pembalikan berdasarkan penunjuk CCI. Ia akan membuka perdagangan pembalikan apabila penunjuk CCI menunjukkan tahap overbought atau oversold. Secara keseluruhan, strategi ini menggunakan ciri-ciri overbought dan oversold penunjuk CCI untuk menangkap peluang pembalikan harga.
Pertama, strategi ini berdasarkan kepada penunjuk CCI.
CCI = (Harga Tipikal - Purata Bergerak Sederhana) / (0.015 * Penyimpangan Standard)
Di mana,
Harga Tipikal = (Paling Tinggi + Terendah + Tutup) / 3
Purata Bergerak Sederhana = Purata Bergerak Harga Tipikal selama N hari yang lalu
Pengecualian standard = akar kuasa dua dari variasi Harga Tipikal selama N hari yang lalu
Strategi ini menggunakan penunjuk CCI 11 tempoh. dan -150 ditetapkan sebagai tahap oversold, manakala 150 sebagai tahap overbought.
Pada setiap bar ditutup, penunjuk CCI 11 tempoh akan diperiksa. Jika CCI melintasi di bawah -150, isyarat panjang dihasilkan. Jika CCI melintasi di atas 150, isyarat pendek dihasilkan.
Selepas menerima isyarat, pesanan pasaran akan digunakan untuk membuka kedudukan.
Strategi pembalikan CCI 4 jam adalah strategi mudah yang menggunakan penunjuk CCI untuk perdagangan pembalikan. Ia mempunyai kelebihan logik yang jelas dan pelaksanaan yang mudah. Tetapi ia juga mempunyai kelemahan seperti isyarat CCI yang tidak boleh dipercayai dan sasaran keuntungan / stop loss yang tidak fleksibel. Penambahbaikan lanjut boleh dibuat dengan mengoptimumkan parameter CCI, menambah penunjuk penapis, membangunkan keluar dinamik, dll. Secara keseluruhan strategi ini memberikan idea berasaskan CCI untuk perdagangan kuantitatif, tetapi memerlukan pengoptimuman 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)