Strategi ini adalah trend mengikuti strategi yang berdagang berdasarkan Indeks Saluran Variabiliti Smeared (Smeared VCI) penunjuk oleh vitelot. Ia menggabungkan penilaian trend purata bergerak dan penilaian overbought / oversold VCI untuk menangkap arah trend utama harga. Apabila harga berjalan ke dalam keadaan overbought atau oversold, operasi terbalik diambil untuk keuntungan.
Strategi ini menggunakan vitelot
Terdapat dua syarat yang ditetapkan dalam strategi:
Pembebasan VCI di atas garis Trigger adalah isyarat panjang, dan memintas di bawah isyarat pendek.
Hanya berdagang dalam tetingkap masa backtest.
Apabila kedua-dua syarat dipenuhi, kedudukan panjang atau pendek akan diambil.
Kelebihan strategi ini ialah:
Menggunakan trend berikut penunjuk, ia boleh dengan berkesan mengesan trend.
Proses pelinciran mengurangkan isyarat palsu.
Ujian balik dalam tetingkap masa memberi tumpuan kepada tempoh tertentu.
Set stop loss mengawal risiko.
Menggunakan parameter penunjuk untuk keputusan panjang/pendek menjadikan peraturan mudah dan jelas.
Terdapat juga beberapa risiko dalam strategi ini:
Penghakiman trend mungkin salah, membawa kepada kerugian.
Tetapan parameter penunjuk yang tidak betul boleh membawa kepada keuntungan yang rendah.
Tetapan stop loss yang terlalu kecil boleh menyebabkan berhenti dengan cepat.
Jendela masa backtest yang tidak betul boleh membawa kepada hasil ujian yang berat sebelah.
Pertukaran panjang/pendek yang terlalu kerap boleh menyebabkan tekanan komisen.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Uji kombinasi parameter yang berbeza untuk mencari parameter yang optimum.
Gunakan penunjuk lain untuk pengesahan untuk meningkatkan ketepatan.
Mengoptimumkan algoritma stop loss untuk mencapai stop loss trailing dinamik.
Mengoptimumkan keadaan kemasukan untuk mengelakkan perdagangan berlebihan.
Uji tingkap masa yang lebih lama untuk mengesahkan kestabilan.
Sertakan faktor lain seperti jumlah untuk meningkatkan ketepatan keputusan.
Ringkasnya, ini adalah strategi trend berikut yang agak mudah. Ia menggunakan penunjuk VCI Smeared untuk menentukan arah trend dan kedudukan terbuka apabila isyarat perdagangan dihasilkan. Risiko dikawal oleh stop loss. Strategi ini mempunyai keupayaan trend berikut tetapi juga mempunyai beberapa risiko. Penambahbaikan lanjut boleh dibuat melalui pengoptimuman parameter, pengoptimuman kehilangan berhenti dan menambah syarat pengesahan untuk menjadikannya sistem perdagangan yang stabil dan boleh dipercayai.
/*backtest start: 2023-10-15 00:00:00 end: 2023-11-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Smeared VCI Backtest", overlay=false, shorttitle="SVCI Backtest", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5) // Smeared Variability Channel Index // a variation of the VCI indicator of the same author. // The orange line over the lime line is bullish; // The lime line over the orange one is bearish. // // vitelot/yanez/Vts // Feb 2019 // src = close ep1 = input(5, minval=1, title="Fast EMA period") ep2 = input(13, minval=2, title="Slow EMA period") sm = input(34, minval=1, title="Smearing period") tp = input(13, minval=1, title="Trigger line period") fixedSL = input(title="SL Activation", defval=300) trailSL = input(title="SL Trigger", defval=1) fixedTP = input(title="TP Activation", defval=150) trailTP = input(title="TP Trigger", defval=1) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2019, title = "From Year", minval = 2017) ToMonth = input(defval = 6, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 19, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2030, title = "To Year", minval = 2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window startTimeOk() => time >= start and time <= finish ? true : false // create function "within window of time" if statement true atrP = 96 e1 = ema(src,ep1) e2 = ema(src,ep2) vci = (e1-e2)/atr(atrP) svci = sma(vci,sm) t = sma(svci,tp) plot(svci, color=lime, linewidth=3, transp=0, title="Smeared VCI") plot(t, color=orange, linewidth=3, transp=0, title="Trigger line") hline(0, title="Reference line") long = crossover(svci,t) short = crossover(t,svci) // === STRATEGY - LONG POSITION EXECUTION === strategy.entry("Long", strategy.long, when= long and startTimeOk()) strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP) strategy.exit("Exit", when= short) // === STRATEGY - SHORT POSITION EXECUTION === strategy.entry("Short", strategy.short, when= short and startTimeOk()) strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP) strategy.exit("Exit", when= long)