리소스 로딩... 로딩...

데-크롤 정지 동적 ATR 트렌드 전략

저자:차오장, 날짜: 2024-06-14 15:15:43
태그:SMAATRSPX

img

전반적인 설명

데-크롤 스톱 동적 ATR 트렌드 다음 전략은 데-크롤 스톱 지표와 단순 이동 평균 (SMA) 을 기반으로 한 양적 거래 전략이다. 이 전략은 동적 스톱 손실 수준을 사용하여 위험을 관리하는 동시에 상승 시장 추세를 파악하는 것을 목표로합니다. 데-크롤 스톱 지표는 다른 시장 변동성 조건에 적응하기 위해 평균 진정한 범위 (ATR) 를 기반으로 동적으로 스톱 손실 수준을 조정합니다. 21 기간 SMA는 트렌드 필터로 사용되어 주요 트렌드 방향으로 거래가 이루어지는 것을 보장합니다.

전략 원칙

이 전략의 핵심은 동적 스톱 로스 수준을 계산하기 위해 ATR을 사용하는 데-크롤 스톱 인디케이터이다. ATR은 시장 변동성을 측정하며 스톱 로스 레벨은 ATR 및 멀티플라이저에 따라 동적으로 조정됩니다. 이것은 스톱 로스 포지션이 현재 시장 조건에 적응하도록 보장합니다. 또한, 21 기간 SMA는 트렌드 필터로 작용하며, 닫기 가격이 SMA보다 높을 때만 긴 신호가 발생합니다. 이것은 곰 시장에서 거래를 피하는 데 도움이됩니다. 롱 엔트리 조건: 닫기 가격이 데 크롤 하위 대역을 넘어서 21주기 SMA를 넘어서면 롱 포지션이 시작됩니다. 출구 조건: 닫기 가격이 데 크롤 상단 이하로 떨어지면 포지션은 종료됩니다.

전략적 장점

  1. 동적 스톱 로스: 데 크롤 스톱 로스 지표는 ATR을 기반으로 동적 스톱 로스 수준을 계산하여 다른 시장 변동 조건에 적응하고 스톱 로스의 효과를 향상시킵니다.
  2. 트렌드 추적: 21주기 SMA는 트렌드 필터 역할을 하며, 거래가 주요 트렌드 방향과 일치하도록 보장하고, 역 트렌드 거래의 위험을 줄입니다.
  3. 매개 변수 유연성: ATR 기간, ATR 곱셈자, 스톱 로스 기간 및 SMA 기간과 같은 전략 매개 변수들은 사용자 선호도에 따라 조정될 수 있으며, 전략의 적응성을 높일 수 있습니다.
  4. 포지션 크기: 포지션 크기는 리스크 멀티플리커와 현재 시장 변동성에 따라 동적으로 조정되며 동적인 리스크 관리를 달성합니다.

전략 위험

  1. 매개 변수 최적화 위험: 전략 매개 변수는 다른 시장 조건과 거래 도구에 따라 최적화되어야합니다. 잘못된 매개 변수 설정은 전략 성능이 떨어질 수 있습니다.
  2. 트렌드 식별 위험: 범위 제한 시장 또는 초기 트렌드 반전 시 전략은 잘못된 신호를 생성하여 손실을 초래할 수 있습니다.
  3. 슬리퍼 및 거래 비용: 실제 거래에서 슬리퍼 및 거래 비용은 전략의 순수 수익에 영향을 줄 것입니다. 리스크 관리 조치에는 다음과 같은 것들이 포함됩니다. 전략의 포괄적 인 백테스팅 및 매개 변수 최적화; 전략 규칙을 엄격히 준수하고 실제 거래에서 각 거래의 위험을 제어; 전략 성과를 정기적으로 평가하고 필요한 경우 조정합니다.

전략 최적화 방향

  1. 긴 단거래: 현재 전략은 긴 신호만을 가지고 있습니다. 다른 시장 환경에서 기회를 완전히 포착하기 위해 긴 단거래로 확장 할 수 있습니다.
  2. 동적 매개 변수 최적화: 기계 학습 또는 최적화 알고리즘을 사용하여 시장 조건에 따라 전략 매개 변수를 실시간으로 조정하여 적응력을 향상시킵니다.
  3. 다른 기술 지표의 조합: 다른 트렌드 또는 오시레이터 지표를 도입하여 여러 요소 전략을 구축하고 신호 신뢰성을 향상시킵니다.
  4. 시장 감정 지표를 통합: VIX와 같은 시장 감정 지표를 결합하여 극심한 시장 감정 중 거래를 제어하고 위험 관리 능력을 향상시킵니다.

요약

데-크롤 스톱 동적 ATR 트렌드 추적 전략은 동적 스톱 손실과 트렌드 추적 원칙에 기반한 양적 거래 전략이다. 데-크롤 스톱 지표와 SMA 트렌드 필터를 결합함으로써 전략은 위험을 효과적으로 관리하는 동시에 상승 추세를 파악할 수 있다. 전략 매개 변수의 유연성과 동적 포지션 사이징은 전략의 적응력을 더욱 향상시킨다. 전략에는 특정 위험이 있지만 합리적인 위험 관리 조치와 지속적인 최적화와 개선으로 전략은 장기적으로 안정적인 수익을 얻을 수 있다.


/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chande Kroll Stop Strategy", overlay=true, initial_capital = 1000, commission_type = strategy.commission.percent, commission_value = 0.01, slippage = 3)

// Chande Kroll Stop parameters
calcMode = input.string(title="Calculation Mode", defval="Exponential", options=["Linear", "Exponential"])
riskMultiplier = input(5, "Risk Multiplier")
atrPeriod = input(10, "ATR Period")
atrMultiplier = input(3, "ATR Multiplier")
stopLength = input(21, "Stop Length")
smaLength = input(21, "SMA Length")

// Calculate ATR
atr = ta.atr(atrPeriod)

// Calculate Chande Kroll Stop
highStop = ta.highest(high, stopLength) - atrMultiplier * atr
lowStop = ta.lowest(low, stopLength) + atrMultiplier * atr

sma21 = ta.sma(close, smaLength)

// Entry and Exit conditions
longCondition = ta.crossover(close, lowStop) and close > sma21
exitLongCondition = close < highStop

// Funktion zur Berechnung der Menge
calc_qty(mode, riskMultiplier) =>
    lowestClose = ta.lowest(close, 1560)
    if mode == "Exponential"
        qty = riskMultiplier / lowestClose * 1000 * strategy.equity / strategy.initial_capital
    else
        qty = riskMultiplier / lowestClose * 1000

// Berechnung der Menge basierend auf der Benutzerwahl
qty = calc_qty(calcMode, riskMultiplier)

// Execute strategy
if (longCondition)
    strategy.entry("Long", strategy.long, qty=qty)
    alert("Buy Signal", alert.freq_once_per_bar_close)

if (exitLongCondition)
    strategy.close("Long")
    alert("Sell Signal", alert.freq_once_per_bar_close)

// Plotting
plotshape(series=longCondition, location=location.belowbar, color=#0097a7, style=shape.triangleup, size=size.small, title="Buy Signal")
plotshape(series=ta.crossunder(close, highStop), location=location.abovebar, color=#ff195f, style=shape.triangledown, size=size.small, title="Sell Signal")
plot(sma21, color=color.gray)
plot(highStop, color=#0097a7)
plot(lowStop, color=#ff195f)



관련

더 많은