이 전략은 상대적 강도 지수 (RSI), 이동 평균 (MA), 볼링거 밴드 (BB) 등 세 가지 주요 기술 지표를 통합한 양적 거래 시스템이다. 이 전략은 여러 기술 지표의 신호를 포괄적으로 분석함으로써 시장 추세와 변동성에서 최적의 거래 기회를 추구합니다. 중장기 추세를 판단하기 위해 MA20 및 MA50 크로스오버를 사용하여 RSI 과잉 구매 / 과잉 판매 신호 및 볼링거 밴드 브레이크 / 회귀와 결합하여 완전한 거래 결정 시스템을 구축합니다.
핵심 논리는 세 가지 차원으로 이루어져 있습니다.
긴 조건은 동시에 만족해야 합니다: RSI<25 (가장 팔린) + MA20> MA50 (상승 추세) + 가격
이 전략은 여러 기술적 지표의 시너지 조합을 통해 비교적 완전한 거래 시스템을 구축합니다. 명확한 트렌드가있는 시장에서 탁월한 성능을 발휘하지만 시장 환경 변화와 그에 따른 조정에주의를 기울여야합니다. 지속적인 최적화 및 개선으로 전략은 라이브 거래에서 안정적인 수익을 얻을 수 있습니다.
/*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("RSI + MA + BB30 Strategy", overlay=true) // === Cài đặt RSI === rsiLength = input(14, title="RSI Length") rsiOverbought = input(80, title="RSI Overbought Level") rsiOversold = input(25, title="RSI Oversold Level") rsi = ta.rsi(close, rsiLength) // === Cài đặt MA === maLength20 = input(20, title="MA20 Length") maLength50 = input(50, title="MA50 Length") ma20 = ta.sma(close, maLength20) ma50 = ta.sma(close, maLength50) // === Cài đặt Bollinger Bands (BB30) === bbLength = input(30, title="Bollinger Bands Length") bbStdDev = input(2, title="BB Standard Deviation") [bbUpper, bbBasis, bbLower] = ta.bb(close, bbLength, bbStdDev) // === Điều kiện giao dịch === // Điều kiện Long longCondition = (rsi < rsiOversold) and (ma20 > ma50) and (close < bbLower) // Điều kiện Short shortCondition = (rsi > rsiOverbought) and (ma20 < ma50) and (close > bbUpper) // === Mở lệnh giao dịch === if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // === Hiển thị chỉ báo trên biểu đồ === // Hiển thị MA plot(ma20, color=color.blue, title="MA20") plot(ma50, color=color.red, title="MA50") // Hiển thị Bollinger Bands plot(bbUpper, color=color.green, title="BB Upper") plot(bbBasis, color=color.gray, title="BB Basis") plot(bbLower, color=color.green, title="BB Lower") // Hiển thị RSI và mức quan trọng hline(rsiOverbought, "RSI Overbought", color=color.red, linestyle=hline.style_dashed) hline(rsiOversold, "RSI Oversold", color=color.green, linestyle=hline.style_dashed) plot(rsi, color=color.purple, title="RSI")