이 전략은 트렌드 추종 전략으로, 이중 기간 이동 평균 (21일 및 55일), RSI 모멘텀 지표 및 볼륨 분석을 결합한다. 이 전략은 트렌드 방향을 확인하고 트렌드 유효성을 확인하기 위해 RSI 및 볼륨 지표를 통해 거래 신호를 필터링하는 동시에 가격 방향, 모멘텀 및 볼륨 3 차원에서 시장 정보를 분석한다. 이 전략은 단기 이동 평균의 가격 돌파, RSI가 평균을 넘어서고 트렌드 유효성을 확인하기 위해 볼륨을 증가시키는 것을 요구한다.
이 전략은 세 가지 필터링 메커니즘을 사용합니다.
구매 조건은 다음의 모든 것을 요구합니다.
판매 조건은 다음의 어느 하나를 요구합니다.
이 전략은 기술 분석의 세 가지 필수 요소 (가격, 부피, 추진력) 를 포괄적으로 활용하는 트렌드 추적 전략이다. 여러 필터링 메커니즘을 통해 전략은 위험 통제 기능을 유지하면서 신호 신뢰성을 보장합니다. 일부 고유 한 한계점이 있지만 지속적인 최적화 및 개선으로 전략은 실제 거래에서 안정적인 수익을 얻을 수 있습니다. 전략은 명확한 추세와 충분한 유동성이있는 시장에서 특히 잘 수행 할 수 있습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("21/55 MA with RSI Crossover", overlay=true) // Inputs for moving averages ma21_length = input.int(21, title="21-day Moving Average Length", minval=1) ma55_length = input.int(55, title="55-day Moving Average Length", minval=1) // RSI settings rsi_length = input.int(13, title="RSI Length", minval=1) rsi_avg_length = input.int(13, title="RSI Average Length", minval=1) // Moving averages ma21 = ta.sma(close, ma21_length) ma55 = ta.sma(close, ma55_length) // Volume settings vol_ma_length = input.int(21, title="Volume MA Length", minval=1) // Volume moving average vol_ma = ta.sma(volume, vol_ma_length) // RSI calculation rsi = ta.rsi(close, rsi_length) rsi_avg = ta.sma(rsi, rsi_avg_length) // Buy condition // buy_condition = close > ma21 and ta.crossover(rsi, rsi_avg) and volume > vol_ma buy_condition = close > ma21 and rsi > rsi_avg and volume > vol_ma // Sell condition // sell_condition = close < ma55 or ta.crossunder(rsi, rsi_avg) sell_condition = ta.crossunder(close, ma55) or ta.crossunder(rsi, rsi_avg) // Execute trades if (buy_condition) strategy.entry("Buy", strategy.long, comment="Buy Signal") if (sell_condition) strategy.close("Buy", comment="Sell Signal") // Plot moving averages for reference plot(ma21, color=color.blue, title="21-day MA") plot(ma55, color=color.red, title="55-day MA") // Plot RSI and RSI average for reference rsi_plot = input.bool(true, title="Show RSI?", inline="rsi") plot(rsi_plot ? rsi : na, color=color.green, title="RSI") plot(rsi_plot ? rsi_avg : na, color=color.orange, title="RSI Average")