Đây là một chiến lược giao dịch dựa trên các tín hiệu chéo trung bình động. Nó sử dụng đường trung bình động 45 ngày làm chỉ số kỹ thuật chính và tạo ra tín hiệu mua và bán khi giá vượt qua đường trung bình động.
Khi giá tăng và vượt qua đường trung bình động 45 ngày, một tín hiệu mua được tạo ra. Sau khi giữ vị trí trong 8 ngày, một tín hiệu bán được tạo ra. Sau đó, nếu giá tăng và vượt qua đường trung bình động 45 ngày một lần nữa, một tín hiệu mua mới sẽ được kích hoạt, v.v.
Các nguyên tắc logic cụ thể là:
Điều trên tạo thành logic giao dịch cốt lõi của chiến lược này.
Chiến lược này có những lợi thế sau:
Có một vài rủi ro với chiến lược này:
Giải pháp:
Các lĩnh vực cải tiến chính là:
Tối ưu hóa các thông số MA để tìm kết hợp tốt nhất, ví dụ: MA 15 ngày, 30 ngày, 60 ngày.
Tối ưu hóa thời gian giữ để xác định thời gian tối ưu, ví dụ: 5 ngày, 10 ngày, 15 ngày.
Thêm các điểm dừng để theo dõi xu hướng và kiểm soát rủi ro, ví dụ như dừng thử nghiệm hoặc dừng ATR.
Thêm các bộ lọc sử dụng các chỉ số khác như MACD, KDJ để giảm tín hiệu sai.
Cải thiện các quy tắc tái nhập cảnh để ngăn chặn giao dịch quá mức, ví dụ: thực thi thời gian suy nghĩ.
Kiểm tra hiệu quả trên các thị trường và công cụ khác nhau.
Tóm lại, chiến lược giao thoa MA này là một hệ thống theo dõi xu hướng đơn giản và thực tế. Nó tận dụng khả năng theo dõi xu hướng của MA và kết hợp sự đột phá giá để tạo ra tín hiệu giao dịch. Ưu điểm là dễ thực hiện trong khi nhược điểm là thỉnh thoảng. Chiến lược có thể được nâng cao hơn thông qua tối ưu hóa tham số và thêm các chỉ số khác làm bộ lọc.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average Crossover Strategy", overlay=true) // Calculate the 45-day moving average ma_length = 45 ma = ta.sma(close, ma_length) // Track position entry and entry bar var bool in_long_position = na var int entry_bar = na var int exit_bar = na // Entry condition: Close price crosses above the 45-day moving average to enter the position if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1]) in_long_position := true entry_bar := bar_index // Exit condition: Close the position after holding for 8 trading days if (in_long_position and bar_index - entry_bar >= 8) in_long_position := false exit_bar := bar_index // Re-entry condition: Wait for price to cross over the 45-day moving average again if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8)) in_long_position := true entry_bar := bar_index // Execute long entry and exit if (in_long_position) strategy.entry("Long", strategy.long) if (not in_long_position) strategy.close("Long")