이 전략은 RSI 지표의 경향을 결정하기 위해 MACD 지표를 사용하여 거래 신호를 생성합니다. 이는 지표 콤보 필터 전략 유형에 속합니다.
이 전략은 두 가지 주요 지표에 기반합니다.
RSI 정규 14주기 RSI를 계산합니다.
RSI의 MACD MACD 값을 RSI에 계산합니다. 기본으로 빠른 MA 12, 느린 MA 26, 신호 라인 9.
RSI의 MACD가 상향을 가로지르면, 빠르고 느린 MAs의 황금 교차는 상승 추세를 결정하고 길게 간다.
MACD가 하향선에 갈라지고, 빠른 MAs와 느린 MAs가 하향선에 갈라지면 하향선을 결정하고 단축합니다.
MACD의 지수 이동 평균은 RSI 자체의 장기 트렌드를 결정하는 데 도움이되며 더 정확한 신호를 제공합니다.
위험은 다음과 같이 감소 할 수 있습니다.
이 전략은 다음과 같이 개선될 수 있습니다.
RSI와 MACD 매개 변수 조합 테스트
MACD 신호가 표시될 때 2차 확인을 추가합니다.
예를 들어 촛불 패턴, 부피, 볼린거 밴드 등
후속 스톱으로 정지 최적화
재입국규칙 추가
트렌드가 계속되면 스톱이 타격된 후 포지션을 재설립합니다.
변동성에 따라 포지션 크기의 조정
높은 변동성에서 크기가 작고, 낮은 변동성에서 크기가 크다
이 전략은 RSI와 MACD 지표를 결합하여 보다 정확하고 안정적인 트렌드 검출을 위해 서로 확인합니다. 그러나 매개 변수는 최적화가 필요하며 갑작스러운 사건을 피하기 위해 추가적인 기술적 필터 또는 거래 규칙이 필요합니다. 또한 스톱 로스 메커니즘과 동적 위치 사이징이 중요합니다. 지속적인 학습과 최적화는 안정적인 이익을 위해 변화하는 시장 조건에 적응하는 데 중요합니다.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "MACD of RSI", overlay = false) //////////////////////// RSI /////////////////////////// src = close, len = input(14, minval=1, title="Length") up = sma(max(change(src), 0), len) down = sma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //////////////////////// RSI ////////////////////////// //////////////// MACD //////////////////////////// sourcemacd = rsi fastLength = input(12, minval=1), slowLength=input(26,minval=1) signalLength=input(9,minval=1) fastMA = ema(sourcemacd, fastLength) slowMA = ema(sourcemacd, slowLength) macd = fastMA - slowMA signal = ema(macd, signalLength) delta=macd-signal swap1 = delta>0?green:red plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20) p1 = plot(macd,color=blue,title='MACD Line') p2 = plot(signal,color=red,title='Signal') fill(p1, p2, color=blue) hline(0) /////////////////////////MACD ////////////////////////// // Conditions longCond = na sellCond = na longCond := crossover(delta,0) sellCond := crossunder(delta,0) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( sellCond ) strategy.close("BUY")