Chiến lược này là một hệ thống giao dịch động lực đa chiều kết hợp khối lượng trên cán cân (OBV), trung bình di chuyển đơn giản (SMA) và chỉ số sức mạnh tương đối (RSI). Nó nắm bắt động lực thị trường bằng cách theo dõi các tín hiệu chéo giữa OBV và đường trung bình di chuyển của nó, trong khi sử dụng RSI như một bộ lọc để tránh theo đuổi xu hướng quá mức. Chiến lược cũng kết hợp các cơ chế dừng lỗ và lấy lợi nhuận dựa trên tỷ lệ phần trăm để đạt được quản lý rủi ro-lợi nhuận cân bằng.
Logic cốt lõi được xây dựng trên ba chiều:
Chiến lược sử dụng tỷ lệ dừng lỗ (2%) và lợi nhuận (4%) cố định, tạo ra một khuôn khổ quản lý rủi ro đối xứng giúp duy trì tỷ lệ rủi ro-lợi nhuận ổn định.
Đây là một chiến lược giao dịch động lực đa chiều được thiết kế tốt, xây dựng một hệ thống giao dịch hoàn chỉnh bằng cách kết hợp các lợi thế của các chỉ số kỹ thuật. Sức mạnh cốt lõi nằm trong cơ chế xác nhận tín hiệu đa lớp và khuôn khổ quản lý rủi ro tiêu chuẩn. Mặc dù có những rủi ro tiềm ẩn, các hướng tối ưu hóa được đề xuất có thể tăng thêm độ mạnh mẽ và khả năng thích nghi của chiến lược. Giá trị thực tế của chiến lược chủ yếu được phản ánh trong logic rõ ràng, dễ thực hiện và bảo trì. Các nhà giao dịch được khuyên nên kiểm tra kỹ lưỡng hiệu suất trong các điều kiện thị trường khác nhau và tối ưu hóa các tham số theo nhu cầu cụ thể trước khi triển khai trực tiếp.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-28 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("OBV Strategy with SMA, RSI, SL and TP (Improved Visualization)", overlay=true) // حساب OBV يدويًا obv = ta.cum(math.sign(close - close[1]) * volume) // إعداد المتوسط المتحرك البسيط لـ OBV lengthOBV = input(20, title="OBV SMA Length") obvSMA = ta.sma(obv, lengthOBV) // إعداد مؤشر RSI lengthRSI = input(14, title="RSI Length") rsi = ta.rsi(close, lengthRSI) // إعدادات وقف الخسارة وجني الأرباح stopLossPerc = input(2.0, title="Stop Loss %") / 100 // 2% وقف خسارة takeProfitPerc = input(4.0, title="Take Profit %") / 100 // 4% جني أرباح // حساب مستوى وقف الخسارة وجني الأرباح longStopLoss = close * (1 - stopLossPerc) longTakeProfit = close * (1 + takeProfitPerc) shortStopLoss = close * (1 + stopLossPerc) shortTakeProfit = close * (1 - takeProfitPerc) // إعداد شروط الشراء longCondition = ta.crossover(obv, obvSMA) and rsi < 70 if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit) // إعداد شروط البيع shortCondition = ta.crossunder(obv, obvSMA) and rsi > 30 if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit) // رسم OBV والمؤشرات الأخرى على الرسم البياني plot(obv, title="OBV", color=color.blue, linewidth=2) // رسم OBV بخط أزرق عريض plot(obvSMA, title="OBV SMA", color=color.orange, linewidth=2) // رسم SMA بخط برتقالي // رسم إشارات الشراء والبيع على الرسم البياني plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // رسم RSI في نافذة منفصلة بوضوح أكبر hline(70, "RSI Overbought", color=color.red, linestyle=hline.style_dashed) hline(30, "RSI Oversold", color=color.green, linestyle=hline.style_dashed) plot(rsi, title="RSI", color=color.purple, linewidth=2) // إضافة منطقة RSI بالألوان bgcolor(rsi > 70 ? color.new(color.red, 90) : rsi < 30 ? color.new(color.green, 90) : na)