역동 MACD 모멘텀은 DMI 브레이크오웃 단기 스칼핑 전략과 얽혀있다

저자:차오장, 날짜: 2023-11-13 17:42:23
태그:

img

전반적인 설명

이 전략은 단기 하락 추세가 시작되었다는 것을 확인하기 위해 강도에 기반한 두 가지 지표를 사용하여 곰 시장 조건에서 단축에 초점을 맞추고 가능한 한 빨리 단축 기회를 잡습니다.

이 전략은 장기적으로 거래할 계획인 코인에 잘 작동하며, 특히 당신을 위해 거래를 실행할 수 있는 자동화 거래 봇을 사용하는 동안 잘 작동합니다. 이는 전체 보유를 위험에 빠뜨리지 않고 거래에 코인의 비율을 할당함으로써 투자를 헤지 할 수 있습니다. 이것은 수익에서 추가 현금을 제공하므로 거래에서 실현되지 않은 손실을 완화합니다. 당신은이 현금을 헤지하거나 시장이 매력적인 구매 수준에 도달 할 때 재투자하는 것을 선택할 수 있습니다.

다른 방법으로는 선물 시장에서 거래를 할 때 이것을 사용할 수 있습니다. 약격하기 전에 기본 자산을 이미 소유할 필요가 없는 경우입니다.

전략 논리

거래 시스템은 매멘텀 평균 컨버전스 디버전스 (MOMENTUM AVERAGE CONVERGENCE DIVERGENCE, MACD) 지표와 방향 움직임 지표 (DIRECTIONAL MOVEMENT INDEX, DMI) 지표를 사용하여 매매의 가장 좋은 시기를 확인합니다. 이 두 지표를 결합하면 상승 추세 중 거래를 방지하고 낮은 변동성을 가진 시장에 갇히는 가능성을 줄입니다.

MACD는 트렌드를 따르는 모멘텀 지표이며 단기 트렌드 방향의 식별을 제공합니다. 이 변형에서는 12 기간을 빠른 기간과 26 기간을 느린 길이의 EMA로 사용하고 신호 평형을 9로 설정합니다.

DMI는 가격이 어떤 방향으로 유행하고 있는지 표시하고 각각 사이에 그려진 두 개의 선 - 긍정적 방향 움직임 선 (+DI) 및 부정적인 방향 움직임 선 (-DI) 으로 이전 최저와 최고를 비교합니다. 추세는 두 선과 어떤 선이 더 큰지를 비교하여 해석 할 수 있습니다. 부정적인 DMI가 긍정적 인 DMI보다 크면 자산이 지속적인 하락 추세에 거래되는 확률이 더 높으며 그 반대의 경우도 마찬가지입니다.

이 시스템은 두 가지 조건이 충족되면 거래를 시작할 것입니다.

  1. MACD 히스토그램은 하향으로 변합니다.

  2. 음의 DMI가 양의 DMI보다 크면

이 전략은 트렌드 강도에 적응하기 위해 후속 스톱으로 작용하는 변동성 스톱과 결합된 고정 취익을 제공합니다. 자산에 대한 장기적인 신뢰에 따라 고정 취익을 더 보수적이거나 공격적이도록 수정할 수 있습니다.

포지션은 다음과 같이 종료됩니다.

이윤취출: 입시 가격 대비 8%가격 하락

또는

스톱-러스 출구: 가격 변동 스톱 이상의 경로를 통과합니다.

일반적으로 이 접근 방식은 중장기 전략에 적합하다. 이 전략의 백테스팅은 2022년 4월 1일부터 2022년 7월 18일까지 시작하여 곰 시장에서 그 결과를 입증한다. 2022년 초부터 추가로 백테스팅은 또한 좋은 수익을 창출한다.

매우 강한 결과를 내는 쌍은 45m 시간 프레임에서 SOLUSDT, 2h 시간 프레임에서 MATICUSDT, 1h 시간 프레임에서 AVAUSDT를 포함한다. 일반적으로, 역 테스트는 대부분의 쌍에서 45m / 1h 시간 프레임에서 가장 잘 작동한다고 제안한다.

또한 0.1%의 거래 수수료가 고려되며 Binance에서 적용되는 기본 수수료에 맞춰집니다.

이점 분석

