Strategi ini menggunakan indikator Super Trend untuk membantu dalam menempatkan order, dan filter oleh lapisan awan dan warna candlestick untuk menempatkan limit order untuk meningkatkan profitabilitas.
Menghitung rata-rata harga tertinggi dan terendah dalam periode ATR sebagai garis dasar.
Hitung band atas dan bawah berdasarkan faktor pengganda.
Ketika dekat berada di atas band atas, tanda sebagai 1; di bawah band bawah, tanda sebagai -1. Jika tidak, mempertahankan keadaan sebelumnya.
Secara dinamis menyesuaikan garis stop loss berdasarkan posisi harga penutupan relatif terhadap band atas/bawah.
Menghitung rentang lapisan awan berdasarkan persentase interval band atas/bawah tertentu.
Untuk panjang, perlu tutup < terbuka ketika Super Trend adalah 1.
Tempatkan limit buy order pada harga penutupan bar sebelumnya untuk long.
Filter dengan rentang waktu, tutup semua posisi yang tersedia.
Strategi ini menggabungkan konsep Super Trend dan cloud, yang memungkinkan penangkapan tren cepat setelah tren dimulai. Stop loss Super Trend merespons lebih cepat daripada stop loss bergerak normal. Lapisan awan menghindari kerugian dari breakout palsu. Limit order mengurangi slippage dan meningkatkan profitabilitas. Keuntungan utama adalah:
Super Trend sangat sensitif dan melacak tren dengan kuat.
Filter lapisan awan mengurangi kerugian dari kebocoran palsu.
Warna candlestick membantu menghindari pembalikan.
Limit order mengurangi dampak slippage dan meningkatkan tingkat kemenangan.
Jangka waktu dan manajemen posisi yang dapat disesuaikan sesuai dengan kebutuhan perdagangan yang berbeda.
Ada juga beberapa risiko yang perlu dicatat:
Parameter Super Trend yang tidak tepat dapat menyebabkan terlalu banyak sensitivitas dan whipsaws.
Jangkauan awan yang berlebihan dapat menyaring sinyal breakout yang valid, yang berdampak pada profitabilitas.
Orde batas mungkin tidak diisi selama volatilitas tinggi, kesempatan yang hilang.
Tidak ada stop loss dapat sepenuhnya menghindari risiko sistemik dan kerugian besar.
Ukuran posisi yang lebih besar juga memperkuat kerugian.
Strategi ini dapat ditingkatkan dalam hal berikut:
Uji pasar dan instrumen yang berbeda untuk parameter Super Trend yang optimal.
Mengatur secara dinamis tingkat stop loss berdasarkan volatilitas pasar.
Optimalkan jangkauan awan untuk menyeimbangkan penyaringan kebisingan dan retensi sinyal.
Tambahkan modul ukuran posisi ke posisi ukuran dinamis berdasarkan kondisi pasar.
Menggunakan set parameter yang berbeda untuk sesi perdagangan yang berbeda untuk beradaptasi dengan ritme pasar.
Efektivitas uji jika dikombinasikan dengan indikator lain.
Pada akhirnya, strategi ini memiliki logika yang jelas dan keuntungan yang jelas dalam menangkap tren. Tetapi tidak ada strategi yang dapat sepenuhnya menghindari risiko sistemik. Perlu mengendalikan ukuran posisi, terus mengoptimalkan untuk meminimalkan risiko dalam perdagangan langsung, dan memaksimalkan tepi. Strategi ini memiliki potensi besar untuk pengujian lebih lanjut dan peningkatan untuk beradaptasi dengan dinamika pasar yang berkembang.
/*backtest start: 2023-10-03 00:00:00 end: 2023-11-02 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy("Noro's SuperTrend Strategy v2.0 Limit", shorttitle = "STL str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") cloud = input(25, defval = 25, minval = 5, maxval = 50, title = "cloud, % of ATR") Factor = input(title = "Super Trend", defval = 3, minval = 1, maxval = 100) ATR = input(title = "ATR", defval = 7, minval = 1,maxval = 100) centr = input(true, defval = true, title = "need center of ATR?") border = input(false, defval = false, title = "need border?") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Super Trend ATR 1 src = close Up=hl2-(Factor*atr(ATR)) Dn=hl2+(Factor*atr(ATR)) TUp=close[1]>TUp[1]? max(Up,TUp[1]) : Up TDown=close[1]<TDown[1]? min(Dn,TDown[1]) : Dn Trend = close > TDown[1] ? 1: close< TUp[1]? -1: nz(Trend[1],1) Tsl1 = Trend==1? TUp: TDown Tsl2 = Trend==1? TDown: TUp limit = (Tsl1 - Tsl2) / 100 * cloud upcloud = Tsl1 - limit dncloud = Tsl2 + limit //Cloud linecolor = Trend == 1 ? green : red centercolor = centr == true ? blue : na cloudcolor = Trend == 1 ? green : red cline = (Tsl1 + Tsl2) / 2 P1 = plot(Tsl1, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-1") P2 = plot(Tsl2, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-2") P3 = plot(cline, color = centercolor , style = line , linewidth = 1,title = "SuperTrend Center") P4 = plot(upcloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center+1") P5 = plot(dncloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center-1") fill(P1, P4, color = linecolor == red ? red : lime, transp = 50) fill(P2, P5, color = linecolor == red ? red : lime, transp = 50) //Signals up = 0.0 dn = 0.0 up := Trend != 1 ? 0 : Trend == 1 and close < open ? close : up[1] dn := Trend != -1 ? close * 1000 : Trend == -1 and close > open ? close : dn[1] //Trading size = strategy.position_size lot = 0.0 lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1] if true strategy.entry("Long", strategy.long, needlong ? lot : 0, limit = up, when = (Trend == 1 and time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) strategy.entry("Short", strategy.short, needshort ? lot : 0, limit = dn, when = (Trend == -1 and time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()