
Chiến lược này là một hệ thống theo dõi xu hướng dựa trên các chỉ số RSI và Supertrend, kết hợp với biến động ATR để quản lý rủi ro. Chiến lược xác định thời điểm vào thị trường bằng cách phán đoán các tín hiệu xu hướng và khu vực mua bán quá mức, và sử dụng các động thái dừng lỗ dựa trên biến động của thị trường để quản lý rủi ro. Chiến lược này sử dụng chu kỳ 15 phút, sử dụng quy tắc quản lý vốn 15% theo mặc định.
Chiến lược này dựa trên các yếu tố cốt lõi sau:
Đây là một chiến lược theo dõi xu hướng có cấu trúc, logic rõ ràng. Bằng cách kết hợp ba chỉ số Supertrend, RSI và ATR, tập trung vào kiểm soát rủi ro trong khi nắm bắt xu hướng. Ưu điểm cốt lõi của chiến lược là khả năng tự điều chỉnh và khung quản lý rủi ro, nhưng trong ứng dụng thực tế, vẫn cần điều chỉnh và tối ưu hóa các tham số thích hợp theo môi trường thị trường.
/*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)