이 전략은 트렌드를 결정하기 위해 RSI 지표와 시장에 진입하기 위해 MACD 지표를 사용하는 추세를 따르는 황금 전략입니다. 또한 트렌드 필터로 EMA 라인을 통합하고 위험을 제어하기 위해 긴급 스톱 로스를 사용합니다.
이 전략은 주로 트렌드 방향을 결정하기 위해 RSI 지표에 의존합니다. RSI가 설정된 긴 라인 (21 기본값) 을 넘을 때 시장이 상승 추세로 역전될 수 있다고 간주됩니다. 이 시점에서 MACD가 이미 하락 추세에 있다면 역전 지점에 있다고 판단 할 수 있습니다. 이것은 긴 거리를 할 수있는 좋은 기회입니다.
또한, 전략은 또한 EMA 라인 (디폴트 200 기간) 을 트렌드 필터로 도입합니다. 가격이 EMA 라인 이상일 때만 긴 거래가 고려됩니다. 이는 트렌드가 불분명하거나 감소할 때 가짜 반전을 효과적으로 필터 할 수 있습니다.
스톱 로스 측면에서는 전략 또한 정규 스톱 로스 라인과 비상 스톱 로스 라인을 설정합니다. RSI가 정규 스톱 로스 라인 (86 기본값) 아래로 넘어가면 포지션을 닫습니다. 가격이 급격히 하락하고 RSI가 비상 스톱 로스 라인 (73 기본값) 아래로 넘어가면 최대 손실을 제어하기 위해 무조건 포지션을 닫습니다.
요약하자면, 이 전략은 황소 전략을 따르는 비교적 전통적인 트렌드이다. 그것은 RSI로 반전 지점을 식별하고, MACD로 잘못된 판단을 필터링하고, EMA로 주요 트렌드를 결정하고, 스톱 로스로 위험을 제어한다. 전략은 매우 간단하고 직관적이며, 이해하기 쉽고, 시장 반전을 판단하는 데 약간의 이점을 가지고 있어 알고 거래에 좋은 출발점 전략이다. 그러나 진입 신호, 트렌드 판사 및 스톱 로스 메커니즘을 최적화함으로써 추가 개선을 위한 넓은 공간이 여전히 있다.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dravitch //@version=4 strategy("RSI - BULL RUN (Improved)", overlay=true) // Input UseEmergency = input(true, "Use Emergency Exit?") RSIlong = input(21, "RSI Long Cross") RSIcloseLong = input(86, "RSI Close Long Position") EmergencycloseLong = input(73, "RSI Emergency Close Long Position") UseEMAFilter = input(true, "Use EMA Trend Filter") EMAlength = input(200, "EMA Length for Trend Filter") // Utiliser 200 pour SMMA // RSI rsiValue = rsi(close, 14) // MACD [macdLine, signalLine, _] = macd(close, 12, 26, 9) // EMA Trend Filter emaTrend = sma(close, EMAlength) // Utiliser sma pour la SMMA (Simple Moving Average) // Conditions pour les trades longs trendUp = close > emaTrend trendDown = close < emaTrend longCondition = crossover(rsiValue, RSIlong) and trendDown or crossunder(macdLine, signalLine) and crossover(rsiValue, RSIlong) longCloseCondition = crossunder(rsiValue, RSIcloseLong) and trendUp emergencyLongCondition = crossunder(rsiValue, EmergencycloseLong) // Plots plot(rsiValue, color=color.white, linewidth=2, title="RSI") // Strategy if (longCondition) strategy.entry("Long", strategy.long, alert_message='RSI Long Cross: LONG') if (longCloseCondition) strategy.close("Long", alert_message='RSI Close Long Position') if (emergencyLongCondition and UseEmergency) strategy.close("Long", alert_message='RSI Emergency Close Long') // Plot EMA Trend Filter in a separate pane plot(emaTrend, color=color.rgb(163, 0, 122), title="EMA Trend Filter", linewidth=2, style=plot.style_line, transp=0) hline(0, "Zero Line", color=color.gray)