Chiến lược này là một hệ thống theo xu hướng dựa trên nhiều đường trung bình động và chỉ số RSI. Nó sử dụng sự kết hợp của 20, 50 và 200 đường trung bình động để phân tích xu hướng thị trường thông qua các vị trí tương đối của chúng, kết hợp với xác nhận RSI cho các tín hiệu giao dịch. Chiến lược kết hợp các mục tiêu dừng lỗ và lợi nhuận năng động với các điểm dừng để bảo vệ lợi nhuận.
Cốt lõi của chiến lược nằm trong việc phân tích các vị trí tương đối của ba đường trung bình động (MA20, MA50, MA200) để xác định xu hướng thị trường. Chiến lược xác định 18 kịch bản kết hợp đường trung bình động khác nhau, tập trung vào các đường chéo và các vị trí tương đối. Các vị trí dài được ưa thích khi MAs ngắn hạn cao hơn MAs dài hạn, và ngược lại. Để tránh giao dịch quá mức, RSI được giới thiệu như một bộ lọc, cho phép các mục dài khi RSI dưới 70 và các mục ngắn trên 30. Chiến lược sử dụng tỷ lệ rủi ro-lợi nhuận 1:10 với điểm dừng 25 để bảo vệ lợi nhuận.
Đây là một chiến lược theo xu hướng có cấu trúc tốt với logic rõ ràng. Sự kết hợp của nhiều hệ thống trung bình động với lọc RSI tạo ra một hệ thống giao dịch tương đối đáng tin cậy. Cơ chế quản lý rủi ro được thiết kế tốt, bảo vệ lợi nhuận thông qua việc dừng lại mà không có lối ra sớm. Trong khi có chỗ cho tối ưu hóa, khuôn khổ tổng thể được thiết kế khoa học với giá trị ứng dụng thực tế.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Refined MA Strategy with Trailing Stop for 30m", overlay=true) // Define the moving averages TR20 = ta.sma(close, 20) TR50 = ta.sma(close, 50) TR200 = ta.sma(close, 200) // Define the RSI for additional filtering rsi = ta.rsi(close, 14) // Define the scenarios scenario1 = TR20 > TR50 and TR50 > TR200 scenario2 = TR50 > TR20 and TR20 > TR200 scenario3 = TR200 > TR50 and TR50 > TR20 scenario4 = TR50 > TR200 and TR200 > TR20 scenario5 = TR20 > TR200 and TR200 > TR50 scenario6 = TR200 > TR20 and TR20 > TR50 scenario7 = TR20 == TR50 and TR50 > TR200 scenario8 = TR50 == TR20 and TR20 > TR200 scenario9 = TR200 == TR50 and TR50 > TR20 scenario10 = TR20 > TR50 and TR50 == TR200 scenario11 = TR50 > TR20 and TR20 == TR200 scenario12 = TR20 > TR50 and TR50 == TR200 scenario13 = TR20 == TR50 and TR50 == TR200 scenario14 = TR20 > TR50 and TR200 == TR50 scenario15 = TR50 > TR20 and TR200 == TR50 scenario16 = TR20 > TR50 and TR50 == TR200 scenario17 = TR20 > TR50 and TR50 == TR200 scenario18 = TR20 > TR50 and TR50 == TR200 // Entry conditions longCondition = (scenario1 or scenario2 or scenario5) and rsi < 70 shortCondition = (scenario3 or scenario4 or scenario6) and rsi > 30 // Execute trades based on scenarios with 50 points stop loss and 1:10 RR, using a trailing stop of 25 points if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit", from_entry="Long", limit=close + 250, trail_offset=25) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit", from_entry="Short", limit=close - 250, trail_offset=25)