이 전략은 시장 변동성 분석을 위해 Bollinger Bands와 결합한 MACD 및 RSI 크로스오버 신호를 기반으로하는 트렌드 다음 시스템입니다. 핵심 접근법은 MACD 황금 / 죽음의 교차와 RSI 과잉 구매 / 과잉 판매 구역의 조정으로 트렌드 반전 지점을 캡처하는 한편, 더 강력한 거래 신호를위한 가격 변동성 범위를 확인하기 위해 Bollinger Bands를 사용하는 것입니다.
이 전략은 세 가지 기술 지표 필터링 메커니즘을 사용합니다.
진입 조건은 MACD 황금 십자 및 RSI가 하위 구역 (<50) 에 있어야 하며, 이는 과판 지역으로부터 잠재적인 시장 회복을 나타냅니다. 출구 조건은 MACD 도드 크로스 및 RSI가 더 높은 영역 (> 50) 에 있는 것을 요구하며 상승 동력 약화와 가능한 보정을 시사합니다.
이 전략은 MACD, RSI 및 볼링거 밴드의 결합 응용을 통해 비교적 완전한 트렌드 다음 거래 시스템을 구축합니다. 그것은 탄탄한 이론적 기초와 실용적 타당성을 가지고 있지만, 여전히 특정 시장 특성에 따라 매개 변수 최적화 및 리스크 제어 개선이 필요합니다. 제안 된 최적화 방향을 통해 전략은 더 나은 안정성과 수익성을 얻을 수 있습니다. 시스템은 중장기 트렌드 기회를 찾는 투자자에게 적합하지만 사용자는 그 한계를 완전히 이해하고 적절한 리스크 관리를 구현해야합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MACD, RSI, Bollinger Bands Strategy", overlay=true) // Input parameters for MACD fastLength = input.int(12, title="MACD Fast Length") slowLength = input.int(26, title="MACD Slow Length") signalLength = input.int(9, title="MACD Signal Length") // Input parameters for RSI rsiLength = input.int(14, title="RSI Length") // Input parameters for Bollinger Bands bbLength = input.int(20, title="Bollinger Band Length") bbMult = input.float(2.0, title="Bollinger Band Multiplier") // MACD calculation [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength) macdCrossUp = ta.crossover(macdLine, signalLine) macdCrossDown = ta.crossunder(macdLine, signalLine) // RSI calculation rsi = ta.rsi(close, rsiLength) // Bollinger Bands calculation bbBasis = ta.sma(close, bbLength) bbUpper = bbBasis + bbMult * ta.stdev(close, bbLength) bbLower = bbBasis - bbMult * ta.stdev(close, bbLength) // Plot Bollinger Bands plot(bbBasis, color=color.blue, title="Bollinger Band Basis") plot(bbUpper, color=color.green, title="Upper Bollinger Band") plot(bbLower, color=color.red, title="Lower Bollinger Band") // Entry condition: MACD crosses signal line from below and RSI < 50 enterLong = macdCrossUp and rsi < 50 // Exit condition: MACD crosses signal line from above and close touches the Bollinger Band middle line exitLong = macdCrossDown and rsi> 50 // Strategy logic if (enterLong and strategy.position_size == 0) strategy.entry("Buy", strategy.long) if (exitLong and strategy.position_size > 0) strategy.close("Buy")