
Strategi ini menggunakan super trend indicator assisted ordering, dan menggabungkan cloud layer dan K-line color filtering, limit ordering meningkatkan probabilitas keuntungan. Tujuannya adalah untuk menangkap tren dengan cepat setelah tren dimulai, mengurangi risiko kerugian di zona setup.
Perhitungan rata-rata harga tertinggi dan terendah dalam siklus ATR sebagai garis dasar.
Perhitungan atas dan bawah rel berdasarkan perkalian faktor.
Ketika harga closeout lebih besar dari uptrend, ditandai sebagai 1, lebih kecil dari downtrend ditandai sebagai -1, dan lain-lain tetap saat ini.
Berdasarkan hubungan posisi harga close out dan up and down, real-time adjustment of stop loss line.
Ukuran awan dihitung berdasarkan persentase dari jarak orbit atas dan bawah.
Ketika supertrend adalah 1, melakukan over membutuhkan harga penutupan di bawah harga bukaan, dan melakukan short membutuhkan harga penutupan di atas harga bukaan.
Ketika melakukan over, pasang harga beli dengan harga yang sama dengan harga penutupan K line sebelumnya. Ketika kosong, pasang harga jual dengan harga yang sama dengan harga penutupan K line sebelumnya.
Filter periode, tutup semua posisi.
Strategi ini menggabungkan indikator supertrend dan konsep cloud, yang dapat menangkap arah tren dengan cepat setelah tren dimulai. Lini stop loss supertrend dapat lebih cepat melacak perubahan harga dibandingkan dengan stop loss mobile biasa.
Indikator supertrend memiliki sensitivitas tinggi dan kemampuan untuk melacak tren.
Filter konsep cloud mengurangi kerugian akibat penembusan palsu.
K baris warna untuk membantu penilaian, hindari pembalikan.
Harga terbatas mengurangi dampak slippage dan meningkatkan probabilitas keuntungan.
Periode waktu dan manajemen posisi dapat disesuaikan untuk memenuhi kebutuhan perdagangan yang berbeda.
Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:
Jika parameter indikator supertrend tidak diatur dengan benar, maka kurva akan terlalu sensitif dan menghasilkan lebih banyak sinyal palsu.
Jika awan terlalu besar, sinyal penembusan normal dapat disaring dan mempengaruhi keuntungan.
Jika ada perubahan besar dalam harga, maka akan sulit untuk melakukan transaksi.
Tidak ada stop loss yang dapat sepenuhnya menghindari risiko sistematis kerugian besar.
Ketika posisi terlalu besar, kerugian juga akan meningkat, perlu untuk mengendalikan risiko.
Strategi ini dapat dioptimalkan dengan:
Tes berbagai pasar dan varietas untuk menemukan kombinasi parameter yang optimal untuk supertrend.
Set stop loss margin secara dinamis disesuaikan dengan tingkat volatilitas pasar.
Optimalkan ruang lingkup awan untuk mencapai keseimbangan antara penghapusan kebisingan dan penyimpanan sinyal.
Tambahkan modul optimasi posisi, agar ukuran posisi mengikuti perubahan pasar secara dinamis.
Menggunakan kombinasi parameter yang berbeda dalam periode waktu yang berbeda, sesuai dengan irama pasar.
Tes ini digunakan dalam kombinasi dengan indikator lainnya.
Secara keseluruhan, strategi ini memiliki ide yang jelas dan jelas dalam menangkap tren. Namun, tidak ada strategi yang dapat sepenuhnya menghindari risiko sistemik, perlu mengendalikan posisi, dan terus mengoptimalkan untuk mengurangi risiko yang mungkin muncul dalam perdagangan nyata, dan memaksimalkan keuntungan strategi. Strategi ini memiliki potensi pengembangan yang besar dan layak untuk diuji dan dioptimalkan untuk menyesuaikan diri dengan lingkungan pasar yang lebih berubah.
/*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()