
Strategi ini menggabungkan dua indikator, yaitu garis rata ganda dan SuperTrend, untuk membangun sinyal perdagangan, dan menggabungkannya dengan berbagai siklus untuk menentukan arah tren, untuk menghasilkan keuntungan yang efisien.
Strategi ini menggunakan MACD dan SuperTrend untuk menentukan waktu masuk ke pasar. Di antaranya, MACD menentukan arah tren jangka pendek, dan Supertrend menentukan arah tren jangka panjang.
Ketika garis cepat dari bawah ke atas menerobos garis lambat untuk membeli sinyal, pada saat ini jika jangka menengah Supertrend sama dengan tren naik, maka menghasilkan final membeli sinyal, melakukan lebih; sebaliknya, ketika garis cepat dari atas ke bawah menerobos garis lambat untuk menjual sinyal, pada saat ini jika jangka menengah Supertrend sama dengan tren turun, maka menghasilkan final menjual sinyal, melakukan kosong.
Stop Loss dan Stop Stop diatur menjadi nilai tetap.
Keuntungan terbesar dari strategi ini adalah bahwa dengan menggunakan dua garis rata-rata dan SuperTrend pada saat yang sama untuk menentukan arah pasar, kombinasi jangka pendek dan jangka panjang, meningkatkan efisiensi pengambilan keputusan secara signifikan dan menghindari terjadinya terobosan palsu. Selain itu, Supertrend dapat menyesuaikan parameter berdasarkan volatilitas pasar dan menyesuaikan diri dengan lingkungan pasar yang lebih luas.
Risiko utama dari strategi ini adalah bahwa pengaturan stop loss tetap dapat kehilangan ruang keuntungan yang lebih besar. Selain itu, strategi tidak dapat bekerja dengan baik jika ada perbedaan dalam penilaian jangka pendek dan jangka panjang. Kita dapat mengurangi risiko ini dengan pengaturan stop loss floating.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Menambahkan mekanisme penyesuaian stop loss yang dinamis, mengatur stop loss sesuai dengan volatilitas dan tren pasar.
Optimalkan parameter MACD untuk menemukan parameter rata-rata yang lebih cocok untuk varietas target.
Mengoptimalkan parameter Supertrend, menyesuaikan sensitivitasnya terhadap pasar.
Menambahkan penilaian indikator lainnya, memberikan sinyal yang lebih berdimensi, dan meningkatkan efektivitas strategi.
Strategi ini berhasil menggabungkan keunggulan dari dua indikator, Garis Dua dan SuperTrend, untuk memfilter sinyal yang salah melalui penilaian kombinasi dari siklus yang berbeda, sehingga menghasilkan keuntungan yang lebih baik di pasar tren. Kita dapat meningkatkan stabilitas dan profitabilitas strategi ini lebih lanjut dengan pengoptimalan 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)