이 전략은 빠른 기간과 느린 기간의 기하급수적인 이동 평균 (EMA) 을 계산하고, 차트에 그 그림을 그리며, 트렌드 반전을 결정하기 위해 실시간으로 크로스오버를 모니터링합니다. 잘못된 신호를 피하기 위해 RSI 오시일레이터를 통합하여 거래 신호가 형성됩니다. 빠른 EMA가 느린 EMA를 넘을 때 구매 신호가 생성됩니다. 빠른 EMA가 느린 EMA를 넘을 때 판매 신호가 생성됩니다.
이 전략은 중장기 트렌드를 포착하기 위해 RSI에 의해 필터링된 EMA 크로스오버를 사용하여 트렌드 반전을 결정하는 명확한 논리를 가지고 있습니다. 그러나 EMA/RSI 매개 변수 최적화 및 스톱 로스, 그리고 변동성 시장에서 회전 및 실패의 위험이 남아 있습니다. 조정된 매개 변수 및 위험 통제로 전환점을 식별하고 투자 결정을 작성하는 데 도움이 될 수 있습니다.
/*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)