동적 스톱 로스로 DMI 및 스토카스틱 거래 전략

저자:차오장, 날짜: 2023-12-26 14:30:23
태그:

img

전반적인 설명

이 거래 전략은 거래 신호를 생성하기 위해 방향 움직임 지표 (DMI) 와 스토카스틱 오시레이터를 결합합니다. DMI는 DI+, DI- 라인 및 평균 방향 지표 (ADX) 로 트렌드 강도와 방향을 측정합니다. DI+가 DI-, ADX가 25보다 높고 스토카스틱 %K가 20보다 낮을 때 전략은 길게 (구입) 가집니다. DI-가 DI+보다 높고 ADX가 25보다 높고 스토카스틱 %K가 80을 초과할 때 짧은 (판매) 가됩니다. 최근 최고 및 최저 폐쇄를 기반으로 한 동적 스톱-손실 수준은 위험 통제를 향상시킵니다.

전략 논리

이 전략은 다음과 같은 주요 요소에 기반합니다.

  1. 트렌드 식별을 위한 DMI: DMI의 DI+, DI- 및 ADX 라인은 시장 트렌드 방향과 강도를 결정합니다. DI- 이상의 DI+는 상승 추세를 나타냅니다. DI- 이상의 DI+는 하락 추세를 나타냅니다. 더 높은 ADX 값은 더 강한 추세를 나타냅니다.

  2. 과잉 매수/ 과잉 판매의 스토카스틱스토카스틱의 %K 라인은 최근 최고와 최저에 비해 현재 근접한 것을 보여줍니다. 20 이하의 값은 과반 판매를 의미하며 80 이상은 과반 구매를 의미합니다.

  3. 신호 논리:DMI와 스토카스틱을 결합하면, 전략은 DI+>DI- ((상향), ADX>25 (트렌드 강도) 및 스토카스틱 %K <20 (가장 팔렸다) 에서 길어집니다. DI->DI+ (하향), ADX>25 및 %K>80 (가장 구매) 에서 짧아집니다.

  4. 동적 스톱 로스: 엔트리 이후 최근 최저 및 최저 클로즈가 동적 스톱 로스 레벨로 사용되며 적응적 리스크 제어가 가능합니다.

이점 분석

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

  1. DMI (트렌드) 와 스토카스틱 (oversold/overbought) 의 두 가지 확인을 사용하여 더 높은 신뢰성

  2. 최근 가격 변동에 기반한 혁신적인 동적 스톱 로스는 더 나은 위험 통제를 가능하게 합니다.

  3. 더 적은 매개 변수가 최적화와 구현을 용이하게 합니다.

  4. 금융시장 (주식, 외환, 암호화폐 등) 과 시간 틀에 걸쳐 광범위한 적응력.

  5. 파인 스크립트는 거래 플랫폼에 직접 적용할 수 있습니다. 편리합니다.

위험 분석

고려해야 할 몇 가지 위험:

  1. ADX가 낮을 때 트렌딩 시장에서 잠재적인 잘못된 신호. 포지션 크기를 줄이세요.

  2. 스토카스틱은 뒤떨어진 지표입니다. 시장은 신호 시간에 역전되었을 수 있습니다. 선도 지표와 결합합니다.

  3. 역동적 인 정지 는 거대한 트렌드 변동 을 완전히 피할 수 없다. 합리적 인 정지 거리가 필수 이다.

  4. 부적절한 매개 변수 조정은 성능에 부정적인 영향을 미칩니다. 최적의 길이를 설정해야합니다.

  5. 블랙 스완 이벤트는 비정상적인 손실을 방지하기 위해 전략 중단이 필요합니다.

최적화 방향

전략을 강화하는 몇 가지 방법:

  1. 이동 평균과 MACD 같은 더 많은 지표가 있는 필터를 추가하면 신호 신뢰성이 높아집니다.

  2. 백테스팅을 통한 매개 변수 최적화는 최적의 설정을 발견하는 데 도움이 됩니다.

  3. 기기와 시간 프레임에 따라 매개 변수를 사용자 정의합니다. 더 빠른 기기는 짧은 길이를 사용할 수 있습니다.

  4. getInfo ((() 를 사용하여 자세한 로그 출력을 통합하여 더 쉽게 분석 및 정제 할 수 있습니다.

  5. 추가적인 통찰력을 얻기 위해 차트에서 신호 포인트와 스톱 로스 라인을 그래프로 표시하세요.

  6. 신속한 개입을 가능하게 하는 적시에 알림을 받기 위해 사용자 지정 알림을 개발합니다.

결론

이 전략은 트렌드 방향과 거래 항목에 대한 과잉 구매/ 과잉 판매 수준을 식별하기 위해 DMI와 스토카스틱 오시레이터의 강점을 결합합니다. 혁신적인 동적 스톱 로스 메커니즘은 또한 더 똑똑한 리스크 통제를 가능하게합니다. 신뢰할 수있는 신호, 광범위한 적용 가능성, 사용 편의성 및 사용자 정의로 효율적인 알고리즘 거래 전략입니다. 추가 최적화는 뛰어난 성능으로 이어질 수 있습니다.


/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DMI with Stochastic and Dynamic Stop-Loss", shorttitle="DMI_Stoch_SL", overlay=true)

length = input(14, title="DMI Length")
adxThreshold = input(25, title="ADX Threshold")
stochKLength = input(14, title="Stochastic %K Length")
stochDLength = input(3, title="Stochastic %D Length")

[diPlus, diMinus, adx] = ta.dmi(length, length)
stochKLine = ta.stoch(close, high, low, stochKLength)

var float lowestClose = na
var float highestClose = na
lowestClose := na(lowestClose) ? close : math.min(lowestClose, close)
highestClose := na(highestClose) ? close : math.max(highestClose, close)

longCondition = (diPlus > diMinus) and (adx > adxThreshold) and (stochKLine < 20)
shortCondition = (diMinus > diPlus) and (adx > adxThreshold) and (stochKLine > 80)

if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", stop=lowestClose)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", stop=highestClose)

더 많은