MACD 모멘텀 얽힘 DMI 돌파 단기 차익거래 전략


생성 날짜: 2023-11-13 17:42:23 마지막으로 수정됨: 2023-11-13 17:42:23
복사: 0 클릭수: 826
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

MACD 모멘텀 얽힘 DMI 돌파 단기 차익거래 전략

개요

이 전략은 곰 시장의 상황에서의 짧은 선의 하락에 초점을 맞추고 있으며, 두 가지 강도 지표를 사용하여 단기 하락 추세가 시작되었음을 확인하는 신호를 제공합니다.

이 전략은 당신이 장기간 보유할 계획인 코인에 적용되며, 자동 거래 로봇을 사용하여 거래를 수행하는 데 특히 잘 작동합니다. 그것은 당신이 보유한 코인의 일정한 비율을 배분하여 거래를하는 방식으로 당신의 투자를 보호 할 수있게 해줍니다.

다른 한편으로, 만약 당신이 미래에셋 시장에서 계약을 거래한다면, 당신은 기초자산을 소유하지 않고도 직접 공백을 할 수 있다.

전략 원칙

거래 시스템은 MACD 동력 지표와 DMI 트렌드 지표를 사용하여 최적의 판매 시점을 확인한다. 이 두 지표를 결합하면 상승 추세에서 거래하는 것을 피할 수 있으며, 낮은 변동성 시장에 빠질 가능성을 줄일 수 있다.

MACD는 트렌드 추적 동력 지표로, 단기 트렌드 방향을 식별할 수 있다. 이 변종에서, 그것은 12 회를 고속으로, 26 회를 느린 길이의 EMA로 사용하며, 신호 부드러움이 9으로 설정된다.

DMI는 가격의 트렌드 방향을 알려주고, 이전의 낮은 점과 높은 점과 비교하여, 두 개의 선을 정방향 운동선 ((+DI) 과 마이너스 운동선 ((-DI) 사이에 그려낸다. 두 개의 선과 어느 선이 더 큰지를 비교하여 트렌드를 설명할 수 있다. 마이너스 DMI가 긍정적 DMI보다 크면, 자산이 지속적인 하향 경향에 있을 가능성이 더 높으며, 그 반대의 경우도 마찬가지다.

두 가지 조건이 충족되면 거래가 시작됩니다.

  1. MACD 직각은 하향으로 바뀌었다.

  2. 음향 DMI는 양향 DMI보다 크다.

이 전략은 고정된 스톱을 가지고 있으며, 변동률의 스톱과 결합하여 트렌드 강도에 맞게 스톱을 추적하는 역할을 합니다. 자산에 대한 장기적인 자신감에 따라 고정된 스톱을 편집하여 더 보수적이거나 더 적극적으로 만들 수 있습니다.

다음의 조건이 충족될 때, 평형 포지션은:

“그때부터, 우리는 모든 것을 깎아 내렸습니다.

또는

손해 평정지: 가격 돌파 변동률 손해

일반적으로 이 방법은 중장기 전략에 적용된다. 이 전략의 회귀는 2022년 4월 1일부터 2022년 7월 18일까지 시작되어 곰 시장에서 효과를 입증했다. 2022년 초부터의 추가 회귀도 좋은 수익을 낳았다.

45분 시간 주기의 SOLUSDT, 2시간 시간 주기의 MATICUSDT, 1시간 시간 주기의 AVAUSDT와 같은 조합에서 특히 우수한 성능을 나타냅니다. 전반적으로, 피드백은 대부분의 조합에서 45분/1시간 시간 주기의 가장 좋은 효과를 나타냅니다.

거래비용도 고려하고, 0.1%의 기본비용과 일치한다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  • MACD와 DMI 두 지표의 장점을 활용하여 입력 신호의 정확성을 높이고, 가짜 돌파구를 방지한다.

  • 고정 스톱과 변동률 추적 스톱 손해 결합의 출전 메커니즘은 높은 스톱을 보장하고 위험을 통제합니다.

  • 수면 시장 하락 시에 적용되며, 높은 단선 중개 수익을 얻을 수 있다.

  • 융자자금으로 투자할 수 있으며, 융자금으로 투자할 수 있다. 융자금으로 투자할 수 있다.

  • 반사 성능은 특히 1시간 45분 사이클에서 잘 작동하며, 고주파 거래에 적합하다.

위험 분석

이 전략에는 다음과 같은 위험도 있습니다.

  • DMI와 MACD는 트렌드 전환점에서 잘못된 신호를 생성할 확률이 높기 때문에 추적 지표로 사용되며, 스톱 로즈에 주의를 기울여야 한다.

  • 고정 스톱을 잘못 설정하면 스톱이 너무 작거나 너무 커질 수 있다. 다른 화폐의 변동률에 따라 조정하는 것이 좋습니다.

  • 변동율 추적 스톱 손실은 급격한 변동의 기간에 뚫릴 수 있으며, Combine With Additional Stop Loss 필요 합니다.

  • 재검토 기간을 잘못 선택하면 너무 낙관적인 결과가 발생할 수 있다. 더 긴 재검토 기간을 사용해야 하고, 다른 시장 단계를 테스트해야 한다.

  • 실디 효과는 거래 비용, 시장 가격 단거래 지점 등의 요인에 의해 영향을 받으며, 회측과 차이가 있다.

최적화 방향

이 전략은 다음과 같은 부분에서 더 개선될 수 있습니다.

  • 기계 학습 방법을 사용하여 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)