Chiến lược này là một hệ thống giao dịch định lượng dựa trên sự chéo chéo của hai EMA (Exponential Moving Averages). Nó sử dụng EMA ngắn hạn (14 giai đoạn) và EMA dài hạn (100 giai đoạn) để nắm bắt các điểm chuyển đổi xu hướng thị trường bằng cách xác định thời gian nhập cảnh thông qua giao điểm của trung bình động ngắn hạn và dài hạn. Các tín hiệu mua được tạo ra khi EMA ngắn hạn vượt qua EMA dài hạn, và các tín hiệu bán được tạo ra khi điều ngược lại xảy ra. Chiến lược này đặc biệt phù hợp với các nhà giao dịch muốn định vị bản thân vào đầu của sự đảo ngược xu hướng.
Khái niệm cơ bản của chiến lược được xây dựng dựa trên sự thay đổi động lực trong xu hướng giá. EMA ngắn hạn nhạy cảm hơn với sự thay đổi giá, trong khi EMA dài hạn lọc tốt hơn tiếng ồn thị trường và phản ánh xu hướng chính. Khi trung bình động ngắn hạn vượt qua trên trung bình động dài hạn, nó cho thấy tăng động lực ngắn hạn và xu hướng tăng có thể; khi trung bình động ngắn hạn vượt qua dưới trung bình động dài hạn, nó gợi ý động lực suy yếu và xu hướng giảm tiềm năng. Chiến lược sử dụng các hàm ta.crossover và ta.crossunder để nắm bắt chính xác các điểm giao thoa này và thực hiện các hoạt động vị trí vào thời điểm thích hợp.
Chiến lược định lượng xu hướng chuyển tiếp xu hướng EMA động là một hệ thống theo xu hướng cổ điển và thực tế. Bằng cách kết hợp các đường trung bình chuyển động theo cấp số nhân ngắn hạn và dài hạn, chiến lược có hiệu quả nắm bắt các cơ hội chuyển đổi xu hướng thị trường. Mặc dù có rủi ro chậm trễ và tín hiệu sai, kết quả giao dịch ổn định vẫn có thể đạt được thông qua tối ưu hóa tham số thích hợp và các biện pháp kiểm soát rủi ro. Sự đơn giản và khả năng mở rộng của chiến lược làm cho nó trở thành một khuôn khổ nền tảng tuyệt vời cho giao dịch định lượng.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy", overlay=true) // Input for EMAs shortEmaLength = input(14, title="Short EMA Length") longEmaLength = input(100, title="Long EMA Length") // Calculate EMAs shortEma = ta.ema(close, shortEmaLength) longEma = ta.ema(close, longEmaLength) // Plot EMAs plot(shortEma, color=color.blue, title="9 EMA") plot(longEma, color=color.red, title="100 EMA") // Historical Signal Tracking var float lastBuyPrice = na var float lastSellPrice = na // Buy and Sell Signals buySignal = ta.crossover(shortEma, longEma) sellSignal = ta.crossunder(shortEma, longEma) // Track last buy and sell prices if (buySignal) lastBuyPrice := close if (sellSignal) lastSellPrice := close // Plot buy and sell signals on the chart plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Logic if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("Buy")