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

거래 전략에 따른 MACD-Supertrend 이중 확인 트렌드

저자:차오장, 날짜: 2024-12-11 17:16:05
태그:MACDATRSMA

img

전반적인 설명

이 전략은 MACD 지표와 슈퍼트렌드 지표를 결합한 트렌드를 따르는 이중 확인 시스템이다. 이 전략은 위험 관리에 대한 일정한 비율의 스톱 로스 및 영리 수준을 통합하여 슈퍼트렌드 방향을 고려하면서 MACD 라인 크로스오버를 신호 라인과 비교하여 입구 지점을 결정한다. 이 이중 확인 메커니즘은 거래 신호의 신뢰성을 향상시키고 잘못된 신호의 간섭을 효과적으로 감소시킨다.

전략 원칙

전략의 핵심 논리는 다음의 핵심 요소에 기초합니다.

  1. 슈퍼 트렌드 지표: 현재 시장 트렌드 방향을 결정하기 위해 트렌드 라인을 계산하기 위해 20 기간 ATR 및 2의 인자를 사용합니다.
  2. MACD 지표: 클래식 12/26/9 매개 변수 설정을 사용하여 빠르고 느린 라인 크로스오버를 통해 거래 신호를 생성합니다.
  3. 진입 조건: 매크드 빠른 라인이 느린 라인 (구매 신호) 위를 넘고 슈퍼 트렌드 방향이 상승 (방향==1) 이면만 구매 주문이 발동됩니다.
  4. 리스크 관리: 자본을 보호하고 수익을 확보하기 위해 각 거래에 0.5%의 스톱 로스와 99.99%의 수익을 취하는 수준을 설정합니다.

전략적 장점

  1. 이중 확인 메커니즘: 트렌드 추적 (슈퍼트렌드) 및 추진력 (MACD) 인디케이터를 결합하여 거래 신호의 정확성을 크게 향상시킵니다.
  2. 강력한 적응력: 슈퍼트렌드 지표는 ATR 계산을 통해 시장 변동성에 기초한 매개 변수를 자동으로 조정합니다.
  3. 종합적인 리스크 제어: 비율 기반의 스톱 로스 전략은 거래당 통제 가능한 리스크를 보장합니다.
  4. 명확한 실행 논리: 잘 정의된 입출구 조건은 주관적 판단의 간섭을 최소화합니다.
  5. 간단한 운영: 전략 논리는 직관적이며 실제 운영과 모니터링을 용이하게합니다.

전략 위험

  1. 트렌드 의존성 (Trend Dependence): 시장의 범위에서 빈번한 잘못된 신호를 생성하여 거래 비용을 증가시킬 수 있습니다.
  2. 지연 위험: MACD와 슈퍼트렌드 모두 지연 지표로 빠른 시장 전환에 느리게 반응할 수 있습니다.
  3. 고정 스톱 로스 위험: 고정 비율의 스톱 로스는 다른 시장 환경에서 변동성 특성에 적절하게 적응하지 않을 수 있습니다.
  4. 매개 변수 민감성: 전략의 효과는 여러 매개 변수 설정에 달려 있으며 지속적인 최적화가 필요합니다.

전략 최적화 방향

  1. 동적 스톱 로스 최적화: 더 나은 시장 적응을 위해 고정 스톱 로스를 ATR 기반 동적 스톱 로스로 대체하는 것이 좋습니다.
  2. 시장 환경 필터링: 높은 변동성 동안 매개 변수를 조정하거나 일시 중지하기 위해 시장 환경 필터로 변동성 지표 (예를 들어, VIX) 를 추가합니다.
  3. 부피 가격 관계 통합: 신호 확인 시스템에 부피 지표를 통합하는 것을 고려하십시오.
  4. 매개 변수 적응 최적화: 시장 상황에 따라 매개 변수 적응 메커니즘을 개발합니다.
  5. 포지션 관리 강화: 시장 변동성 및 계정 자금에 기초한 거래 크기를 조정하는 동적 포지션 사이즈 메커니즘을 도입합니다.

요약

이 전략은 MACD 및 슈퍼트렌드 지표의 장점을 결합하여 비교적 신뢰할 수있는 트렌드 다음 거래 시스템을 구축합니다. 46%의 정확도율과 46%의 수익률이 수익 가능성을 보여줍니다. 제안된 최적화, 특히 동적 스톱 로스 및 시장 환경 필터링을 통해 전략의 안정성과 적응력을 더욱 향상시킬 수 있습니다. 내일 및 선물 거래에 적합합니다. 사용자는 시장 환경 호환성을 유의하고 실제 조건에 따라 매개 변수를 조정해야합니다.


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

//@version=5
strategy('MANTHAN BHRAMASTRA', overlay=true)

// Supertrend function
f_supertrend(_period, _multiplier) =>
    atr = ta.sma(ta.tr, _period)
    upTrend = hl2 - _multiplier * atr
    downTrend = hl2 + _multiplier * atr
    var float _supertrend = na
    var int _trendDirection = na
    _supertrend := na(_supertrend[1]) ? hl2 : close[1] > _supertrend[1] ? math.max(upTrend, _supertrend[1]) : math.min(downTrend, _supertrend[1])
    _trendDirection := close > _supertrend ? 1 : -1
    [_supertrend, _trendDirection]

// Supertrend Settings
factor = input(2, title='Supertrend Factor')
atrLength = input(20, title='Supertrend ATR Length')

// Calculate Supertrend
[supertrendValue, direction] = f_supertrend(atrLength, factor)


// MACD Settings
fastLength = input(12, title='MACD Fast Length')
slowLength = input(26, title='MACD Slow Length')
signalSmoothing = input(9, title='MACD Signal Smoothing')

// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)

// Generate Buy signals
buySignal = ta.crossover(macdLine, signalLine) and direction == 1

// Plot Buy signals

// Calculate stop loss and take profit levels (0.25% of the current price)
longStopLoss = close * 0.9950
longTakeProfit = close * 1.9999

// Execute Buy orders with Target and Stop Loss
if buySignal
    strategy.entry('Buy', strategy.long)
    strategy.exit('Sell', 'Buy', stop=longStopLoss, limit=longTakeProfit)



관련

더 많은