RSI를 활용한 MACD 거래 전략


생성 날짜: 2023-09-21 20:48:50 마지막으로 수정됨: 2023-09-21 20:48:50
복사: 0 클릭수: 852
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 MACD 지표를 사용하여 RSI 지표의 추세를 판단하여 거래 신호를 생성합니다. 지표 조합을 사용하여 파장을 가하는 전략 유형에 속합니다.

전략 원칙

이 전략은 크게 두 가지의 지표에 근거하여 판단됩니다.

  1. RSI 지표 일반적인 14주기 RSI 값을 계산한다.

  2. RSI의 MACD RSI 지표에 대한 MACD 값을 계산, 기본 빠른 라인 12 주기, 느린 라인 26 주기, 신호 라인 9 주기.

RSI의 MACD 기둥이 마이너스 교정, 즉 MACD 느린 라인 포크로 다목적 경향으로 판단될 때, 구매한다.

RSI의 MACD가 마이너스 전환을 통해, 즉 MACD 빠른 느린 라인 사다리 사다리가 공백 경향으로 판단될 때, 판매한다.

여기서 MACD 지수가 평평한 이동 평균을 사용하여 RSI 자체의 장기 트렌드 방향을 판단하여 더 정확한 거래 신호를 생성합니다.

전략적 이점

  • MACD를 사용하여 RSI 트렌드 방향을 판단하여 신호의 정확성을 향상시킵니다.
  • RSI가 주 지표로, MACD가 보조 판단 지표로
  • MACD 지수는 평평한 이동 평균, 안정적인 판단
  • 조합 지표가 서로 검증하여 부진을 피할 수 있습니다.
  • 변수 최적화와 함께 시장 변화에 적응할 수 있는 유연성

전략적 위험

  • RSI와 MACD 모두 지연될 수 있으며 신호가 정확하지 않습니다.
  • MACD 변수가 잘못되면 더 많은 오류 신호가 나타납니다.
  • 단지 지표의 조합에 기초하여 비상사태에 민감합니다.
  • 손해 막는 방법은 더 발전할 수 있습니다.
  • 다양한 품종에 대한 테스트 매개 변수를 최적화해야 합니다.

위험은 다음과 같이 줄일 수 있습니다.

  • RSI와 MACD의 변수 조합을 최적화합니다.
  • 다른 지표 또는 거래 규칙에 가입을 확인합니다.
  • 조기 출전을 줄이기 위해 적절한 완화 기준을 적용하십시오.
  • 재입학제도에 가입하는 것을 고려하세요.
  • 포지션 관리를 조정하여 단일 손실을 방지합니다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. RSI와 MACD의 변수 조합을 테스트합니다.

  2. MACD 신호가 출력될 때 두 번째 확인 조건을 추가합니다.

예를 들어, K선 형태, 거래량, 브린의 위치 등이 있습니다.

  1. 정지 손실 전략을 최적화하여 정지 손실을 추적하는 것

  2. 재입학 메커니즘

스톱로즈 탈퇴 후, 트렌드가 계속되면 포지션을 재건할 수 있습니다.

  1. 시장의 변동에 따라 위치를 조정합니다.

높은 변동성으로 지위를 줄이고 낮은 변동성으로 지위를 늘립니다.

요약하다

이 전략은 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")