
Chiến lược này là một chiến lược giao thoa dựa trên hai đường trung bình di chuyển EMA và SMA. Khi EMA chậm đi từ dưới lên qua SMA nhanh hơn, nó tạo ra tín hiệu mua; Khi EMA chậm đi từ trên xuống qua SMA nhanh hơn, nó tạo ra tín hiệu bán. Chiến lược này được thiết kế để nắm bắt xu hướng tăng trong thị trường bò, đồng thời cung cấp một số hỗ trợ.
Chiến lược này sử dụng hai đường trung bình di chuyển: SMA 20 chu kỳ và EMA 21 chu kỳ. Khi EMA từ dưới lên đi qua SMA, nó cho thấy thị trường có thể đang chuyển sang xu hướng tăng lên, do đó tạo ra tín hiệu mua. Ngược lại, khi EMA từ trên xuống đi qua SMA, nó cho thấy thị trường có thể đang chuyển sang xu hướng giảm, do đó tạo ra tín hiệu bán. Để xác nhận tín hiệu, chiến lược này cũng yêu cầu giá đóng cửa hiện tại cao hơn giá đóng cửa trước đó (tín hiệu mua) hoặc thấp hơn giá đóng cửa trước đó (tín hiệu bán).
Chiến lược hỗ trợ thị trường bò ngang qua đường thẳng là một chiến lược theo dõi xu hướng đơn giản và dễ hiểu, đặc biệt phù hợp với thị trường bò. Tuy nhiên, chiến lược này cũng có một số hạn chế, chẳng hạn như tín hiệu giả, chậm trễ và khả năng nhận dạng xu hướng hạn chế. Bằng cách kết hợp các chỉ số khác, tham số tối ưu hóa và thêm các phương pháp như dừng lỗ, hiệu suất và sự ổn định của chiến lược có thể được cải thiện hơn nữa.
/*backtest
start: 2023-05-17 00:00:00
end: 2024-05-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © rodrinverte
//@version=5
strategy("EMA-SMA Crossover Strategy", overlay=true, initial_capital = 1000)
// Definir la longitud de las medias móviles
fast = ta.sma(close, 20)
slow = ta.ema(close, 21)
// Definir condiciones de compra y venta
buySignal = ta.crossover(slow, fast)
sellSignal = ta.crossunder(slow, fast)
// Configurar colores de las líneas y relleno
emaColor = buySignal ? color.green : sellSignal ? color.red : color.blue
smaColor = color.gray
fillColor = slow < fast ? color.new(color.green, 90) : color.new(color.red, 90)
// Esperar un periodo para confirmar la señal de compra o venta
buyConfirmation = close > close[1] and buySignal
sellConfirmation = close < close[1] and sellSignal
// Dibujar las medias móviles
plot(slow, title="EMA", color=emaColor)
plot(fast, title="SMA", color=smaColor)
// Configurar las señales de compra y venta
plotshape(buyConfirmation, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellConfirmation, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Estrategia de compra y venta
if (buyConfirmation)
strategy.entry("Buy", strategy.long)
if (sellConfirmation)
strategy.entry("Sell", strategy.short)
// Cerrar posición opuesta al cruce original
if (sellSignal)
strategy.close("Buy")
if (buySignal)
strategy.close("Sell")