Chiến lược chéo trung bình động được cải tiến với hướng dẫn xu hướng thị trường sử dụng ba trung bình động của các giai đoạn khác nhau để xác định xu hướng thị trường và tín hiệu giao dịch. Đầu tiên nó tính toán đường nhanh, đường chậm và đường xu hướng. Các tín hiệu mua và bán được tạo ra dựa trên đường chéo vàng và đường chéo chết của đường nhanh và đường chậm. Ngoài ra, một đường xu hướng được giới thiệu để đánh giá hướng xu hướng thị trường tổng thể. Các giao dịch chỉ được thực hiện theo hướng xu hướng để tránh các giao dịch chống xu hướng.
Các giai đoạn cho ba đường trung bình chuyển động được xác định là các thông số đầu vào. Golden cross (đường nhanh vượt qua đường chậm) và death cross (đường nhanh vượt qua đường chậm) giữa các đường nhanh và chậm tạo ra tín hiệu mua và bán.
Sự cải thiện đến từ việc giới thiệu đường xu hướng trung bình động thứ ba để xác định hướng xu hướng thị trường. Các tín hiệu mua chỉ được thực hiện trên các đường chéo vàng và bán tín hiệu trên các đường chéo chết khi hướng xu hướng ủng hộ tín hiệu. Ví dụ, các tín hiệu mua chỉ được thực hiện trên các đường chéo vàng khi xu hướng tăng và bán tín hiệu chỉ trên đường chéo chết khi xu hướng giảm. Điều này giúp tránh giao dịch ngược xu hướng và giảm rủi ro.
So với chiến lược trung bình di chuyển kép đơn giản, chiến lược cải tiến này có những lợi thế sau:
Hướng dẫn xu hướng thị trường tránh giao dịch ngược xu hướng, lọc các giao dịch có khả năng thua lỗ và giảm rủi ro.
Sự kết hợp của nhiều đường trung bình động cải thiện độ tin cậy tín hiệu và tỷ lệ thắng.
Điều chỉnh tham số linh hoạt thích nghi với các chế độ thị trường khác nhau.
Các quy tắc đơn giản và rõ ràng làm cho việc thực hiện đơn giản hơn, dễ thực hiện hơn so với các mô hình máy học phức tạp.
Các chỉ số và logic được xác nhận với nền tảng lý thuyết và độ tin cậy mạnh mẽ.
Mặc dù cải thiện so với chiến lược MA kép, một số rủi ro cần phải được xem xét:
Sự phức tạp bổ sung từ ba đường trung bình động đặt ra những khó khăn tối ưu hóa và nguy cơ điều chỉnh tham số kém.
Bản chất chậm của đường trung bình động có thể làm mờ tín hiệu hoặc gây chậm trễ.
Xác định xu hướng chủ quan mang lại nguy cơ sai lầm trong việc đánh giá xu hướng.
Không có kích thước vị trí hoặc các tính năng quản lý rủi ro.
Hệ thống dựa trên quy tắc không thể thích nghi như các mô hình máy học.
Những rủi ro này có thể được giảm thiểu thông qua kiểm tra hậu quả nghiêm ngặt, tối ưu hóa và giới thiệu các cải tiến như dừng lỗ, kích thước vị trí, thích nghi học máy vv Nhưng rủi ro không thể được loại bỏ hoàn toàn.
Một số cách chiến lược có thể được cải thiện hơn nữa:
Kết hợp các cơ chế dừng lỗ như dựa trên giá hoặc biến động dựa trên để kiểm soát lỗ cho mỗi giao dịch.
Thêm mô-đun kích thước vị trí để điều chỉnh động các vị trí dựa trên rút vốn, sử dụng vốn v.v.
Kiểm tra trên nhiều khung thời gian (ngày, 60 phút v.v.) để xác định độ bền.
Tối ưu hóa tham số thông qua tìm kiếm lưới, thuật toán di truyền v.v. Các mô hình tập hợp cũng có thể kết hợp các tín hiệu từ nhiều mô hình.
Các kỹ thuật học máy như học tăng cường để tự động cải thiện các thông số và khả năng thích nghi.
Thêm các bộ lọc dựa trên khối lượng, chênh lệch giá, biến động vv để giảm các tín hiệu gây hiểu lầm.
Kết luận, chiến lược giao dịch chuyển động trung bình được cải thiện này hướng dẫn các giao dịch theo hướng xu hướng thị trường tổng thể để tránh giao dịch ngược xu hướng. Điều này cho thấy hứa hẹn cải thiện lợi nhuận điều chỉnh rủi ro so với chiến lược giao dịch chuyển động trung bình kép đơn giản.
/*backtest start: 2023-11-28 00:00:00 end: 2023-12-01 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved Moving Average Crossover Strategy", overlay=true) // Define input variables fast_length = input(9, title="Fast MA Length") slow_length = input(21, title="Slow MA Length") trend_length = input(50, title="Trend MA Length") src = close // Calculate moving averages fast_ma = ta.sma(src, fast_length) slow_ma = ta.sma(src, slow_length) trend_ma = ta.sma(src, trend_length) // Plot moving averages on the chart plot(fast_ma, color=color.blue, title="Fast MA") plot(slow_ma, color=color.red, title="Slow MA") plot(trend_ma, color=color.green, title="Trend MA") // Define trend direction is_uptrend = ta.crossover(slow_ma, trend_ma) is_downtrend = ta.crossunder(slow_ma, trend_ma) // Define buy and sell conditions buy_condition = ta.crossover(fast_ma, slow_ma) and is_uptrend sell_condition = ta.crossunder(fast_ma, slow_ma) and is_downtrend // Execute trades based on conditions if (buy_condition) strategy.entry("Buy", strategy.long) if (sell_condition) strategy.close("Buy") if (sell_condition) strategy.entry("Sell", strategy.short) if (buy_condition) strategy.close("Sell")