RSI 및 MACD 지표에 기초한 거래 전략

저자:차오장, 날짜: 2024-01-31 16:07:31
태그:

img

전반적인 설명

이 전략은 BTC의 거래 기회를 식별하기 위해 상대적 강도 지수 (RSI) 와 이동 평균 컨버전스 디버전스 (MACD) 인디케이터를 결합합니다. RSI가 30 이하이고 MACD 라인이 신호 라인 아래에 있고 MACD 히스토그램이 -100 이하일 때 길게 이동합니다. RSI가 80 이상이고 MACD 라인이 신호 라인 위에 있고 MACD 히스토그램이 250 이상일 때 짧게 이동합니다. 이 전략은 또한 수익을 잠금하기 위해 트레일링 스톱 로스를 사용합니다.

전략 논리

  1. RSI 인디케이터를 사용하여 시장이 과소매 또는 과소매인지 결정합니다. RSI 30 이하는 과소매 신호로 간주되며 80 이상은 과소매 신호로 간주됩니다.

  2. MACD 지표의 MACD 라인과 신호 라인의 교차점을 사용하여 입출구를 결정합니다. MACD 라인이 신호 라인의 위를 넘으면 구매 신호입니다. MACD 라인이 신호 라인의 아래를 넘으면 판매 신호입니다.

  3. 이 전략의 입시 규칙을 형성하기 위해 RSI와 MACD 지표의 신호를 결합하십시오.

  4. 수익을 잠금하기 위해 후속 스톱 손실을 사용하십시오. 후속 스톱 손실은 오픈 포지션의 이익 / 손실에 따라 동적으로 업데이트되며 효과적인 위험 통제를 허용합니다.

이점 분석

  1. RSI와 MACD 지표를 결합하면 잘못된 신호를 효과적으로 필터링할 수 있습니다.

  2. RSI는 과잉 구매/ 과잉 판매 시장 조건을 잘 감지합니다. MACD는 트렌드 변화를 잘 파악합니다. 둘 다 사용하면 강력한 전략을 만듭니다.

  3. 트래킹 스톱 로스는 실시간 시장 움직임에 따라 수익을 차단하고 위험을 통제합니다.

  4. 이 전략은 몇 가지 매개 변수를 가지고 있으며 실행하기가 쉽습니다.

위험 분석

  1. 단 하나의 도구의 위험은 BTC만을 거래하는 것입니다.

  2. RSI는 범위 및 하위 반전 시나리오에서 잘못된 신호를 생성 할 수 있습니다. MACD 오시레이터는 또한 불안정한 시장에서 잘못된 신호를 제공할 수 있습니다.

  3. 트레일링 스톱 로즈는 큰 시장 변동으로 큰 타격을 받을 수 있습니다. 위험을 통제하지 못하면요.

  4. 매개 변수 조정이 제대로 되지 않으면 과잉 거래 또는 놓친 거래로 이어질 수 있습니다.

더 나은 기회

  1. 거래 신호를 보완하기 위해 볼링거 밴드, KD 등과 같은 다른 지표를 추가하는 것을 고려하십시오.

  2. 다른 도구들 사이의 시장 간 상관관계를 연구하고, 여러 쌍의 평균 회귀 전략을 구축합니다.

  3. 스톱 로스 메커니즘을 최적화합니다. 예를 들어, 적절한 스톱 로스, 평균 스톱 로스 등.

  4. 스마트 매개 변수 최적화를 위해 기계 학습을 통합합니다.

요약

이 전략은 RSI와 MACD 지표에 기반한 트렌드 추적 전략으로 과소매/ 과소매 시나리오를 결정한다. 시장의 트렌드 변화를 파악하기 위해 기술 지표의 강점을 잘 결합한다. 한편, 전략 논리는 간단하고 구현하기 쉽다. 추가 최적화는 그 응용 프로그램을 확장할 수 있다.


/*backtest
start: 2023-01-24 00:00:00
end: 2024-01-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BTC/USDT RSI and MACD Strategy", overlay = true)

// Define the RSI period
rsiPeriod = input(14, "RSI Period")

// Calculate the RSI
rsi = ta.rsi(close, rsiPeriod)

// Define the MACD parameters
macdShort = input(12, "MACD Short Period")
macdLong = input(26, "MACD Long Period")
macdSignal = input(9, "MACD Signal Period")

// Calculate the MACD
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)

// Define the trailing stop level
trailing_stop_loss_factor = input.float(2.50, "Trailing Stop Loss Factor", step = 0.01)

// Define the entry and exit conditions
enterLong = ta.crossover(rsi, 30) and macdLine < signalLine and macdLine < -100
enterShort = ta.crossunder(rsi, 83) and macdLine > signalLine and macdLine > 250

// Submit the orders
if (enterLong)
    strategy.entry("Long", strategy.long)
if (enterShort)
    strategy.entry("Short", strategy.short)

// Trailing Stop Loss
longTrailingStopLoss = strategy.position_avg_price * (1 - trailing_stop_loss_factor / 100)
shortTrailingStopLoss = strategy.position_avg_price * (1 + trailing_stop_loss_factor / 100)
if strategy.position_size > 0 
    strategy.exit("Exit Long", "Long", stop  = longTrailingStopLoss)
if strategy.position_size < 0 
    strategy.exit("Exit Short", "Short", stop = shortTrailingStopLoss)

// Plot the indicators
plot(rsi, "RSI", color=color.blue)
hline(20, "RSI Lower Level", color=color.green)
hline(80, "RSI Upper Level", color=color.red)
plot(macdLine - signalLine, "MACD Histogram", color=color.red, style=plot.style_histogram)
hline(0, "Zero", color=color.gray)

더 많은