리소스 로딩... 로딩...

MACD-RSI 이중 확인 거래 전략에 따른 동력 추세

저자:차오장, 날짜: 2024-12-12 16:16:54
태그:MACDRSITSMA듀얼

img

전반적인 설명

이 전략은 MACD와 RSI 기술 지표를 결합한 트렌드를 따르는 거래 시스템이다. 이 전략은 두 개의 신호 검증 접근 방식을 구현하여 과반 구매 / 과반 판매 확인을 위해 RSI를 활용하는 동안 MACD를 사용하여 가격 트렌드 변화를 캡처합니다. 이 전략은 포지션 통제를 위해 고정 화폐 관리를 사용하고 수익을 보호하기 위해 트레일링 스톱 메커니즘을 포함합니다.

전략 원칙

전략의 핵심 논리는 몇 가지 핵심 요소에 기반합니다.

  1. MACD 신호 시스템은 더 짧은 기간 (6,13,5) 을 사용하며 시장 반응에 대한 민감도를 높입니다. MACD 라인이 신호 라인의 위를 넘을 때 잠재적인 상승 추세를 나타냅니다.
  2. RSI는 보조 확인 도구로 작용하며, 30은 과잉 판매 한계로 설정됩니다. 구매 신호는 RSI 값이 30보다 크거나 같을 때만 활성화되며, 과잉 판매 지역에서 빈번한 거래를 피합니다.
  3. 화폐 관리는 고정 금액 전략을 채택하고 거래 당 110 개의 코트 통화를 투자하며, 현재 가격에 따라 역동적으로 계산되는 포지션 크기를 사용합니다.
  4. 트레일링 스톱 메커니즘은 2%의 추적 거리에 설정되어 수익을 효율적으로 고정하고 마취 위험을 제어합니다.

전략적 장점

  1. 이중 기술 지표 확인 메커니즘은 거래 신호의 신뢰성을 높이고 잘못된 신호의 간섭을 줄입니다.
  2. 더 짧은 MACD 기간을 사용하면 시장 변화에 대한 전략의 민감성과 반응 속도가 향상됩니다.
  3. 고정 금액 거래는 금전 관리를 단순화하고 위험 통제와 수익 추적을 촉진합니다.
  4. 트레일링 스톱 메커니즘은 자동으로 스톱 로스 포지션을 조정하여 수익을 보호하면서 충분한 가격 움직임을 허용합니다.
  5. 전략 논리는 명확하고 간단하며 이해와 유지가 쉬우면서도 좋은 확장성을 제공합니다.

전략 위험

  1. 짧은 MACD 기간은 변동 시장에서 과도한 거래 신호를 생성하여 거래 비용을 증가시킬 수 있습니다.
  2. RSI 과잉 판매 기준을 30로 설정하면 중요한 트렌드 시작 기회를 놓칠 수 있습니다.
  3. 일정한 금액 거래는 전체 수익에 영향을 미치기 때문에 계좌 자금을 완전히 사용하지 않을 수 있습니다.
  4. 2%의 후속 스톱 거리는 매우 변동적인 시장에서 너무 가깝고, 조기 출구로 이어질 수 있습니다.
  5. 이 전략은 단지 긴 포지션을 지원하는데, 하락하는 추세에서 수익을 낼 수 없습니다.

전략 최적화 방향

  1. 적응력을 높이기 위해 다른 시장 주기에 기반한 MACD 매개 변수를 동적으로 조정하는 것을 고려하십시오.
  2. 변동성 지표 (ATR 등) 를 도입하여 후속 스톱 거리를 동적으로 조정하여 스톱 손실의 효과를 향상시킵니다.
  3. 두 가지 시장 방향의 이익에 가공 판매 메커니즘을 추가하는 것을 고려하십시오.
  4. 시그널 확인 신뢰성을 높이기 위해 시장 규모 지표를 포함합니다.
  5. 역동적인 포지션 관리 구현을 제안하여 계정 자본 및 시장 위험 수준에 따라 거래 크기를 자동으로 조정합니다.

