Chiến lược này là một hệ thống giao dịch theo xu hướng dựa trên nhiều chỉ số kỹ thuật, kết hợp xu hướng EMA, điều kiện mua quá mức / bán quá mức RSI và chỉ số biến động ATR để cải thiện tỷ lệ thắng giao dịch và lợi nhuận thông qua phân tích thị trường đa chiều.
Chiến lược sử dụng EMA 20 ngày và 50 ngày làm cơ sở chính để xác định xu hướng. Xu hướng tăng được xác nhận khi EMA ngắn hạn vượt qua EMA dài hạn, và ngược lại. Dựa trên xác nhận xu hướng, chỉ số RSI được giới thiệu để đánh giá mua quá mức / bán quá mức, kích hoạt tín hiệu dài khi RSI giảm xuống dưới 30 trong lãnh thổ bán quá mức trong thời gian xu hướng tăng, và tín hiệu ngắn khi RSI tăng lên trên 70 trong lãnh thổ mua quá mức trong thời gian xu hướng giảm. Chỉ số ATR đo biến động thị trường, chỉ thực hiện giao dịch khi ATR vượt quá ngưỡng thiết lập để tránh giao dịch trong môi trường biến động thấp.
Chiến lược này xây dựng một hệ thống giao dịch tương đối hoàn chỉnh thông qua phân tích toàn diện về xu hướng EMA, điều kiện mua quá mức / bán quá mức RSI và biến động ATR. Ưu điểm cốt lõi của nó nằm trong xác thực chéo của nhiều chỉ số, giảm hiệu quả tác động của tín hiệu sai. Thông qua tối ưu hóa tham số và cải tiến cơ chế kiểm soát rủi ro, chiến lược vẫn có tiềm năng tối ưu hóa đáng kể. Các nhà giao dịch được khuyên phải điều chỉnh các tham số theo môi trường thị trường cụ thể và thực hiện nghiêm ngặt các biện pháp kiểm soát rủi ro khi sử dụng trong giao dịch trực tiếp.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("High Win Rate BTC Strategy", overlay=true) // 参数设置 emaShortLength = input(20, title="Short EMA Length") emaLongLength = input(50, title="Long EMA Length") rsiLength = input(14, title="RSI Length") rsiOverbought = input(70, title="RSI Overbought Level") rsiOversold = input(30, title="RSI Oversold Level") atrLength = input(14, title="ATR Length") atrThreshold = input(1.0, title="ATR Threshold") holdBars = input(5, title="Hold Bars") // 计算指标 emaShort = ta.ema(close, emaShortLength) emaLong = ta.ema(close, emaLongLength) rsi = ta.rsi(close, rsiLength) atr = ta.atr(atrLength) // 趋势确认 uptrend = emaShort > emaLong downtrend = emaShort < emaLong // 入场条件 longCondition = uptrend and close > emaShort and rsi < rsiOverbought and atr > atrThreshold shortCondition = downtrend and close < emaShort and rsi > rsiOversold and atr > atrThreshold // 出场条件 var int holdCount = 0 if (strategy.position_size > 0 or strategy.position_size < 0) holdCount := holdCount + 1 else holdCount := 0 exitCondition = holdCount >= holdBars // 执行交易 if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (exitCondition) strategy.close_all() // 绘制指标 plot(emaShort, color=color.blue, title="Short EMA") plot(emaLong, color=color.red, title="Long EMA") hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green) plot(rsi, color=color.purple, title="RSI")