Chiến lược này sử dụng hệ thống trung bình động kép để đánh giá xu hướng và quyết định giao dịch, đồng thời xác định điểm bắt đầu, tiếp tục hoặc kết thúc của xu hướng thị trường thông qua mối quan hệ vị trí tương đối giữa đường trung bình động nhanh và đường trung bình động chậm tại một thời điểm cụ thể. Chiến lược này kiểm tra mối quan hệ vị trí giữa EMA nhanh và EMA chậm vào một thời điểm cố định mỗi ngày, thiết lập vị thế mua khi đường nhanh nằm trên đường chậm và thiết lập vị thế bán khi đường nhanh nằm dưới đường chậm. do đó đạt được giao dịch theo dõi xu hướng.
Cốt lõi của chiến lược này là đưa ra phán đoán xu hướng dựa trên hai đường trung bình động hàm mũ (EMA) của các giai đoạn khác nhau. Đường EMA nhanh (chu kỳ mặc định là 10) nhạy cảm hơn với những thay đổi về giá và có thể nắm bắt xu hướng thị trường nhanh hơn; đường EMA chậm (chu kỳ mặc định là 50) phản ánh các xu hướng dài hạn hơn. Chiến lược này kiểm tra mối quan hệ vị trí của hai đường trung bình động tại một thời điểm cụ thể trong mỗi ngày giao dịch (mặc định là 9:00), xác định hướng xu hướng thị trường và giao dịch dựa trên tín hiệu giao nhau của đường trung bình động. Khi đường EMA nhanh cắt lên trên đường EMA chậm, điều này chỉ ra rằng đà tăng ngắn hạn đã tăng lên và đã đến lúc tham gia thị trường để mua vào; khi đường EMA nhanh cắt xuống dưới đường EMA chậm, điều này chỉ ra rằng đà tăng ngắn hạn đà giảm giá đã tăng lên và đã đến lúc tham gia thị trường để bán khống.
Chiến lược này hiện thực hóa một hệ thống giao dịch theo dõi xu hướng đơn giản và hiệu quả bằng cách kết hợp hệ thống đường trung bình động kép nhanh và chậm với cơ chế kiểm tra thời gian cố định. Ưu điểm của chiến lược này là logic rõ ràng và mức độ tự động hóa cao, nhưng nó cũng có những hạn chế như độ trễ trung bình động và thời gian vào lệnh cố định. Chiến lược vẫn còn nhiều chỗ cần cải thiện bằng cách đưa ra các chỉ số kỹ thuật bổ sung, tối ưu hóa cơ chế lựa chọn tham số và tăng cường các biện pháp kiểm soát rủi ro. Nhìn chung, đây là một khuôn khổ chiến lược cơ bản có giá trị thực tế, có thể được cải thiện và tối ưu hóa thêm theo nhu cầu cụ thể.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Daily EMA Comparison Strategy", shorttitle="Daily EMA cros Comparison", overlay=true)
//------------------------------------------------------------------------------
// Inputs
//------------------------------------------------------------------------------
fastEmaLength = input.int(10, title="Fast EMA Length", minval=1) // Fast EMA period
slowEmaLength = input.int(50, title="Slow EMA Length", minval=1) // Slow EMA period
checkHour = input.int(9, title="Check Hour (24h format)", minval=0, maxval=23) // Hour to check
checkMinute = input.int(0, title="Check Minute", minval=0, maxval=59) // Minute to check
//------------------------------------------------------------------------------
// EMA Calculation
//------------------------------------------------------------------------------
fastEMA = ta.ema(close, fastEmaLength)
slowEMA = ta.ema(close, slowEmaLength)
//------------------------------------------------------------------------------
// Time Check
//------------------------------------------------------------------------------
// Get the current bar's time in the exchange's timezone
currentTime = timestamp("GMT-0", year, month, dayofmonth, checkHour, checkMinute)
// Check if the bar's time equals or passes the daily check time
isCheckTime = (time >= currentTime and time < currentTime + 60 * 1000) // 1-minute tolerance
//------------------------------------------------------------------------------
// Entry Conditions
//------------------------------------------------------------------------------
// Buy if Fast EMA is above Slow EMA at the specified time
buyCondition = isCheckTime and fastEMA > slowEMA
// Sell if Fast EMA is below Slow EMA at the specified time
sellCondition = isCheckTime and fastEMA < slowEMA
//------------------------------------------------------------------------------
// Strategy Execution
//------------------------------------------------------------------------------
// Enter Long
if buyCondition
strategy.entry("Long", strategy.long)
// Enter Short
if sellCondition
strategy.entry("Short", strategy.short)
//------------------------------------------------------------------------------
// Plot EMAs
//------------------------------------------------------------------------------
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.orange, title="Slow EMA")