Strategi ini dinamakan
Inti strategi ini bergantung pada penunjuk Super Trend untuk menilai arah trend semasa. Penunjuk Super Trend mengira jalur atas dan bawah berdasarkan Julat Benar Purata (ATR). Apabila harga menembusi jalur atas, ia adalah isyarat kenaikan, dan apabila harga menembusi jalur bawah, ia adalah isyarat penurunan.
Apabila penunjuk Super Trend menentukan trend menaik, jika lilin adalah badan merah (tutup di bawah terbuka), pergi panjang. Apabila penunjuk Super Trend menentukan trend menurun, jika lilin adalah badan hijau (tutup di atas terbuka), pergi pendek. Ini mencapai trend berikutan perdagangan pecah momentum.
Strategi ini menggabungkan pertimbangan trend dan ciri momentum untuk menapis secara berkesan pecah palsu dan meningkatkan kesahihan isyarat perdagangan. Di samping itu, perdagangan mengikut trend mengelakkan operasi kontra trend dan sangat meningkatkan kebarangkalian keuntungan.
Kelebihan utama diringkaskan seperti berikut:
Risiko utama strategi ini ialah:
Langkah-langkah balas adalah:
Strategi ini boleh dioptimumkan dalam aspek berikut:
Secara umum, strategi ini sangat sesuai untuk kedudukan jangka sederhana dan pendek. Dengan menggabungkan penilaian trend dan momentum pecah, ia dapat menapis bunyi bising dengan berkesan dan meningkatkan kadar kemenangan. Pada masa yang sama, masih ada ruang untuk pengoptimuman parameter untuk mendapatkan prestasi strategi yang lebih baik.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy("Noro's SuperTrend Strategy v1.0", shorttitle = "ST str 1.0", 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 = Trend == 1 and close < open //and low < cline dn = Trend == -1 and close > open //and high > cline //Trading size = strategy.position_size lot = 0.0 lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1] if up strategy.entry("Long", strategy.long, needlong ? lot : 0) if dn strategy.entry("Short", strategy.short, needshort ? lot : 0)