Chiến lược này tạo ra các tín hiệu giao dịch bằng cách tính toán các chéo chéo giữa trung bình di chuyển theo cấp số (EMA) 5 ngày và trung bình di chuyển đơn giản 20 ngày (SMA). Nó đi dài khi EMA 5 ngày vượt qua trên SMA 20 ngày và đóng vị trí khi thay đổi giá đạt 5% hoặc -5%. Nó cũng kết hợp Chỉ số Chỉ số Giao dịch (TII) như một chỉ số phụ trợ.
Đường trung bình di chuyển theo hàm số hai là các chỉ số kỹ thuật được sử dụng rộng rãi. EMA 5 ngày đại diện cho xu hướng giá gần đây trong khi SMA 20 ngày cho thấy xu hướng giá trung hạn. Khi MA ngắn hạn vượt qua trên MA dài hạn, nó báo hiệu một sự đột phá tăng và xu hướng giá tăng, cho thấy thời điểm tốt để đi dài. Ngược lại, giao thoa giảm có nghĩa là sự đảo ngược giá tiềm năng và nên xem xét ra khỏi các vị trí.
Chiến lược này thiết lập EMA 5 ngày và SMA 20 ngày làm tín hiệu giao dịch. Nó đi dài khi EMA 5 ngày vượt qua SMA 20 ngày và đóng vị trí khi thay đổi giá đạt 5% hoặc -5%. Nó cũng kiểm tra xem TII có dương tính và tăng để xác nhận độ tin cậy của tín hiệu.
Các bước chi tiết là:
Chiến lược này sử dụng giao thoa vàng giữa hai MA và có những ưu điểm sau:
Nói chung, chiến lược này có các quy tắc đơn giản, sử dụng các chỉ số kỹ thuật trưởng thành như MA crossover và có các phép đo kiểm soát rủi ro tương đối toàn diện. Nó phù hợp cho người mới bắt đầu học và sử dụng trong lĩnh vực giao dịch định lượng.
Vẫn còn một số rủi ro trong chiến lược này:
Những cải tiến được đề xuất là:
Vì vậy có chỗ cho việc tối ưu hóa hơn nữa.
Chiến lược này có thể được cải thiện từ các khía cạnh sau:
Tối ưu hóa các thông số MA bằng cách thử nghiệm các kết hợp EMA ngắn hơn / dài hơn và SMA để tìm cặp tối ưu.
Thêm các chỉ số khác như MACD, KDJ để lọc tín hiệu sai.
Sử dụng thuật toán học máy để tìm các thông số tốt hơn thông qua mô hình dữ liệu lịch sử và thống kê.
Thiết lập stop loss / take profit năng động dựa trên biến động thị trường và đặc điểm của công cụ để kiểm soát tốt hơn rủi ro.
Mở rộng chiến lược này sang các sản phẩm khác như ngoại hối, tiền điện tử.
Thông qua các cải tiến trên, sự ổn định và lợi nhuận của chiến lược này có thể được cải thiện đáng kể.
Kết luận, đây là một chiến lược chéo MA đôi dễ hiểu và thực hiện. Nó tận dụng lợi thế của các tín hiệu MA và sử dụng TII để lọc lỗi. Nó kiểm soát rủi ro bằng cách dừng lỗ / lấy lợi nhuận. Chiến lược phù hợp với người mới bắt đầu học và cũng có nhiều chỗ để tối ưu hóa. Những cải tiến hơn nữa về điều chỉnh tham số, lọc tín hiệu và dừng lỗ động có thể biến nó thành một chiến lược giao dịch thực tế và mạnh mẽ.
/*backtest start: 2024-01-02 00:00:00 end: 2024-02-01 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA-SMA Crossover Strategy", shorttitle="EMA-SMA Cross", overlay=true) // Define the moving averages ema5 = ta.ema(close, 5) sma20 = ta.sma(close, 20) smaVolume10 = ta.sma(volume, 50) majorLength = input(60, title="Major Length") minorLength = input(30, title="Minor Length") src = input(close, title="Source") smaValue = ta.sma(src, majorLength) positiveSum = 0.0 negativeSum = 0.0 for i = 0 to minorLength - 1 price = na(src[i]) ? 0 : src[i] avg = na(smaValue[i]) ? 0 : smaValue[i] positiveSum := positiveSum + (price > avg ? price - avg : 0) negativeSum := negativeSum + (price > avg ? 0 : avg - price) tii = 100 * positiveSum / (positiveSum + negativeSum) // Buy condition: 5 EMA crosses above 20 SMA buyCondition = ta.crossover(ema5, sma20) and tii > 0 and tii >= tii[1] //and volume > smaVolume10 // // Track entry price var entryPrice = 0.0 if (buyCondition) entryPrice := close // Calculate percentage change from entry price priceChange = close / entryPrice - 1 // Plotting the moving averages on the chart plot(ema5, color=color.blue, title="5 EMA") plot(sma20, color=color.red, title="20 SMA") // Highlighting buy signals and exit signals on the chart // plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, size=size.small, style=shape.labelup, text="Buy") // Strategy entry and exit if (buyCondition) strategy.entry("Buy", strategy.long) // Exit conditions if (strategy.opentrades > 0) if (priceChange >= 0.05 or priceChange <= -0.05) strategy.close("Buy")