
Chiến lược này là một hệ thống giao dịch dựa trên các tín hiệu chéo đường thẳng và lọc xu hướng. Nó kết hợp các tín hiệu chéo của SMA ngắn hạn (trong 9 chu kỳ và 15 chu kỳ) và EMA dài hạn (trong 200 chu kỳ) làm bộ lọc xu hướng, để nắm bắt xu hướng thị trường bằng cách chéo đường thẳng trong các chu kỳ thời gian khác nhau.
Chiến lược sử dụng hệ thống ba đường trung bình để quyết định giao dịch:
Chiến lược này kết hợp nhiều hệ thống đường phẳng và bộ lọc xu hướng để xây dựng một hệ thống giao dịch theo dõi xu hướng hoàn chỉnh. Ưu điểm chính của nó là có thể kiếm được lợi nhuận đáng kể trong thị trường xu hướng mạnh, đồng thời tăng sự ổn định của hệ thống thông qua bộ lọc đường phẳng và cơ chế nhập lại. Mặc dù có một số rủi ro vốn có, nhưng việc thực hiện theo hướng tối ưu hóa có thể nâng cao hơn nữa hiệu suất của chiến lược.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-17 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA Crossover with EMA Filter", overlay=true)
// Define indicators
sma9 = ta.sma(close, 9)
sma15 = ta.sma(close, 15)
ema200 = ta.ema(close, 200)
// Crossover conditions
bullish_crossover = ta.crossover(sma9, sma15) // Buy signal
bearish_crossover = ta.crossunder(sma9, sma15) // Sell signal
// Filters
above_ema200 = close > ema200
below_ema200 = close < ema200
// Buy condition (only above 200 EMA)
buy_signal = bullish_crossover and above_ema200
if buy_signal
strategy.entry("Buy", strategy.long)
// Sell condition (only below 200 EMA)
sell_signal = bearish_crossover and below_ema200
if sell_signal
strategy.entry("Sell", strategy.short)
// Exit condition if the signal reverses
exit_long = bearish_crossover
exit_short = bullish_crossover
if exit_long
strategy.close("Buy")
if exit_short
strategy.close("Sell")
// Re-entry condition when price crosses EMA 200 after a prior crossover
buy_reentry = ta.barssince(bullish_crossover) > 0 and above_ema200
sell_reentry = ta.barssince(bearish_crossover) > 0 and below_ema200
if buy_reentry
strategy.entry("Buy", strategy.long)
if sell_reentry
strategy.entry("Sell", strategy.short)
// Plot indicators
plot(sma9, color=color.blue, title="SMA 9")
plot(sma15, color=color.red, title="SMA 15")
plot(ema200, color=color.orange, title="EMA 200")