MACD와 RSI를 기반으로 한 추세추종 반전 전략


생성 날짜: 2023-12-18 17:53:38 마지막으로 수정됨: 2023-12-18 17:53:38
복사: 0 클릭수: 660
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

MACD와 RSI를 기반으로 한 추세추종 반전 전략

개요

이 전략은 MACD, EMA, RSI의 세 가지 지표를 통합하여 트렌드 추적 및 반전 거래를 수행합니다. MACD가 신호선을 상향으로 통과하고 EMA 평균보다 높은 가격으로 종료되면 구매 신호를 생성합니다. MACD가 신호선을 넘어 내려가 EMA 평균보다 낮은 가격으로 종료되면 판매 신호를 생성하여 트렌드를 캡처합니다. 또한 RSI가 오버 바이 오버 셀 영역에 도달하면 반전 거래를 수행합니다.

전략 원칙

  1. MACDdiffs와 EMA를 계산한다.
   fastMA = ema(close, fast)  
   slowMA = ema(close, slow)
   macd = fastMA - slowMA
   signal = sma(macd, 9)
   ema = ema(close, input(200))
  1. 구매 신호를 생성한다: MACD 차등 ((macd-signal) 에 0축을 통과하고 EMA 평균선보다 높은 종결 가격.
   delta = macd - signal 
   buy_entry= close>ema and delta > 0
  1. 판매 신호를 생성: MACD 차이는 0 축을 뚫고 EMA 평균선보다 낮은 종결 가격.
   sell_entry = close<ema and delta<0 
  1. RSI가 오버 바이 오버 셀 영역에 들어갔을 때, 반전 거래한다.
   if (rsi > 70 or rsi < 30)
       reversal := true

우위 분석

  1. 트렌드 추적과 반전 거래의 조합으로 주요 트렌드를 추적할 수 있고, 반전 지점에서 수익을 낼 수 있다.
  2. MACD를 사용하여 주요 트렌드 방향을 판단하여 가짜 돌파구를 피하십시오.
  3. EMA를 통해 일부 소음을 필터링합니다.
  4. RSI 지표는 반전 지점을 판단하고, 전략이 수익을 창출할 수 있는 공간을 강화한다.

위험 분석

  1. 큰 트렌드 시장에서 반전 거래는 손실을 초래할 수 있습니다.
  2. 매출이 증가하는 경우, 매출이 증가하는 경우, 매출이 증가하는 경우, 매출이 증가하는 경우, 매출이 증가하는 경우, 매출이 증가하는 경우, 매출이 증가하는 경우, 매출이 증가하는 경우.
  3. 역전 신호가 지연되어 최적의 출입 시간을 놓칠 수 있다.

해결책:

  1. 최적화 변수, 최적의 변수 조합을 찾습니다.
  2. 역전 거래의 RSI 마이너스를 적절히 조정하십시오.
  3. 손실을 통제하기 위해 Stop Loss을 추가하는 것을 고려하십시오.

최적화 방향

  1. 다양한 길이의 EMA 평균선 변수를 테스트한다.
  2. MACD 변수를 최적화하여 최적의 변수 조합을 찾습니다.
  3. 다양한 반전 RSI 임계값을 테스트한다.
  4. 다른 지표들을 더하는 것을 고려하여 kombinatio 조합을 한다.

요약하다

이 전략은 MACD, EMA 및 RSI 지표를 통합하여 트렌드 추적과 반전 거래를 유기적으로 결합합니다. MACD는 주요 트렌드 방향을 판단하고, EMA는 파동 소음을 감지하고, RSI 지표는 반전 지점을 포착합니다. 이러한 다중 지표 조합은 시장 움직임을 더 정확하게 판단하고, 잘못된 거래를 줄임과 동시에 수익률을 높일 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mbuthiacharles4

//Good with trending markets
//@version=4
strategy("CHARL MACD EMA RSI")

fast = 12, slow = 26
fastMA = ema(close, fast)
slowMA = ema(close, slow)
macd = fastMA - slowMA
signal = sma(macd, 9)

ema = ema(close, input(200))

rsi = rsi(close, input(14))
//when delta > 0  and close above ema buy

delta = macd - signal

buy_entry= close>ema and delta > 0
sell_entry = close<ema and delta<0 
var bought = false
var sold = false
var reversal = false
if (buy_entry and bought == false and rsi <= 70) 
    strategy.entry("Buy",true , when=buy_entry)
    bought := true
    
strategy.close("Buy",when= delta<0 or rsi > 70)
if (delta<0 and bought==true)
    bought := false

//handle sells

if (sell_entry and sold == false and rsi >= 30)
    strategy.entry("Sell",false , when=sell_entry)
    sold := true

strategy.close("Sell",when= delta>0 or rsi < 30)
if (delta>0 and sold==true)
    sold := false
    
if (rsi > 70 or rsi < 30)
    reversal := true
    placing = rsi > 70 ? high :low
    label.new(bar_index, placing, style=label.style_flag, color=color.blue, size=size.tiny)
if (reversal == true)
    if (rsi < 70 and sold == false and delta < 0)
        strategy.entry("Sell",false , when= delta < 0)
        sold := true
        reversal := false
    else if (rsi > 30 and bought == false and delta > 0)
        strategy.entry("Buy",true , when= delta > 0)
        bought := true
        reversal := false