Chiến lược này sử dụng các tín hiệu chéo của chỉ số RSI và hai đường EMA để xác định các điểm mua và bán. Một tín hiệu mua được tạo ra khi giá đóng giảm xuống dưới cả EMA100 và EMA20, và giá trị RSI dưới 30. Một tín hiệu bán được tạo ra khi giá đóng phá vỡ trên cả EMA100 và EMA20, và giá trị RSI trên 70. Ý tưởng chính của chiến lược này là sử dụng chỉ số RSI để đánh giá các điều kiện mua quá mức và bán quá mức, kết hợp với phán đoán xu hướng của các đường EMA, để nắm bắt các điểm thấp và cao của biến động thị trường và thực hiện các hoạt động mua thấp và bán cao.
Chiến lược số lượng tín hiệu chéo RSI và EMA đôi là một chiến lược giao dịch định lượng đơn giản và thực tế. Bằng cách kết hợp chỉ số RSI với trung bình di chuyển EMA, nó có thể nắm bắt tốt hơn các mức cao và thấp trong một thị trường biến động và điều hành điều khoản điều khoản. Tuy nhiên, chiến lược này cũng có một số hạn chế và rủi ro, chẳng hạn như thất bại trong thị trường xu hướng, thiếu quản lý vị trí và các biện pháp kiểm soát rủi ro, vv. Do đó, trong ứng dụng thực tế, nó cần được tối ưu hóa và cải thiện phù hợp theo đặc điểm thị trường và sở thích cá nhân để cải thiện độ bền và lợi nhuận của chiến lược. Chiến lược này có thể được sử dụng như một chiến lược cấp nhập cảnh cho giao dịch định lượng để học và sử dụng, nhưng nó cần phải được xử lý một cách thận trọng và rủi ro phải được kiểm soát nghiêm ngặt.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI-EMA100&20 Buy/Sell Signal", overlay=true) // Input parameters rsiLength = input.int(14, "RSI Length") emaCloseLength = input.int(100, "EMA Length (Closing Price)") emaLowLength = input.int(20, "EMA Length (Low Price)") oversoldLevel = input.int(30, "Oversold Level") overboughtLevel = input.int(70, "Overbought Level") // Calculate RSI rsi = ta.rsi(close, rsiLength) // Calculate EMA of closing price emaClose = ta.ema(close, emaCloseLength) // Calculate EMA of low price emaLow = ta.ema(low, emaLowLength) // Determine overbought and oversold conditions isOversold = rsi <= oversoldLevel isOverbought = rsi >= overboughtLevel // Plot RSI and its EMAs plot(rsi, color=color.blue, title="RSI") plot(emaClose, color=color.green, title="EMA 100 (Closing Price)") plot(emaLow, color=color.orange, title="EMA 20 (Low Price)") // Strategy entry condition: Closing price is below both EMAs and RSI is less than or equal to oversold level buySignal = close < emaClose and close < emaLow and isOversold // Plot buy signals plotshape(series=buySignal, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small) // Strategy entry if (buySignal) strategy.entry("Buy", strategy.long) // Strategy exit condition: Price crosses above both EMAs and RSI is greater than or equal to overbought level sellSignal = close > emaClose and close > emaLow and isOverbought // Plot sell signals plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit if (sellSignal) strategy.entry("Sell", strategy.short) // Plot sell signals plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit if (sellSignal) strategy.entry("Sell", strategy.short)