Strategi ini menggabungkan dua purata bergerak dan penunjuk Supertrend untuk membina isyarat perdagangan dan menilai arah trend melalui kombinasi kitaran yang berbeza untuk mencapai keuntungan yang tinggi.
Strategi ini menggunakan penunjuk MACD dan Supertrend untuk menentukan masa kemasukan pasaran. purata bergerak ganda MACD menentukan arah trend jangka pendek, sementara Supertrend menentukan arah trend jangka sederhana hingga panjang.
Apabila garisan pantas menembusi garisan perlahan ke atas, ia adalah isyarat beli. Pada masa ini, jika Supertrend jangka menengah hingga panjang juga merupakan trend menaik, isyarat beli akhir dihasilkan untuk pergi panjang. Sebaliknya, apabila garisan pantas menembusi garisan perlahan ke bawah, ia adalah isyarat jual. Pada masa ini, jika Supertrend jangka menengah hingga panjang juga adalah trend menurun, isyarat jual akhir dihasilkan untuk pergi pendek.
Stop loss dan mengambil keuntungan ditetapkan pada nilai tetap.
Kelebihan terbesar strategi ini adalah bahawa ia menggunakan kedua-dua purata bergerak dan Supertrend untuk menentukan arah pasaran, menggabungkan analisis jangka pendek dan jangka panjang untuk meningkatkan kecekapan keputusan dan mengelakkan pecah palsu.
Risiko utama strategi ini adalah bahawa tetapan stop loss tetap dan mengambil keuntungan mungkin kehilangan peluang keuntungan yang lebih besar. Di samping itu, jika terdapat perbezaan antara penilaian jangka pendek dan jangka panjang, strategi tidak akan berfungsi dengan baik. Kita boleh mengurangkan risiko ini melalui tetapan stop loss terapung dan mengambil keuntungan.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Meningkatkan mekanisme pelarasan dinamik untuk menghentikan kerugian dan mengambil keuntungan, dan menetapkan berhenti kerugian dan mengambil keuntungan mengikut turun naik pasaran dan trend.
Mengoptimumkan parameter MACD untuk mencari parameter purata bergerak yang lebih sesuai untuk pelbagai sasaran.
Mengoptimumkan parameter Supertrend untuk menyesuaikan sensitiviti ke pasaran.
Meningkatkan penunjuk lain untuk penilaian untuk memberikan isyarat yang lebih berdimensi dan meningkatkan prestasi strategi.
Strategi ini berjaya menggabungkan kelebihan purata bergerak berganda dan penunjuk Supertrend. Dengan menggabungkan penilaian kitaran yang berbeza, ia menapis isyarat yang salah dan memperoleh pulangan yang lebih baik di pasaran trend. Kami dapat meningkatkan kestabilan dan keuntungan strategi ini melalui pengoptimuman parameter dan penyesuaian mekanisme.
/*backtest start: 2024-01-28 00:00:00 end: 2024-02-04 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator strategy("Super Trend 2 MACD", overlay=true) // MACD input source = input(close) fastLength = input(12, minval=1, title="MACD fast moving average") slowLength=input(26,minval=1, title="MACD slow moving average") signalLength=input(9,minval=1, title="MACD signal line moving average") // Calculation fastMA = sma(source, fastLength) slowMA = sma(source, slowLength) Macd = fastMA - slowMA Signal = sma(Macd, signalLength) res = input(title="Main SuperTrend Time Frame", defval="120") Factor=input(1, minval=1,maxval = 100) Pd=input(1, minval=1,maxval = 100) tp = input(500,title="Take Profit") sl = input(400,title="Stop Loss") Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) MUp=request.security(syminfo.tickerid,res,hl2-(Factor*atr(Pd))) MDn=request.security(syminfo.tickerid,res,hl2+(Factor*atr(Pd))) Mclose=request.security(syminfo.tickerid,res,close) TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn MTrendUp=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp MTrendDown=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown MTrend = Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1) MTsl = MTrend==1? MTrendUp: MTrendDown linecolor = Trend == 1 ? green : red plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend") Mlinecolor = MTrend == 1 ? blue : orange plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend") plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0) plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0) up = Trend == 1 and Trend[1] == -1 and MTrend == 1 down = Trend == -1 and Trend[1] == 1 and MTrend == -1 plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0) plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0) golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 and Macd > Signal goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 and Macd < Signal strategy.entry("Buy", strategy.long,when=golong) strategy.exit("Close Buy","Buy",profit=tp,loss=sl) strategy.entry("Sell", strategy.short,when=goshort) strategy.exit("Close Sell","Sell",profit=tp,loss=sl)