Chiến lược này tính toán đường trung bình chuyển động theo cấp số nhân (EMA) của các giai đoạn nhanh và chậm, vẽ chúng trên biểu đồ và theo dõi chéo theo thời gian thực để xác định sự đảo ngược xu hướng.
Chiến lược này có một logic rõ ràng bằng cách sử dụng EMA chéo để xác định sự đảo ngược xu hướng, được lọc bởi RSI để nắm bắt các xu hướng trung và dài hạn. Tuy nhiên, tối ưu hóa các thông số EMA / RSI và dừng lỗ, cũng như rủi ro bỏ lỡ sự đảo ngược và thất bại trong thị trường biến động vẫn còn. Với các thông số và kiểm soát rủi ro được điều chỉnh, nó có thể phục vụ để xác định các bước ngoặt và xây dựng các 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)