
Strategi ini menggunakan super trend indicator untuk membantu pesanan, dan memfilterkan dengan warna awan dan K-line, untuk meningkatkan peluang keuntungan. Matlamatnya adalah untuk menangkap trend dengan cepat selepas trend bermula, untuk mengurangkan risiko kerugian di antara pusingan.
Hitung purata harga tertinggi dan terendah dalam kitaran ATR sebagai garis asas.
Perhitungan atas dan bawah landasan berdasarkan faktor.
Apabila harga penutupan lebih besar daripada naik, ia ditandakan sebagai 1, dan apabila kurang daripada turun, ia ditandakan sebagai -1, dan pada masa lain ia kekal semasa.
Berdasarkan hubungan harga penutupan dan kedudukan di atas dan di bawah landasan, garis hentian disesuaikan dalam masa nyata.
Julat awan dikira berdasarkan peratusan tertentu dari jarak orbit atas dan bawah.
Apabila trend super adalah 1, harga penutupan lebih rendah daripada harga pembukaan dan harga penutupan lebih tinggi daripada harga pembukaan.
Apabila melakukan lebih banyak, menggantung pembelian harga terhad, harga adalah harga penutupan K baris sebelumnya. Apabila kosong, menggantung menjual harga terhad, harga adalah harga penutupan K baris sebelumnya.
Tempoh penapisan, semua kedudukan boleh ditutup.
Strategi ini menggabungkan indikator supertrend dan konsep awan, yang dapat menangkap arah trend dengan cepat setelah trend dimulakan. Garis stop supertrend dapat menjejaki perubahan harga lebih cepat berbanding dengan stop loss bergerak biasa. Penapisan awan dapat mengelakkan kerugian akibat penembusan palsu.
Indikator Super Trend mempunyai kepekaan yang tinggi dan keupayaan untuk menjejaki trend.
Penapisan konsep awan mengurangkan kerugian akibat penembusan palsu.
Warna K baris membantu penilaian, mengelakkan pembalikan.
Harga terhad untuk mengurangkan kesan slippage dan meningkatkan peluang keuntungan.
Pengurusan tempoh dan kedudukan boleh disesuaikan untuk memenuhi keperluan dagangan yang berbeza.
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
Tetapan parameter penunjuk trend super yang tidak betul boleh menyebabkan keluk terlalu sensitif dan menghasilkan lebih banyak isyarat palsu.
Apabila kawasan awan terlalu besar, ia boleh menapis isyarat penembusan normal dan menjejaskan keuntungan.
Jika harga terhad tidak dapat diperdagangkan dengan baik, peluang perdagangan mungkin hilang.
Mana-mana tracking stop loss tidak dapat mengelakkan sepenuhnya risiko sistemik kerugian besar.
Apabila kedudukan terlalu besar, kerugian juga akan meningkat, dan risiko perlu dikawal.
Strategi ini boleh dioptimumkan dengan:
Uji pasaran dan varieti yang berbeza untuk mencari kombinasi parameter trend super terbaik.
Set Stop Loss Bandwidth Sesuai Dengan Ketegangan Pasaran
Mengoptimumkan jangkauan awan, mencapai keseimbangan antara penghapusan bunyi dan mengekalkan isyarat.
Tambah modul pengoptimuman kedudukan untuk membolehkan saiz kedudukan bergerak mengikut perubahan pasaran.
Menggunakan kombinasi parameter yang berbeza dalam tempoh masa yang berbeza untuk menyesuaikan diri dengan irama pasaran.
Kaedah ini digunakan dalam kombinasi dengan ujian lain.
Secara keseluruhannya, strategi ini mempunyai pemikiran keseluruhan yang jelas, kelebihan dalam menangkap trend jelas. Tetapi tidak ada strategi yang dapat sepenuhnya mengelakkan risiko sistemik, perlu mengawal kedudukan, terus mengoptimumkan untuk mengurangkan risiko yang mungkin timbul dalam perdagangan sebenar, memanfaatkan kelebihan strategi.
/*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()