
Strategi ini didasarkan pada indikator Average True Range (ATR) untuk membangun saluran supertrend (SuperTrend) dan menghasilkan sinyal beli dan jual berdasarkan harga yang menerobos saluran supertrend. Strategi ini menggabungkan keuntungan dari pelacakan tren dan manajemen stop loss untuk secara efektif melacak arah tren.
Jalur tren super dihitung dengan rumus berikut:
Uptrend = (harga tertinggi + harga terendah) / 2 + ATR (n) * faktor Jalur bawah = (harga tertinggi + harga terendah) / 2 - ATR (n) * faktor
Di antaranya, ATR ((n) adalah rata-rata amplitudo riil selama n hari, dengan faktor sebagai parameter yang dapat disesuaikan, dengan default 3.
Ketika harga closeout lebih tinggi dari uptrend adalah sinyal bullish, dan ketika harga closeout lebih rendah dari downtrend adalah sinyal bearish. Strategi menentukan masuk dan keluar berdasarkan sinyal bullish dan bearish.
Solusi untuk Mengatasi Risiko:
Strategi ini menggunakan saluran hypertrend untuk melakukan pelacakan tren dan manajemen stop loss. Pertandingan siklus ATR dan parameter faktor sangat penting untuk efektivitas strategi. Langkah selanjutnya adalah untuk mengoptimalkan strategi lebih lanjut dari segi optimasi parameter, pemfilteran sinyal, dan lain-lain, sehingga dapat beradaptasi dengan lingkungan pasar yang lebih kompleks.
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Backtest", shorttitle="STBT", overlay=true)
// Input for ATR Length
atrLength = input.int(10, title="ATR Length", minval=1)
atrFactor = input.float(3.0, title="Factor", minval=0.01, step=0.01)
// Calculate SuperTrend
[supertrend, direction] = ta.supertrend(atrFactor, atrLength)
supertrend := barstate.isfirst ? na : supertrend
// Define entry and exit conditions
longCondition = ta.crossover(close, supertrend)
shortCondition = ta.crossunder(close, supertrend)
// Plot the SuperTrend
plot(supertrend, color=color.new(color.blue, 0), title="SuperTrend")
// Plot Buy and Sell signals
plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")
// Strategy Entry and Exit
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)