요약

이것은 클래식 기술 지표에 기반한 트렌드를 따르는 전략으로, MACD와 RSI를 결합하여 신뢰할 수있는 거래 신호 생성을 달성합니다. 전략의 전반적인 디자인은 간결하고 실용적이며, 실전 응용 가치가 좋습니다. 합리적인 매개 변수 최적화 및 기능적 확장을 통해이 전략은 다른 시장 환경에서 안정적인 거래 성능을 달성 할 수 있습니다.


/*backtest
start: 2024-11-11 00:00:00
end: 2024-12-11 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cryptohitman09

//@version=6
strategy("MACD + RSI 交易系统 - 110 美金买入", overlay=true)

// MACD 設定
fastLength = input.int(6, title="MACD Fast Length")
slowLength = input.int(13, title="MACD Slow Length")
signalSmoothing = input.int(5, title="MACD Signal Smoothing")
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)

// RSI 設定
rsiLength = input.int(14, title="RSI Length")  // RSI 計算週期
rsiValue = ta.rsi(close, rsiLength)  // 計算 RSI 值
rsiThresholdHigh = input.int(70, title="RSI 超買閾值")  // RSI 超買閾值
rsiThresholdLow = input.int(30, title="RSI 超賣閾值")  // RSI 超賣閾值

// 做多信号条件:MACD 線突破信号線,且 RSI 不低於 30
buySignal = (macdLine > signalLine) and (rsiValue >= rsiThresholdLow) // 只有 RSI 大於或等於 30 時才觸發買入

// 计算每次交易的仓位(每次交易目标为 110 美金的买入金额)
tradeAmount = 20010  // 每次买入110 美金
orderSize = tradeAmount / close  // 根据当前价格计算仓位大小

// 移动止损(Trailing Stop)
enableTrailingStop = input.bool(true, title="启用移动止损")
trailingStopDistance = input.float(2, title="移动止损距离 (%)") / 89500  // 增加移动止损的距离
longTrailingStop = strategy.position_avg_price * (1 - trailingStopDistance)

// 交易逻辑:仅做多
if buySignal
    strategy.entry("买入", strategy.long, qty=orderSize)
    if enableTrailingStop
        strategy.exit("卖出", from_entry="买入", trail_price=longTrailingStop, trail_offset=trailingStopDistance * close)                                                                               

// 绘制 MACD 指标
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")

// 绘制 RSI 值
plot(rsiValue, color=color.orange, title="RSI Value")
hline(rsiThresholdHigh, "RSI 超买", color=color.red)
hline(rsiThresholdLow, "RSI 超卖", color=color.green)

// 绘制买入信号
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="买入信号", text="BUY")

// 如果触发买入信号,则发送警报
if buySignal
    alert('{"secret": "eyJhbGciOiJIUzI1NiJ9.eyJzaWduYWxzX3NvdXJjZV9pZCI6MTAwMDAyfQ.G1wLNjNyUPlTqYWsIqXSWnn_M4pRCKerBm7eTpyCiH8", "max_lag": "300", "timestamp": "{{timenow}}", "trigger_price": "{{close}}", "tv_exchange": "{{exchange}}", "tv_instrument": "{{ticker}}", "action": "{{strategy.order.action}}", "bot_uuid": "493b76f0-8a3c-4633-8b2b-90c02659dd4d", "strategy_info": {"market_position": "{{strategy.market_position}}", "market_position_size": "{{strategy.market_position_size}}", "prev_market_position": "{{strategy.prev_market_position}}", "prev_market_position_size": "{{strategy.prev_market_position_size}}"}, "order": {"amount": "{{strategy.order.contracts}}", "currency_type": "base"}}', alert.freq_once_per_bar_close)













관련

더 많은