이 전략의 장점은 다음과 같습니다.

  • MACD와 DMI의 강점을 활용하여 입력 신호의 정확성을 향상시키고 잘못된 브레이크오프를 피합니다.

  • 일정한 취업 수익과 변동성 후속 정지 출구 메커니즘을 조합하여 위험을 통제하면서 더 높은 취업 수익을 보장합니다.

  • 하향 시장 추세에 적합하며, 상당한 단기 스칼핑 수익을 얻을 수 있습니다.

  • 추가 수익을 얻기 위해 긴 포지션을 헤지하거나 직접적으로 짧은 선물 계약을 위해 사용할 수 있습니다.

  • 강력한 백테스트 결과, 특히 1시간과 45m 시간 프레임에서 높은 주파수 거래에 적합합니다.

위험 분석

이 전략의 위험은 다음과 같습니다.

  • DMI와 MACD는 지연 지표로서 트렌드 전환점에 대해 잘못된 신호를 생성할 확률이 높고, 스톱 로스 모니터링이 필요합니다.

  • 부적절한 고정 취익 설정은 취익이 너무 작거나 너무 커질 수 있습니다. 다른 동전 변동성에 기초한 조정이 권장됩니다.

  • 변동성 후속 스톱은 격렬한 변동 기간 동안 깨질 수 있으며 추가 스톱 손실과 결합해야합니다.

  • 잘못된 백테스트 기간 선택은 너무 낙관적인 결과를 초래할 수 있습니다. 다른 시장 조건에서 더 긴 테스트를 수행해야합니다.

  • 실제 세계 성과는 거래 수수료, 시장 주문 미끄러움 등으로 영향을 받으며 백테스트에서 벗어날 수 있습니다.

최적화 방향

이 전략은 다음과 같은 측면에서 더 이상 최적화 될 수 있습니다.

  • 기계 학습을 활용하여 MACD와 DMI 매개 변수 조합을 자동으로 최적화하여 다른 시간 프레임과 코인에 적응합니다.

  • 변동성 기반의 동적 취득을 추가하고 시장 변동성에 따라 취득 범위를 조정합니다.

  • 필터링을 개선하기 위해 BVN와 OBV와 같은 다중 요소 모델을 형성하는 추가 지표를 포함합니다.

  • MACD와 DMI가 신호를 전달할 수 있도록 기계 학습 모델을 추가합니다.

  • 리미트 오더가 아니라 시장 오더를 사용해서 미끄러짐의 영향을 줄이세요.

  • 최적의 시간 프레임 매개 변수를 찾기 위해 개별 동전에서 테스트합니다.

결론

요약하자면, 이 단기 곰 스칼핑 전략은 강력한 MACD와 DMI 조합을 통해 최적의 단축 순간을 식별함으로써 상당한 양적 이익을 제공합니다. 그것은 긴 포지션과 직접 짧은 선물 계약을 헤지하는 데 사용할 수 있습니다. 정지 및 조정 매개 변수를 최적화하면 승률을 더욱 향상시킬 수 있습니다. 전략은 곰 시장 거래자들에 의해 적극적인 응용과 최적화를받을 자격이 있습니다.


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Inverse MACD + DMI Scalping with Volatility Stop (Shorting) (By Coinrule)",

         overlay=true,
         initial_capital=10000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=100,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 4, 1, 0, 0)
notInTrade = strategy.position_size <= 0

// DMI and MACD inputs and calculations
[pos_dm, neg_dm, avg_dm] = ta.dmi(14, 14)
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)

Take_profit = input(3) / 100
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

length = input.int(20, 'Length', minval=2)
src = input(close, 'Source')
factor = input.float(2.0, 'vStop Multiplier', minval=0.25, step=0.25)
volStop(src, atrlen, atrfactor) =>
    var max = src
    var min = src
    var uptrend = true
    var stop = 0.0
    atrM = nz(ta.atr(atrlen) * atrfactor, ta.tr)
    max := math.max(max, src)
    min := math.min(min, src)
    stop := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src)
    uptrend := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max := src
        min := src
        stop := uptrend ? max - atrM : min + atrM
        stop
    [stop, uptrend]
    
[vStop, uptrend] = volStop(src, length, factor)

closeShort = close > longTakeProfit or ta.crossunder(close, vStop)

//Entry
strategy.entry(id='short', direction=strategy.short, when=ta.crossover(macd_signal, macd) and pos_dm < neg_dm and timePeriod)

//Exit
strategy.close('short', when=closeShort and timePeriod)


더 많은