
Strategi ini adalah strategi pengesanan trend yang berpangkalan pada indikator Smeared Varian Channel Index (Smeared VCI) yang diperdagangkan olehvitelot. Strategi ini menggabungkan penilaian trend dari purata bergerak dan penilaian overbought dan oversold dari indeks saluran variabel untuk menangkap arah trend utama harga.
Strategi ini menggunakan indikator Smeared VCI olehvitelot untuk menentukan arah trend. Indikator Smeared VCI diperlakukan dengan lancar berdasarkan indeks saluran varian (VCI). Ia terdiri daripada tiga parameter: EMA cepat, EMA perlahan, dan kitaran peluncur.
Strategi ini mempunyai dua syarat:
Smeared VCI atas melalui Trigger line untuk melakukan banyak isyarat; bawah melalui untuk membuat isyarat kosong
Berdagang hanya dalam tetingkap masa pengesanan
Apabila kedua-dua syarat dipenuhi pada masa yang sama, melakukan operasi lebih atau lebih rendah. Apabila keadaan kedudukan terhad berhenti atau isyarat pembalikan berlaku, kedudukan terhad.
Strategi ini mempunyai kelebihan berikut:
Menggunakan indikator trend-tracking, trend boleh dikesan dengan berkesan
Menambah pemprosesan halus untuk mengurangkan isyarat palsu
Menggunakan pengesanan tetingkap masa, ujian boleh dilakukan untuk keadaan dalam masa tertentu
Tetapkan titik berhenti untuk mengawal risiko
Kaedah mudah dan jelas untuk membuat penilaian kosong dengan parameter penunjuk
Strategi ini mempunyai beberapa risiko:
Kesilapan dalam menilai trend boleh menyebabkan kerugian
Pengaturan parameter penunjuk yang tidak betul boleh menyebabkan keuntungan yang buruk
Penetapan stop loss terlalu kecil boleh menyebabkan stop loss kecil
Jendela masa pengembalian yang tidak munasabah boleh menyebabkan keputusan ujian yang menyimpang
Penukaran ruang yang terlalu kerap boleh menyebabkan tekanan kos transaksi
Strategi ini boleh dioptimumkan dengan:
Uji kombinasi parameter yang berbeza untuk mencari parameter terbaik
Meningkatkan ketepatan penilaian dengan menggunakan penunjuk lain
Mengoptimumkan algoritma henti rugi untuk mewujudkan henti rugi yang dinamik
Optimumkan keadaan untuk membuka kedudukan dan mengelakkan perdagangan yang kerap
Uji tetingkap masa yang lebih lama untuk memastikan strategi stabil
Meningkatkan ketepatan keputusan dengan menggabungkan faktor lain seperti jumlah transaksi
Strategi ini secara keseluruhannya adalah strategi pengesanan trend yang lebih sederhana. Ia menggunakan petunjuk VCI Smeared untuk menentukan arah trend, membuka kedudukan apabila petunjuk menghantar isyarat perdagangan; mengawal risiko dengan menghentikan kerugian.
/*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)