
Chiến lược này được gọi là Chiến lược giao chéo trung bình di chuyển kép và trung bình di chuyển kép. Chiến lược này kết hợp các tín hiệu giao chéo giữa trung bình di chuyển kép và trung bình di chuyển kép để đánh giá sự xuất hiện của DEMA và TEMA.
Chiến lược này chủ yếu dựa trên sự giao thoa giữa đường trung bình di chuyển hai chiều (DEMA) và đường trung bình di chuyển ba chiều (TEMA) để tạo ra tín hiệu giao dịch.
Công thức tính toán của DEMA là:
DEMA = 2*EMA1 - EMA2
Trong đó, EMA1 và EMA2 tương ứng là Exponential Moving Average với chu kỳ dài là N. DEMA kết hợp sự trơn tru và nhanh chóng đáp ứng của EMA.
Công thức tính toán của TEMA là:
TEMA = 3*(EMA1 - EMA2) + EMA3
Trong đó, EMA1, EMA2 và EMA3 là các trung bình di chuyển theo cấp số nhân với chu kỳ dài là N. TEMA được làm mượt qua ba lần chỉ số, có thể lọc các đột phá giả.
Khi DEMA trên đi qua TEMA, tạo ra tín hiệu mua; khi DEMA dưới đi qua TEMA, tạo ra tín hiệu bán. Theo nguyên tắc giao nhau của hai đường cong, có thể nắm bắt chuyển đổi chu kỳ, vào và ra sân kịp thời.
Chiến lược này có thể cải thiện độ chính xác giao dịch bằng cách tạo ra tín hiệu giao dịch chéo của đường trung bình di chuyển hai chỉ số và đường trung bình di chuyển ba chỉ số, kết hợp với tốc độ phản ứng của DEMA và tác động của TEMA. Tuy nhiên, một bộ chỉ số duy nhất dễ bị ảnh hưởng bởi ảo ảnh và vẫn cần sự hỗ trợ của nhiều công cụ xác minh để tạo ra một hệ thống giao dịch có hệ thống và có thể đạt được lợi nhuận ổn định lâu dài.
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("DEMA-TEMA Cross Strategy", shorttitle="DEMA-TEMA Cross", overlay=true)
// Input options for Double EMA (DEMA)
dema_length = input.int(10, title="DEMA Length", minval=1)
dema_src = input(close, title="DEMA Source")
// Calculate Double EMA (DEMA)
dema_e1 = ta.ema(dema_src, dema_length)
dema_e2 = ta.ema(dema_e1, dema_length)
dema = 2 * dema_e1 - dema_e2
// Input options for Triple EMA (TEMA)
tema_length = input.int(8, title="TEMA Length", minval=1)
tema_src = input(close, title="TEMA Source")
// Calculate Triple EMA (TEMA)
tema_ema1 = ta.ema(tema_src, tema_length)
tema_ema2 = ta.ema(tema_ema1, tema_length)
tema_ema3 = ta.ema(tema_ema2, tema_length)
tema = 3 * (tema_ema1 - tema_ema2) + tema_ema3
// Crossover signals for long (small green arrow below candle)
crossover_long = ta.crossover(dema, tema)
// Crossunder signals for short (small red arrow above candle)
crossunder_short = ta.crossunder(dema, tema)
plotshape(crossunder_short ? 1 : na, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(crossover_long ? -1 : na, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plot(dema, "DEMA", color=color.green)
plot(tema, "TEMA", color=color.blue)
if (crossover_long)
strategy.entry("Long", strategy.long)
if (crossunder_short)
strategy.entry("Short", strategy.short)