MACD 다중 간격 동적 손절매 및 손절매 거래 시스템

MACD MA SMA EMA
생성 날짜: 2024-11-29 15:01:33 마지막으로 수정됨: 2024-11-29 15:01:33
복사: 0 클릭수: 487
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

MACD 다중 간격 동적 손절매 및 손절매 거래 시스템

개요

이 전략은 MACD 지표를 기반으로 한 자동화 된 거래 시스템으로, 동적 스톱 스톱 손실 메커니즘을 결합합니다. 전략의 핵심은 MACD 라인과 신호 라인의 교차로 거래 신호를 결정하며, 백분율 중단, 목표 수익 및 스톱 손실 추적과 같은 위험 관리 기능을 통합하여 완전히 자동화 된 거래를 구현합니다. 이 전략은 빠른 이동 평균과 느린 이동 평균의 차이를 사용하여 MACD 지표를 계산하고, 신호 라인의 교차로 시장 추세 전환점을 식별하여 그에 따른 거래 결정을 내립니다.

전략 원칙

전략의 핵심 논리는 다음과 같은 핵심 부분으로 구성됩니다.

  1. MACD 지표 계산: 12일과 26일을 기본 고속 및 느린 이동 평균 주기, 9일을 신호 라인 부드러운 주기로 사용한다.
  2. 입력 신호: MACD 라인이 아래에서 신호 라인을 돌파할 때, 시스템은 다중 신호를 생성한다. MACD 라인이 위에서 신호 라인을 넘어갈 때, 시스템은 공백 신호를 생성한다.
  3. 리스크 관리: 3가지 보호 메커니즘을 통합합니다.
    • 고정 스톱: 입시 가격 아래 1%
    • 수익 목표: 입점 가격보다 2%
    • 추적 스톱: 1.5%의 동적 추적 스톱 거리

전략적 이점

  1. 체계화된 거래: 완전히 자동화된 거래 결정 과정, 인간의 감정적 간섭을 피한다.
  2. 다중 위험 관리: 고정 손실, 목표 수익 및 추적 손실 세 가지 메커니즘을 통해 전체적인 위험 관리가 실현됩니다.
  3. 매개 변수 조정 가능: 모든 핵심 매개 변수는 시장 상황에 따라 최적화 조정할 수 있습니다.
  4. 트렌드 추적: 거래 성공률을 높이기 위해 시장 추세를 효과적으로 포착할 수 있는 전환점.

전략적 위험

  1. 흔들림 시장 위험: 가로판 흔들림 시장에서 빈번한 잘못된 신호가 발생할 수 있다.
  2. 슬라이드 포인트 위험: 시장이 급격하게 변동할 때, 실제 거래 가격은 이상적인 가격과 오차가 있을 수 있다.
  3. 매개 변수 감수성: 다른 시장 환경에서 최적 매개 변수가 현저하게 다를 수 있다.
  4. 체계적 위험: 시장의 급격한 변화는 손실을 막는 효과를 초래할 수 있다.

전략 최적화 방향

  1. 시장 환경 필터링을 추가합니다.
    • 거래 기회를 가하기 위해 변동성 지표를 추가합니다.
    • 합성 교량 확인 신호의 유효성
  2. 최적화 변수는 자율적으로 조정됩니다.
    • 매개 변수를 구현하는 동적 조정 메커니즘
    • 시장 특성에 따라 최적의 매개 변수를 자동으로 선택합니다
  3. 위험 관리 개선:
    • 자금 관리 모듈을 추가
    • 더 정교한 손해 방지 장치 개발

요약하다

이 전략은 MACD 지표의 교차 신호와 완벽한 위험 관리 시스템을 통해 안정적인 자동화 거래 시스템을 구축했다. 약간의 최적화 공간이 있지만, 기본 프레임 워크는 이미 완벽하다. 지속적인 최적화 및 개선으로 이 전략은 다양한 시장 환경에서 안정적인 성능을 유지할 수 있을 것으로 기대된다. 실장 적용 시 충분한 재검토를 실시하고 특정 시장 특성에 따라 매개 변수 설정을 조정하는 것이 좋습니다.

전략 소스 코드
/*backtest
start: 2024-01-01 00:00:00
end: 2024-11-01 00:00:00
period: 12h
basePeriod: 12h
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/
// © traderhub


//@version=5
strategy("MACD Strategy with Settings", overlay=true)

// Параметры MACD в контрольной панели
fastLength = input.int(12, title="Fast Length", minval=1, maxval=50)
slowLength = input.int(26, title="Slow Length", minval=1, maxval=50)
signalSmoothing = input.int(9, title="Signal Smoothing", minval=1, maxval=50)

// Параметры риска
stopLossPerc = input.float(1, title="Stop Loss (%)", step=0.1) // Стоп-лосс в процентах
takeProfitPerc = input.float(2, title="Take Profit (%)", step=0.1) // Тейк-профит в процентах
trailStopPerc = input.float(1.5, title="Trailing Stop (%)", step=0.1) // Трейлинг-стоп в процентах

// Вычисляем MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)

// Показываем MACD и сигнальную линию на графике
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
hline(0, "Zero Line", color=color.gray)

// Условия для покупки и продажи
longCondition = ta.crossover(macdLine, signalLine) // Покупка при пересечении MACD вверх сигнальной линии
shortCondition = ta.crossunder(macdLine, signalLine) // Продажа при пересечении MACD вниз сигнальной линии

// Расчет стоп-лосса и тейк-профита
var float longStopLevel = na
var float longTakeProfitLevel = na

if (longCondition)
    longStopLevel := strategy.position_avg_price * (1 - stopLossPerc / 100)
    longTakeProfitLevel := strategy.position_avg_price * (1 + takeProfitPerc / 100)
    strategy.entry("Long", strategy.long)

if (strategy.position_size > 0)
    // Установка стоп-лосса и тейк-профита
    strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLevel, limit=longTakeProfitLevel, trail_offset=trailStopPerc)

// Закрытие позиции при медвежьем сигнале
if (shortCondition)
    strategy.close("Long")
    strategy.entry("Short", strategy.short)