
Strategi perdagangan supertrend adalah strategi pelacakan tren berdasarkan rentang rata-rata nyata (ATR) dan rata-rata bergerak (MA). Ini menggabungkan keuntungan dari mengikuti tren dan melakukan perdagangan terobosan untuk mengidentifikasi arah tren jangka menengah dan menghasilkan sinyal perdagangan sesuai dengan perubahan tren.
Gagasan utama dari strategi ini adalah bahwa ketika harga menembus saluran supertrend, menunjukkan bahwa tren telah berbalik, dan pada saat itu melakukan pembelian atau penjualan. Pada saat yang sama, ia menetapkan level stop loss dan stop loss untuk mengunci keuntungan dan mengendalikan risiko.
Proses perhitungan strategi supertrend terdiri dari beberapa langkah:
Keuntungan dari strategi ini adalah bahwa ia menggabungkan cara perdagangan yang mengikuti tren dan berbalik pada saat yang sama. Ia dapat mengetahui arah tren besar dan menangkap peluang untuk berbalik pada waktu yang tepat. Selain itu, ia juga menyiapkan mekanisme stop loss untuk mengendalikan risiko.
Strategi supertrend memiliki keuntungan sebagai berikut:
1. Melacak tren jangka menengah
Saluran tren super didasarkan pada perhitungan ATR dan dapat secara efektif mencerminkan kisaran fluktuasi harga jangka menengah.
2. Menangkap Pergeseran Tren
Ketika harga menembus saluran, sinyal perdagangan yang cepat dapat menangkap pembalikan tren besar tepat waktu. Hal ini memberikan jaminan untuk menyesuaikan posisi dengan tepat dan mengurangi kepemilikan jangka panjang.
3. Memiliki mekanisme penghentian kerusakan
Strategi ini mengatur posisi stop loss dan stop loss secara bersamaan, yang dapat secara otomatis menghentikan stop loss. Hal ini sangat mengurangi risiko stop loss yang meluas, yang membantu untuk memahami tren.
4. Cara Mudahnya
Strategi ini terutama menggunakan garis rata-rata dan indikator ATR, untuk mencapai yang relatif sederhana dan mudah dikuasai. Hal ini mengurangi kesulitan dalam operasi hard disk.
5. Efisiensi penggunaan dana
Strategi supertrend melacak tren jangka menengah, dan mengendalikan titik slippage tunggal, dengan efisiensi penggunaan dana yang lebih tinggi secara keseluruhan.
Strategi supertrend juga memiliki beberapa potensi risiko:
1. Biaya peluang yang lebih tinggi dari tren yang bergoyang
Strategi supertrend berfokus pada trend jangka menengah dan panjang, dengan biaya yang lebih tinggi di pasar yang bergejolak, dan kemungkinan kehilangan beberapa peluang shorting.
2. Parameter yang mempengaruhi efek optimasi
Periode ATR dan pilihan perkalian ATR memiliki pengaruh yang lebih besar terhadap efektivitas strategi perdagangan. Jika parameter tidak diatur dengan benar, efek sinyal perdagangan akan dikurangkan.
3. Keterlambatan
Perhitungan saluran supertrend akan memiliki keterlambatan tertentu, yang dapat menyebabkan sinyal tidak dihasilkan tepat waktu. Ini adalah masalah utama yang perlu ditangani oleh strategi ini.
4. Perlu kontrol kerusakan yang ketat
Jika posisi stop loss ditetapkan terlalu besar atau penghindaran kendali angin tidak sempurna, dalam situasi ekstrem dapat menyebabkan kerugian yang lebih besar. Oleh karena itu, strategi stop loss harus dilaksanakan secara ketat untuk mendapatkan keuntungan yang stabil.
Strategi supertrend ini juga memiliki ruang untuk pengoptimalan lebih lanjut, yang meliputi:
1. Menggabungkan beberapa siklus ATR
Beberapa siklus ATR dapat dikombinasikan, misalnya 10 dan 20 hari, untuk membentuk indikator ATR gabungan. Dengan demikian, sensitivitas indikator dapat ditingkatkan dan masalah lag dapat diperbaiki.
2. Tambahkan modul strategi stop loss
Selain itu, dengan menambahkan modul strategi seperti triple stop, stop oscillating, dan stop order, pengendalian stop loss dapat ditingkatkan lebih lanjut, sehingga mengurangi risiko kerugian.
3. Pengaturan Parameter Optimasi
Optimalkan pengaturan parameter seperti siklus ATR, perkalian ATR, mencari kombinasi parameter yang optimal, dapat meningkatkan keuntungan strategi lebih lanjut. Selain itu, parameter juga dapat dioptimalkan secara dinamis, sesuai dengan berbagai varietas dan tahap pasar memilih nilai yang sesuai.
4. Model Pembelajaran Mesin Terintegrasi
Akhirnya, model pembelajaran mesin terintegrasi dapat dicoba untuk mengotomatisasi penilaian tren dan sinyal yang dihasilkan. Hal ini dapat mengurangi gangguan dari faktor subjektif dan berpotensi meningkatkan stabilitas sistem strategi lebih lanjut.
Strategi perdagangan supertrend menggunakan indikator rata-rata dan indikator ATR untuk menilai tren menengah, dan menghasilkan sinyal perdagangan pada titik balik tren, untuk mencapai stop loss otomatis. Strategi ini menangkap tren besar, tetapi juga dapat menangkap beberapa peluang pembalikan tepat waktu. Kelebihannya terutama tercermin dalam tiga aspek pelacakan tren menengah, identifikasi pembalikan tren, dan kontrol stop loss.
Namun, ada beberapa kekurangan dalam strategi ini, terutama kurangnya pemahaman dan keterlambatan pada situasi yang bergolak. Ini memerlukan pengoptimalan dari berbagai sisi, seperti siklus ATR gabungan, peningkatan modul stop loss, pengoptimalan parameter, dan pengenalan pembelajaran mesin.
/*backtest
start: 2022-11-30 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Supertrend V1.0 - Buy or Sell Signal",overlay=true)
Factor=input(3, minval=1,maxval = 100)
Pd=input(7, minval=1,maxval = 100)
//Calculating ATR
atrLength = input(title="ATR Length:", defval=14, minval=1)
Stop_Loss_Factor = input(1.5, minval=0,step=0.01)
factor_profit = input(1.0, minval=0,step=0.01)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 4, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 10, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2016, title = "From Year", minval = 2009)
ToMonth = input(defval = 4, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 10, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2039, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
// Calculate ATR
atrValue=atr(atrLength)
decimals = abs(log(syminfo.mintick) / log(10))
Atr = atrValue
if(decimals == 5)
Atr := atrValue * 10000
if(decimals == 4)
Atr := atrValue * 1000
if(decimals == 3)
Atr := atrValue * 100
if(decimals == 2)
Atr := atrValue * 10
//VJ2 Supertrend
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
TrendUp = 0.0
TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown = 0.0
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn
Trend = 0.0
Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = 0.0
Tsl := Trend==1? TrendUp: TrendDown
linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "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)
//plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend")
plotarrow(Trend == 1 and Trend[1] == -1 ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(Trend == -1 and Trend[1] == 1 ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)
//Strategy
Trend_buy = Trend == 1
Trend_buy_prev = Trend[1] == -1
algo_buy_pre = Trend_buy and Trend_buy_prev
algo_buy = algo_buy_pre == 1 ? 1 : na
Trend_sell= Trend == -1
Trend_sell_prev = Trend[1] == 1
algo_sell_pre = Trend_sell and Trend_sell_prev
algo_sell = algo_sell_pre == 1 ? 1:na
strategy.entry("Long1", strategy.long, when= window() and algo_buy==1)
strategy.entry("Short1", strategy.short, when=window() and algo_sell==1)
bought = strategy.position_size > strategy.position_size
sold = strategy.position_size < strategy.position_size
longStop = Stop_Loss_Factor * valuewhen(bought, Atr, 0)
shortStop = Stop_Loss_Factor * valuewhen(sold, Atr, 0)
longProfit = factor_profit * longStop
shortProfit = factor_profit * shortStop
if(decimals == 5)
longStop := longStop *100000
longProfit := longProfit *100000
if(decimals == 4)
longStop := longStop * 10000
longProfit := longProfit * 10000
if(decimals == 3)
longStop := longStop * 1000
longProfit := longProfit * 1000
if(decimals == 2)
longStop := longStop * 100
longProfit := longProfit *100
if(decimals == 5)
shortStop := shortStop * 100000
shortProfit := shortProfit * 100000
if(decimals == 4)
shortStop := shortStop * 10000
shortProfit := shortProfit * 10000
if(decimals == 3)
shortStop := shortStop * 1000
shortProfit := shortProfit * 1000
if(decimals == 2)
shortStop := shortStop * 100
shortProfit := shortProfit * 100
strategy.exit("Exit Long", from_entry = "Long1", loss =longStop, profit = longProfit)
strategy.exit("Exit Short", from_entry = "Short1", loss =shortStop, profit = shortProfit)