Strategi ini adalah sistem perdagangan trend-mengikuti maju berdasarkan penunjuk Supertrend, menggabungkan pelbagai mekanisme pengesahan isyarat dan pengurusan kedudukan dinamik. Inti strategi mengira garis Supertrend menggunakan ATR (Rentang Benar Purata) dan menghasilkan isyarat perdagangan dengan menggabungkan pergerakan harga dan tingkap masa kedudukan untuk mencapai tangkapan trend pasaran yang pintar.
Strategi ini menggunakan mekanisme penapisan isyarat tiga lapisan:
Strategi ini menggunakan 15% daripada ekuiti akaun sebagai saiz kedudukan setiap perdagangan, menyokong pengurusan risiko konservatif.
Ini adalah strategi trend yang berstruktur dengan baik dan secara logik ketat dengan nilai aplikasi praktikal melalui mekanisme pengesahan isyarat berbilang dan sistem pengurusan risiko yang komprehensif.
/*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)