RSI 거래 전략의 MACD

저자:차오장, 날짜: 2023-09-21 20:48:50
태그:

전반적인 설명

이 전략은 RSI 지표의 경향을 결정하기 위해 MACD 지표를 사용하여 거래 신호를 생성합니다. 이는 지표 콤보 필터 전략 유형에 속합니다.

전략 논리

이 전략은 두 가지 주요 지표에 기반합니다.

  1. RSI 정규 14주기 RSI를 계산합니다.

  2. RSI의 MACD MACD 값을 RSI에 계산합니다. 기본으로 빠른 MA 12, 느린 MA 26, 신호 라인 9.

RSI의 MACD가 상향을 가로지르면, 빠르고 느린 MAs의 황금 교차는 상승 추세를 결정하고 길게 간다.

MACD가 하향선에 갈라지고, 빠른 MAs와 느린 MAs가 하향선에 갈라지면 하향선을 결정하고 단축합니다.

MACD의 지수 이동 평균은 RSI 자체의 장기 트렌드를 결정하는 데 도움이되며 더 정확한 신호를 제공합니다.

장점

  • MACD는 더 높은 정확성을 위해 RSI 트렌드 방향을 판단합니다.
  • 주요 지표로 RSI, 2차 지표로 MACD
  • 기하급수적 MA는 트렌드 결정이 안정되게 됩니다.
  • 조합은 서로 확인, 윙사 피하는
  • 매개 변수 조정은 다른 시장에 대한 유연성을 제공합니다

위험성

  • RSI 와 MACD 모두 뒤떨어질 수 있으며, 부정확한 신호로 이어질 수 있습니다
  • 잘못된 MACD 매개 변수는 더 많은 잘못된 신호를 생성할 수 있습니다.
  • 순전히 지표에 기반하고 갑작스러운 사건에 민감합니다.
  • 스톱 로스 메커니즘은 추가 개선이 필요합니다.
  • 다른 제품에 필요한 매개 변수 최적화

위험은 다음과 같이 감소 할 수 있습니다.

  • RSI와 MACD 매개 변수 조합을 최적화
  • 확인을 위한 다른 필터를 추가합니다
  • TP/SL의 완화로 조기 출퇴를 방지합니다.
  • 재입국을 고려합니다.
  • 단일 손실을 제한하기 위한 포지션 크기

개선 방향

이 전략은 다음과 같이 개선될 수 있습니다.

  1. RSI와 MACD 매개 변수 조합 테스트

  2. MACD 신호가 표시될 때 2차 확인을 추가합니다.

    예를 들어 촛불 패턴, 부피, 볼린거 밴드 등

  3. 후속 스톱으로 정지 최적화

  4. 재입국규칙 추가

    트렌드가 계속되면 스톱이 타격된 후 포지션을 재설립합니다.

  5. 변동성에 따라 포지션 크기의 조정

    높은 변동성에서 크기가 작고, 낮은 변동성에서 크기가 크다

요약

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







더 많은