
Strategi ini adalah sistem trend-tracking berdasarkan RSI dan indikator Supertrend, yang digabungkan dengan kadar ATR yang berfluktuasi untuk pengurusan risiko. Strategi ini menentukan masa masuk dengan menilai isyarat trend dan kawasan overbought dan oversold, dan menggunakan stop loss yang dinamik berdasarkan turun naik pasaran untuk menguruskan risiko. Strategi ini menggunakan kitaran masa 15 minit, menggunakan peraturan pengurusan wang 15% secara lalai.
Strategi ini bertumpu kepada beberapa elemen utama:
Ini adalah strategi pengesanan trend yang lengkap dan logik. Dengan menggabungkan tiga indikator Supertrend, RSI dan ATR secara organik, strategi ini memberi tumpuan kepada kawalan risiko sambil menangkap trend. Kelebihan utama strategi ini adalah kerangka penyesuaian dan pengurusan risiko, tetapi dalam aplikasi sebenar, ia masih memerlukan penyesuaian dan pengoptimuman parameter yang sesuai mengikut keadaan pasaran.
/*backtest
start: 2023-12-02 00:00:00
end: 2024-11-28 08:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("ETH Signal 15m", overlay=true)
// Backtest period
start_time = input(timestamp("2024-08-01 00:00"), title="Backtest Start Time")
end_time = input(timestamp("2054-01-01 00:00"), title="Backtest End Time")
atrPeriod = input(12, "ATR Length")
factor = input.float(2.76, "Factor", step=0.01)
rsiLength = input(12, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
[_, direction] = ta.supertrend(factor, atrPeriod)
rsi = ta.rsi(close, rsiLength)
// Ensure current time is within the backtest period
in_date_range = true
// Long condition: Supertrend buy signal and RSI not overbought
if in_date_range and ta.change(direction) < 0 and rsi < rsiOverbought
strategy.entry("Long", strategy.long)
// Short condition: Supertrend sell signal and RSI not oversold
if in_date_range and ta.change(direction) > 0 and rsi > rsiOversold
strategy.entry("Short", strategy.short)
// Optional: Add stop loss and take profit using ATR
atr = ta.atr(atrPeriod)
strategy.exit("Exit Long", "Long", stop=close - 4 * atr, limit=close + 2 * atr)
strategy.exit("Exit Short", "Short", stop=close + 4 * atr, limit=close - 2.237 * atr)