
Strategi ini adalah sistem perdagangan mengikuti tren tingkat lanjut berdasarkan indikator Supertrend, yang menggabungkan berbagai mekanisme konfirmasi sinyal dan manajemen posisi dinamis. Inti dari strategi ini adalah menghitung garis Supertrend melalui ATR (average true range), dan menghasilkan sinyal perdagangan berdasarkan tren harga dan jendela waktu penahanan untuk mencapai penangkapan tren pasar yang cerdas.
Strategi ini menggunakan mekanisme penyaringan sinyal tiga lapis:
Dalam hal manajemen modal, strategi ini menggunakan 15% ekuitas akun sebagai volume transaksi tunggal. Kontrol posisi konservatif ini membantu manajemen risiko.
Ini adalah strategi pelacakan tren dengan struktur lengkap dan logika yang ketat. Strategi ini memiliki nilai aplikasi praktis yang baik melalui berbagai mekanisme konfirmasi sinyal dan sistem manajemen risiko yang lengkap. Strategi ini sangat terukur, dan stabilitas serta profitabilitasnya dapat ditingkatkan lebih lanjut melalui arahan pengoptimalan yang direkomendasikan.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy", overlay=true)
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step=0.01)
// Compute supertrend values
[supertrendValue, supertrendDirection] = ta.supertrend(factor, atrPeriod)
var float direction = na
if not na(supertrendDirection[1]) and supertrendDirection[1] != supertrendDirection
direction := supertrendDirection > 0 ? 1 : -1
// Variables to track conditions
var int lastShortTime = na
var int lastLongTime = na
// Detecting short and long entries
if direction == -1
strategy.entry("My Short Entry Id", strategy.short)
lastShortTime := bar_index
if direction == 1
strategy.entry("My Long Entry Id", strategy.long)
lastLongTime := bar_index
// Custom signal logic
bool bullishSignal = false
bool bearishSignal = false
// Define bullish signal conditions
if not na(lastShortTime) and (bar_index - lastShortTime >= 15 and bar_index - lastShortTime <= 19)
if close > open and close[1] > open[1] and close[2] > open[2]
bullishSignal := true
// Define bearish signal conditions
if not na(lastLongTime) and (bar_index - lastLongTime >= 15 and bar_index - lastLongTime <= 19)
if close < open and close[1] < open[1] and close[2] < open[2]
bearishSignal := true
// Plot signals
if bullishSignal
strategy.entry("Bullish Upward Signal", strategy.long)
label.new(bar_index, close, text="Bullish", style=label.style_circle, color=color.green, textcolor=color.white)
if bearishSignal
strategy.entry("Bearish Downward Signal", strategy.short)
label.new(bar_index, close, text="Bearish", style=label.style_circle, color=color.red, textcolor=color.white)
// Optionally plot the strategy equity
//plot(strategy.equity, title="Equity", color=color.red, linewidth=2, style=plot.style_areabr)