이중 DI 크로스오버 일일 거래 전략

저자:차오장, 날짜: 2023-11-13 11:32:08
태그:

img

전반적인 설명

이 전략은 평균 진정한 범위 (ATR) 에서 계산 된 긍정적 방향 지표 (DI +) 와 부정적인 방향 지표 (DI-) 의 교차를 기반으로 거래 신호를 생성합니다. 이 전략은 DI + 및 DI-의 교차를 통해 트렌드 역전 지점을 식별하는 트렌드 다음 전략에 속합니다. ATR은 스톱 로스를 설정하고 수익 수준을 취하기 위해 사용됩니다.

전략 논리

  1. ATR을 계산합니다. ATR을 계산합니다. ATR을 계산합니다. ATR을 계산합니다.

  2. 계산 DI+와 DI-:

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

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

    여기서 UP는 현재 최고치와 이전 폐쇄 사이의 차이고, DOWN는 현재 최저치와 이전 폐쇄 사이의 차이고, N는 파라미터 기간이며, ATNR는 단계 1에서 계산된 ATR입니다.

  3. 출입 및 출입을 결정합니다:

    • DI+가 DI-를 넘을 때 구매 신호가 생성됩니다.

    • DI+가 DI- 아래로 넘어가면 판매 신호가 생성됩니다.

  4. 스톱 로스를 설정하고 이윤을 취합니다.

    • 롱 스톱 로스는 엔트리 가격 빼기 ATR 곱하기 스톱 로스 곱하기입니다.

    • 장기 취득은 입시 가격 더하기 ATR 곱하기 취득 곱하기 값입니다.

    • 쇼트 스톱 로스는 입시 가격 더하기 ATR 곱하기 스톱 로스 인수입니다.

    • 단기 취득은 입시 가격 빼기 ATR 곱하기 취득 곱하기입니다.

이점 분석

  1. 트렌드 반전을 결정하기 위해 DI+/DI- 크로스오버를 사용하는 것은 새로운 트렌드 방향에 대한 적절한 신호를 제공합니다.

  2. 동적 스톱 로스/프로프트 테이크 인디케이터인 ATR은 시장 변동성에 따라 합리적인 수준을 설정할 수 있습니다.

  3. 이 전략은 몇 가지 매개 변수를 가지고 있으며 이해하기 쉽고 실행하기 쉽습니다.

  4. 백테스트 결과는 이 전략이 긍정적 인 수익 인자를 가지고 있으며 구매 & 보유를 능가한다는 것을 보여줍니다.

위험 과 해결책

  1. DI 크로스오버로 인한 잘못된 신호 위험

    • 가짜 브레이크오프를 피하기 위해 이동 평균 등으로 신호를 필터합니다.
  2. 손실 중지/이익 취득 너무 가깝다

    • 변동성을 고려해서 ATR 곱셈을 조정하세요.
  3. 범주형 시장에서 비효율적

    • 다른 지표와 결합하여 통합 시그널을 필터링합니다.
  4. 적립 위험

    • 마감은 받아들일 수 있지만 체계적인 전략에서는 피할 수 없습니다. 마감을 제어하기 위해 위치 크기를 조정하십시오.

최적화 제안

  1. 이동평균과 같은 필터를 추가하여 범위 기간에 잘못된 신호를 피합니다.

  2. 고정 분자나 마틴게일 같은 포지션 사이징을 적용해서 마감량을 조절하고 수익성을 높일 수 있습니다.

  3. ATR 매개 변수를 최적화하여 다른 거래 도구의 변동성을 조정합니다.

  4. 최적의 조합을 찾기 위해 DI 기간, ATR 기간, ATR 곱셈 등에 대한 매개 변수 최적화

  5. 24/7 전략 실행을 위해 밤과 초반 세션 논리를 추가합니다.

결론

이 전략은 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)



더 많은