
Chiến lược này tạo ra tín hiệu mua khi EMA nhanh phá vỡ EMA chậm và tạo ra tín hiệu bán khi EMA nhanh phá vỡ EMA chậm.
Chiến lược tổng thể có ý tưởng rõ ràng, sử dụng EMA để đánh giá xu hướng chuyển hướng, kết hợp với tín hiệu lọc của chỉ số RSI, có thể nắm bắt hiệu quả xu hướng đường dài trung bình. Tuy nhiên, chiến lược điều chỉnh và dừng lỗ của các tham số EMA và RSI vẫn cần được tối ưu hóa và có nguy cơ bỏ lỡ các điểm đảo ngược và thị trường xung đột. Nếu các tham số được tối ưu hóa và rủi ro được kiểm soát, chiến lược này có thể được sử dụng để phát hiện các điểm đảo chiều xu hướng đường dài trung bình và đưa ra quyết định đầu tư.
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend Change with EMA Entry/Exit - Intraday", overlay=true)
// Define the fast and slow EMA periods
fast_ema_period = input(10, title="Fast EMA Period")
slow_ema_period = input(50, title="Slow EMA Period")
// Calculate the EMAs
ema_fast = ta.ema(close, fast_ema_period)
ema_slow = ta.ema(close, slow_ema_period)
// Plot the EMAs on the chart
plot(ema_fast, title="Fast EMA", color=color.blue, linewidth=2)
plot(ema_slow, title="Slow EMA", color=color.orange, linewidth=2)
// Detect trend changes (crossovers and crossunders)
is_uptrend = ta.crossover(ema_fast, ema_slow)
is_downtrend = ta.crossunder(ema_fast, ema_slow)
// Relative Strength Index (RSI)
rsi_length = input(14, title="RSI Length")
overbought_level = input(70, title="Overbought Level")
oversold_level = input(30, title="Oversold Level")
rsi_value = ta.rsi(close, rsi_length)
// Trend Filter
is_trending = ta.change(is_uptrend) != 0 or ta.change(is_downtrend) != 0
// Entry and Exit signals
enter_long = is_uptrend and rsi_value < overbought_level and is_trending
exit_long = is_downtrend and is_trending
enter_short = is_downtrend and rsi_value > oversold_level and is_trending
exit_short = is_uptrend and is_trending
strategy.entry("Buy", strategy.long, when=enter_long)
strategy.close("Buy", when=exit_long)
strategy.entry("Sell", strategy.short, when=enter_short)
strategy.close("Sell", when=exit_short)