Chiến lược này là một hệ thống giao dịch định lượng dựa trên đường chéo trung bình động và các chỉ số RSI, được thiết kế chủ yếu cho giao dịch thị trường tùy chọn. Chiến lược sử dụng các tín hiệu chéo trung bình di chuyển nhanh và chậm kết hợp với mức mua/bán quá mức RSI để xác định cơ hội giao dịch, trong khi thực hiện các cơ chế lấy lợi nhuận và dừng lỗ để kiểm soát rủi ro. Chiến lược được tối ưu hóa cho giao dịch khung thời gian 5 phút.
Chiến lược sử dụng hai chỉ số kỹ thuật chính: Moving Averages (MA) và Relative Strength Index (RSI).
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 bằng cách kết hợp các chỉ số MA và chỉ số RSI. Sức mạnh của nó nằm trong xác nhận nhiều tín hiệu và quản lý rủi ro toàn diện, trong khi phải chú ý đến tác động của điều kiện thị trường đối với hiệu suất chiến lược. Thông qua tối ưu hóa và cải thiện liên tục, chiến lược cho thấy hứa hẹn cho hiệu suất ổn định trên thị trường tùy chọn. Các nhà giao dịch được khuyên nên tiến hành kiểm tra kỹ lưỡng và tối ưu hóa tham số trước khi thực hiện trực tiếp.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MA Crossover with RSI Debugging", overlay=true) // Inputs fastLength = input.int(7, title="Fast MA Length", minval=1) slowLength = input.int(13, title="Slow MA Length", minval=1) rsiLength = input.int(17, title="RSI Length", minval=1) rsiOverbought = input.int(64, title="RSI Overbought Level", minval=50, maxval=100) rsiOversold = input.int(43, title="RSI Oversold Level", minval=0, maxval=50) takeProfitPerc = input.float(4, title="Take Profit (%)", minval=0.1) stopLossPerc = input.float(0.5, title="Stop Loss (%)", minval=0.1) // Moving Averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // RSI rsi = ta.rsi(close, rsiLength) // Entry Conditions longCondition = ta.crossover(fastMA, slowMA) and rsi < rsiOversold shortCondition = ta.crossunder(fastMA, slowMA) and rsi > rsiOverbought // Plot Debugging Shapes plotshape(ta.crossover(fastMA, slowMA), color=color.green, style=shape.circle, location=location.belowbar, title="Fast MA Crossover") plotshape(ta.crossunder(fastMA, slowMA), color=color.red, style=shape.circle, location=location.abovebar, title="Fast MA Crossunder") plotshape(rsi < rsiOversold, color=color.blue, style=shape.triangleup, location=location.belowbar, title="RSI Oversold") plotshape(rsi > rsiOverbought, color=color.orange, style=shape.triangledown, location=location.abovebar, title="RSI Overbought") // Entry and Exit Execution if (longCondition) strategy.entry("Buy", strategy.long) if (shortCondition) strategy.entry("Sell", strategy.short) takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc / 100) stopLossPrice = strategy.position_avg_price * (1 - stopLossPerc / 100) if (strategy.position_size > 0) strategy.exit("Exit Buy", from_entry="Buy", limit=takeProfitPrice, stop=stopLossPrice) if (strategy.position_size < 0) strategy.exit("Exit Sell", from_entry="Sell", limit=takeProfitPrice, stop=stopLossPrice) // Plot Moving Averages plot(fastMA, color=color.blue, title="Fast MA") plot(slowMA, color=color.red, title="Slow MA") // RSI Levels hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green)