Chiến lược được đặt tên là
Chiến lược này sử dụng chỉ số siêu xu hướng để xác định hướng xu hướng thị trường. Supertrend được tính dựa trên phạm vi trung bình thực sự và một yếu tố. Khi giá trên đường siêu xu hướng, đó là xu hướng tăng; khi giá dưới đường siêu xu hướng, đó là xu hướng giảm. Trong chiến lược này, yếu tố được thiết lập là 3.0 và chiều dài ATR là 10.
Ngoài ra, chiến lược này sử dụng EMA 10 ngày và SMA 20 ngày để xây dựng đường trung bình động. EMA (Mức trung bình chuyển động theo cấp số) gán trọng lượng cao hơn cho giá gần đây, trong khi SMA (Mức trung bình chuyển động đơn giản) xem xét tất cả các dữ liệu có trọng lượng bằng nhau. Khi EMA ngắn hạn cao hơn SMA dài hạn, nó được coi là tín hiệu mua.
Tóm lại, logic tạo tín hiệu giao dịch là:
Mở đầu dài: siêu xu hướng > 0 (trend tăng) và EMA 10 ngày > SMA 20 ngày Mở đầu ngắn: Supertrend < 0 (downtrend) và 10-day EMA < 20-day SMA
Vì vậy, nó xác định hướng xu hướng với Supertrend và sử dụng đường chéo trung bình động để xác nhận thêm, để xây dựng xu hướng sau chiến lược này.
Ưu điểm lớn nhất của chiến lược này là kết hợp Supertrend và đường trung bình động, cải thiện cả độ tin cậy và độ nhạy.
Có một số rủi ro trong chiến lược này:
Chúng ta có thể kiểm tra các giá trị ATR và Factor khác nhau cho Supertrend, và các giá trị độ dài khác nhau cho MAs. Ngoài ra thời gian backtest nên bao gồm các môi trường thị trường khác nhau. Chi phí giao dịch nên được thêm vào giao dịch trực tiếp.
Có rất nhiều chỗ để tối ưu hóa:
Điều này có thể cải thiện hơn nữa hiệu suất và sự ổn định.
Chiến lược này kết hợp Supertrend cho hướng xu hướng và EMA + SMA chéo để tạo ra tín hiệu, một hệ thống theo xu hướng điển hình. Nó có độ tin cậy cao và rất linh hoạt để tối ưu hóa, đáng để xác minh trong giao dịch trực tiếp. Nhưng chúng ta cũng nên kiểm soát rủi ro và ngăn ngừa tối ưu hóa quá mức.
/*backtest start: 2024-01-19 00:00:00 end: 2024-02-18 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend and Moving Averages Strategy", overlay=true) // Supertrend parameters atrLength = input.int(10, title="ATR Length", minval=1) factor = input.float(3.0, title="Factor", minval=0.01, step=0.01) [supertrend, direction] = ta.supertrend(factor, atrLength) // Moving Averages parameters length_ema = input(10, title="Length of EMA") length_sma = input(20, title="Length of SMA") // Calculate EMAs and SMAs ema_10 = ta.ema(close, length_ema) sma_20 = ta.sma(close, length_sma) // Strategy logic longCondition = ema_10 > sma_20 and direction > 0 shortCondition = ema_10 < sma_20 and direction < 0 strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition) // Plot Supertrend plot(direction > 0 ? supertrend : na, color=color.green, style=plot.style_line, linewidth=2, title="Up Trend") plot(direction < 0 ? supertrend : na, color=color.red, style=plot.style_line, linewidth=2, title="Down Trend") // Plot Moving Averages plot(ema_10, color=color.blue, title="10 EMA") plot(sma_20, color=color.red, title="20 SMA") // Alerts for Supertrend alertcondition(direction[1] > direction, title='Downtrend to Uptrend', message='The Supertrend value switched from Downtrend to Uptrend ') alertcondition(direction[1] < direction, title='Uptrend to Downtrend', message='The Supertrend value switched from Uptrend to Downtrend') alertcondition(direction[1] != direction, title='Trend Change', message='The Supertrend value switched from Uptrend to Downtrend or vice versa')