DI 크로스오버 기반 데이 트레이딩 전략


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

DI 크로스오버 기반 데이 트레이딩 전략

개요

이 전략은 평균 실제 범위 지표 (ATR) 와 트렌드 지표 (DMI) 의 긍정적인 지표 (DI+) 와 부정적인 지표 (DI-) 의 교차로 구매와 판매 시기를 판단합니다. 이 전략은 트렌드 추적 전략에 속하며, DI+와 DI-의 교차로 트렌드의 전환점을 판단합니다. ATR은 중지 및 중지 가격을 설정하는 데 사용됩니다.

전략 원칙

  1. ATR ((14) 를 계산합니다: 지난 14 일 동안의 최고 가격, 최저 가격 및 종료 가격을 사용하여 평균 실제 변동 범위를 계산합니다.

  2. DI+와 DI-를 계산합니다.

    • DI+ = 100 * RMA(MAX(UP,0),N) / ATNR

    • DI- = 100 * RMA(MAX(DOWN,0),N) / ATNR

여기서 UP는 당일 최고 가격과 어제의 종결 가격의 차이점, DOWN은 당일 최저 가격과 어제의 종결 가격의 차이점, N은 변수 길이, default은 14, ATNR은 이전 단계로 계산된 ATR입니다

  1. 구매와 판매를 판단하는 방법:

    • DI+ 위에 DI-를 착용하면 구매 신호가 생성됩니다.

    • 그리고 DI+가 DI-를 통과하면, 판매 신호가 생성됩니다.

  2. Stop Loss Stop를 설정합니다.

    • 다중 단위 스톱 손실 가격으로 입시 가격으로 ATR 곱하기 스톱 손실 배수

    • 다중 단독 인치 가격으로 입시 가격에 ATR 곱하기 인치 배수

    • 빈 티켓의 스톱로스 가격은 입점 가격에 ATR 곱하기 스톱로스 배수

    • 빈 티켓 스톱 가격으로 입점 가격을 ATR 곱하기 스톱 곱하기

전략적 강점 분석

  1. 트렌드 전환점을 판단하는 DI+와 DI-교차를 사용하여 새로운 트렌드 방향을 적시에 잡을 수 있습니다.

  2. ATR은 시장의 변동에 따라 합리적인 중단 지점을 설정할 수 있는 동적 중단 지표입니다.

  3. 정책의 매개 변수가 적고, 이해하기 쉽고 구현하기 쉽습니다.

  4. 재검토 데이터에 따르면 이 전략은 긍정적인 수익 요인을 가지고 있으며, 구매 전략보다 더 잘 작동합니다.

위험과 해결방안 분석

  1. DI의 교차는 잘못된 거래의 위험을 초래합니다.

    • 가짜 브레이크가 발생하면 불필요한 거래 신호가 발생하며, 잘못된 신호를 필터링하기 위해 DI 사이클 파라미터를 적절하게 조정할 수 있습니다.
  2. 정지 지점은 너무 가까이 있습니다.

    • 시장의 급격한 변동이 있을 때, 가까운 곳에 있는 스톱 스이 쉽게 트리거되고, 시장의 변동 빈도에 맞게 ATR 배수를 조정할 수 있다.
  3. 동향이 흔들리는 시장을 효과적으로 다루지 못함

    • 흔들리는 상황에서 DI는 자주 교차하여 너무 많은 유효하지 않은 거래 신호를 생성하고 다른 지표 필터 신호와 결합 할 수 있습니다.
  4. 탈퇴 위험

    • 최대 회수 전략은 허용되지만 체계적인 회수를 완전히 피할 수는 없으며 회수를 제어하기 위해 위치 관리 전략을 조정할 수 있습니다.

최적화 제안

  1. 이동 평균과 같은 지표와 결합하여 DI 교차 신호를 필터링하여 흔들리는 상황에서 잘못된 거래를 피하십시오.

  2. 매장 관리를 강화하는 방법, 고정 지분, 마팅거 등으로, 철수를 통제하고 수익성을 높이는 방법

  3. ATR 변수를 최적화하여 스톱 스톱을 다양한 거래 품종의 변동 범위에 더 적합하게 만듭니다.

  4. 변수를 최적화하여 DI 주기, ATR 주기, ATR 곱 등과 같은 최적의 변수 조합을 찾습니다.

  5. 야간 거래와 아침 거래의 거래 판단 논리를 추가하여 전략이 24시간 실행되도록합니다.

요약하다

이 전략은 전체적으로 간단하고 실용적이며, DI의 교차를 통해 매매 시기를 판단하고, ATR의 동적 설정을 사용하여 손해 중지 을 설정한다. 전략의 변수는 적고, 테스터와 실장 검증도 용이하며, 최적화 조정도 가능하다. 그러나 DI 교차는 충격 상황을 판단하는 효과가 좋지 않다. 이것은 이 전략의 개선이 필요한 방향이기도 하다.

전략 소스 코드
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TheHulkTrading
//@version=4
strategy("DI Crossing Daily Straregy HulkTrading", overlay=true)
// ATR Multiplier. Recommended values between 1..4
atr_multiplier = input(1, minval=1, title="ATR Multiplier") 
//Length of DI. Recommended default value = 14
length = input(14, minval=1, title="Length di")
up = change(high)
down = -change(low)
range = rma(tr, 14)

//DI+ and DI- Calculations
di_plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, length) / range)
di_minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, length) / range)

//Long and short conditions
longCond = crossover(di_plus,di_minus)
shortCond = crossunder(di_plus,di_minus) 


//Stop levels and take profits
stop_level_long = strategy.position_avg_price - atr_multiplier*atr(14)
take_level_long = strategy.position_avg_price + 2*atr_multiplier*atr(14)
stop_level_short = strategy.position_avg_price + atr_multiplier*atr(14)
take_level_short = strategy.position_avg_price - 2*atr_multiplier*atr(14)


//Entries and exits 
strategy.entry("Long", strategy.long, when=longCond)
strategy.exit("Close Long","Long", stop=stop_level_long, limit = take_level_long)
strategy.entry("Short", strategy.short, when=shortCond)
strategy.exit("Close Short","Short", stop=stop_level_short, limit = take_level_short)