
Chiến lược này là một chiến lược theo dõi xu hướng dựa trên hệ thống nhiều đường trung bình và chỉ số RSI. Chiến lược sử dụng kết hợp các đường trung bình di chuyển của 20, 50 và 200 chu kỳ để đánh giá xu hướng thị trường bằng cách phân tích mối quan hệ vị trí giữa các đường trung bình khác nhau và kết hợp với chỉ số RSI để xác nhận tín hiệu giao dịch. Chiến lược đặt mục tiêu dừng lỗ và lợi nhuận động để bảo vệ lợi nhuận đã đạt được bằng cách theo dõi dừng lỗ.
Cốt lõi của chiến lược là xác định xu hướng thị trường bằng cách phân tích mối quan hệ vị trí tương đối giữa ba đường trung bình (MA20, MA50, MA200). Chiến lược xác định 18 tình huống kết hợp đường trung bình khác nhau, tập trung vào giao thoa và mối quan hệ vị trí. Khi đường trung bình ngắn hạn nằm trên đường trung bình dài hạn, xu hướng mua nhiều hơn; ngược lại, xu hướng mua nhiều hơn. Để tránh giao dịch quá mức, chiến lược giới thiệu chỉ số RSI làm điều kiện lọc, cho phép mua nhiều khi RSI thấp hơn 70 và cho phép mua nhiều khi cao hơn 30.
Đây là một chiến lược theo dõi xu hướng có cấu trúc, logic rõ ràng. Bằng cách sử dụng hệ thống đa phương tiện, kết hợp với bộ lọc của chỉ số RSI, tạo thành một hệ thống giao dịch tương đối đáng tin cậy. Cơ chế quản lý rủi ro của chiến lược được thiết kế hợp lý, bằng cách theo dõi dừng lỗ để bảo vệ lợi nhuận và không rời khỏi thị trường quá sớm. Mặc dù chiến lược vẫn còn một số không gian cần tối ưu hóa, nhưng thiết kế khung tổng thể là khoa học và có 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)