이 전략은 거래 신호의 신뢰성을 향상시키기 위해 상대적 강도 지수 (RSI), 이동 평균 컨버전스 디버전스 (MACD), 평균 진실 범위 (ATR) 와 함께 두 개의 기하급수적인 이동 평균 (EMA) 의 크로스오버를 주요 거래 신호로 사용합니다. 빠른 EMA가 느린 EMA를 넘을 때, RSI는 70 이하이며, MACD 라인은 신호 라인의 위에 있으며, ATR 값은 이전 기간에 비해 10% 이상 증가하면 긴 신호가 생성됩니다. 반대로 빠른 EMA가 느린 EMA를 넘을 때, RSI는 30 이상이며, MACD 라인은 신호 라인의 아래에 있으며, ATR 값은 이전 기간에 비해 10% 이상 증가하면 신호가 생성됩니다. 또한 고정 포인트 스톱 손실 및 수익을 통제하는 짧은 전략은 위험을 감수합니다.
이 전략은 EMA, RSI, MACD 및 ATR와 같은 여러 기술적 지표를 결합하여 비교적 신뢰할 수있는 거래 신호를 생성하며, 고정 포인트 스톱 로스 및 수익을 설정하여 위험을 제어합니다. 전략에는 여전히 몇 가지 단점이 있지만 더 많은 지표를 도입하고, 스톱 로스 및 수익을 최적화하고, 근본 분석을 결합하는 등의 추가 최적화로 개선 될 수 있습니다. 전반적으로 전략은 논리적으로 명확하고 이해하기 쉽고 구현하기 쉽고 초보자도 배우고 사용할 수 있습니다.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Enhanced EMA Crossover Strategy", overlay=true) // Indicators ema_fast = ema(close, 8) ema_slow = ema(close, 14) rsi = rsi(close, 14) // Correcting the MACD variable definitions [macd_line, signal_line, _] = macd(close, 12, 26, 9) atr_value = atr(14) // Entry conditions with additional filters long_condition = crossover(ema_fast, ema_slow) and rsi < 70 and (macd_line > signal_line) and atr_value > atr_value[1] * 1.1 short_condition = crossunder(ema_fast, ema_slow) and rsi > 30 and (macd_line < signal_line) and atr_value > atr_value[1] * 1.1 // Adding debug information plotshape(series=long_condition, color=color.green, location=location.belowbar, style=shape.xcross, title="Long Signal") plotshape(series=short_condition, color=color.red, location=location.abovebar, style=shape.xcross, title="Short Signal") // Risk management based on a fixed number of points stop_loss_points = 100 take_profit_points = 200 // Order execution if (long_condition) strategy.entry("Long", strategy.long, comment="Long Entry") strategy.exit("Exit Long", "Long", stop=close - stop_loss_points, limit=close + take_profit_points) if (short_condition) strategy.entry("Short", strategy.short, comment="Short Entry") strategy.exit("Exit Short", "Short", stop=close + stop_loss_points, limit=close - take_profit_points) // Plotting EMAs for reference plot(ema_fast, color=color.blue, title="Fast EMA") plot(ema_slow, color=color.orange, title="Slow EMA")