이 전략은 이동 평균 컨버전스 디버전스 (MACD) 및 상대적 강도 지수 (RSI) 인디케이터를 결합한 양적 거래 시스템이다. 이 전략은 거래 결정을 내리기 위해 이 두 가지 기술 지표의 크로스오버 신호와 과잉 구매 / 과잉 판매 수준을 분석하여 시장 트렌드 반전 지점을 식별합니다. 시스템은 자동으로 시장 기회를 포착하여 프로그래밍 방식으로 거래를 실행합니다.
핵심 논리는 두 가지 주요 기술 지표: MACD 및 RSI에 기반합니다. MACD 지표는 트렌드 방향을 결정하기 위해 신호 라인 (9 기간 이동 평균) 과 비교하여 빠른 (12 기간) 및 느린 (26 기간) 이동 평균의 차이를 계산합니다. RSI 지표는 시장이 과소매 또는 과소매인지 결정하기 위해 14 기간 동안 상대적 강도를 계산합니다.
구매 신호는 MACD 라인이 신호 라인 위에 넘어가고 RSI가 70 (가장 구매 수준) 이하일 때 생성된다. 매출 신호는 MACD 라인이 신호 라인 아래에 넘어가고 RSI가 30 (가장 판매 수준) 이상일 때 생성된다. 이 이중 확인 메커니즘은 잘못된 신호를 효과적으로 필터한다.
MACD-RSI 동적 크로스오버 양적 거래 시스템은 고전적인 기술 분석 지표를 결합한 자동화 거래 전략이다. MACD 트렌드 판단과 RSI 과잉 구매/ 과잉 판매 확인의 이중 메커니즘을 통해 시장 전환점을 효과적으로 포착한다. 전략은 높은 신뢰성과 강력한 적응력을 제공하지만 거래자는 불안정한 시장 및 신호 지연 위험에 유의해야합니다. 추가 기술 지표와 신호 확인 최적화를 도입함으로써 개선할 수있는 상당한 여지가 있습니다. 실제 응용에서는 투자자가 특정 시장 조건에 따라 매개 변수를 조정하고 다른 분석 방법과 결합해야합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-03 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MACD + RSI Strategy", overlay=true) // MACD settings fastLength = input.int(12, title="MACD Fast Length") slowLength = input.int(26, title="MACD Slow Length") signalSmoothing = input.int(9, title="MACD Signal Smoothing") // RSI settings rsiLength = input.int(14, title="RSI Length") rsiOverbought = input.float(70, title="RSI Overbought Level") rsiOversold = input.float(30, title="RSI Oversold Level") // Calculate MACD [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) // Calculate RSI rsi = ta.rsi(close, rsiLength) // Generate buy and sell signals buySignal = ta.crossover(macdLine, signalLine) and rsi < rsiOverbought sellSignal = ta.crossunder(macdLine, signalLine) and rsi > rsiOversold // Plot buy and sell signals on chart plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy entry and exit if buySignal strategy.entry("Buy", strategy.long) if sellSignal strategy.close("Buy") // Plot MACD and Signal Line plot(macdLine, color=color.blue, title="MACD Line") plot(signalLine, color=color.orange, title="Signal Line") // Plot RSI hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green) plot(rsi, color=color.purple, title="RSI")