
Strategi ini adalah berdasarkan indeks saluran komoditi klasik ((CCI), hanya melakukan lebih banyak kepala. Apabila indikator CCI berada pada tahap yang sangat rendah ((CCI <-150 atau nilai terhad yang ditentukan pengguna), dan mendapatkan semula kekuatan ((CCI> CCI garis K akar depan), dan pada masa yang sama menapis tebing kekuatan harga itu sendiri ((iaitu, harga penutupan garis K yang memberi isyarat mesti lebih tinggi daripada harga bukaan tertentu - ditetapkan pada 0.25%), sistem akan memasuki pasaran.
Strategi ini digunakan untuk mendapatkan peluang kemenangan yang tinggi (lebih daripada 50%) daripada mengejar trend sepanjang tempoh. Oleh itu, ia sesuai untuk peniaga yang tidak dapat menanggung kerugian yang berpotensi.
Menggunakan fungsi ta.sma ((() dan ta.dev ((() untuk membina penunjuk CCI dan pita antara mereka.
Gunakan input untuk memilih tarikh permulaan perdagangan, dan setkan tetingkap tindak balas.
Syarat kemasukan: Menembusi garisan rendah di bawah CCI dan mula naik, sambil meminta harga penutupan garisan K isyarat lebih tinggi daripada harga bukaan 0.25%.
Keadaan keluar 1: CCI memakai talian, berhenti dan keluar dari padang.
Syarat Keluar 2: Melebihi garis Stop Loss, Keluar dari Pertarungan.
Strategi hanya melakukan lebih banyak, memilih masa masuk berdasarkan kekuatan penunjuk CCI, sambil menggunakan risiko kawalan hentikan kerugian.
Strategi ini mempunyai kelebihan berikut:
Dengan menggunakan indikator CCI untuk mengenal pasti keadaan overbought dan oversold, ia dapat digunakan untuk merebut peluang-peluang untuk berpatah balik.
Hanya melakukan pelbagai arah, mengelakkan risiko yang terlalu besar yang boleh menyebabkan salah operasi.
Menggunakan penyaringan kekuatan harga untuk memastikan bahawa harga telah membentuk sokongan semasa masuk.
Mekanisme penangguhan kerugian mengawal kerugian tunggal dan menguruskan dana dengan berkesan.
Parameter pengesanan adalah fleksibel dan boleh disesuaikan dengan syarat penapisan masuk.
Peluang menang yang lebih tinggi, sesuai untuk pelabur yang menumpukan pada pengurusan dana.
Ia adalah strategi yang jelas, kod yang ringkas dan mudah difahami.
Strategi ini juga mempunyai risiko:
Jika anda hanya melakukan pelbagai arah, mudah untuk terlepas trend ke bawah pada garis pendek.
CCI parameter yang tidak betul boleh menyebabkan kegagalan.
Tetapan Stop Loss terlalu longgar dan tidak dapat mengawal kerugian secara berkesan.
“Saya tidak tahu apa-apa tentang itu, tetapi saya tidak tahu apa-apa tentang itu”, katanya.
Frekuensi transaksi yang terlalu tinggi menyebabkan tekanan kos transaksi.
Kaedah pengurusan risiko:
Mengoptimumkan parameter CCI untuk mencari nilai terbaik.
Menyesuaikan amplitudo hentian untuk mencari keseimbangan antara risiko dan kebarangkalian hentian untuk ditembusi.
Mengambil kira kos urus niaga, mengawal frekuensi kemasukan.
Menggabungkan trend dan penghakiman jangkaan, mengelakkan perdagangan satu arah.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Menggunakan Hentian Dinamik, menyesuaikan jarak Hentian mengikut tahap turun naik pasaran.
Menggabungkan penunjuk seperti MACD untuk mengelakkan stop loss yang terlalu longgar.
Meningkatkan peluang untuk menjual, pertimbangkan untuk membuat kosong apabila indeks CICI terlalu panas.
Mengambil kira faktor kos urus niaga dan menetapkan jarak berhenti minimum.
Parameter pengoptimuman digabungkan dengan jangka masa strategi untuk mencari kombinasi terbaik.
Mengoptimumkan parameter secara automatik menggunakan kaedah pembelajaran mesin.
Tambahan modul pengurusan wang, penyesuaian kedudukan secara dinamik.
Ringkasnya, strategi ini menggunakan ciri-ciri overbuy oversell dalam indikator CCI, melakukan lebih banyak apabila harga membentuk sokongan, mengejar perdagangan berpatutan dengan mengawal risiko kerugian. Kelebihan strategi terletak pada operasi yang mudah dan mudah, kawalan risiko berada di tempat. Kekurangan yang ada adalah hanya melakukan lebih banyak, menghentikan kerugian daripada tetap, dan lain-lain.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='CCI High Performance long only', overlay=false )
src = input(close)
length = input.int(20, title='Period', minval=1)
lossp = input.float(8, title='Stop Loss percentage', minval=0.5, step=0.5)
scart = input.float(0.25, title='Close of the signal bar higher than Open %', minval = 0)
upperline = input.int(150, title='Upper Band', minval=0, step=10)
lowline = input.int(-150, title='Low Band', maxval=0, step=10)
// construction of CCI (not on close but in totalprice) and of bands
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
plot(cci, 'CCI', color=color.new(#996A15, 0))
band1 = hline(upperline, 'Upper Band', color=#C0C0C0, linestyle=hline.style_dashed)
band0 = hline(lowline, 'Lower Band', color=#C0C0C0, linestyle=hline.style_dashed)
fill(band1, band0, color=color.new(#9C6E1B, 90), title='Background')
// === INPUT BACKTEST RANGE ===
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromDay = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromYear = input.int(defval = 2016, title = "From Year", minval = 1970)
thruMonth = input.int(defval = 1, title = "Thru Month", minval = 1, maxval = 12)
thruDay = input.int(defval = 1, title = "Thru Day", minval = 1, maxval = 31)
thruYear = input.int(defval = 2112, title = "Thru Year", minval = 1970)
// === FUNCTION EXAMPLE limit for backtest ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
//ENTRY CONDITIONS
// strategy: enter when CCI is under the low line and starts increasing. The filter is that the signal candle should mark a close higher than a x-percent
// (0.25%) of the open
// Exit when either when it reaches the target of a prices highest than high level of CCI or fixed stop loss (in percentage)
scart_level = open * (1+scart/100)
entryl = cci[1] < lowline[1] and cci > cci[1] and close > scart_level and window()
exit1 = cci> upperline
strategy.entry('Long', strategy.long, when=entryl)
strategy.close('Long', when=exit1, comment='target')
// money management (only stop loss)
losspel = strategy.position_avg_price * (1 - lossp / 100)
fixed_stop_long = close < losspel
strategy.close('Long', when=fixed_stop_long, comment='Stop Loss')