다이나믹 Darvas Box Breakout 및 이동 평균 추세 확인 거래 시스템

MA25 SMA
생성 날짜: 2024-11-18 16:00:53 마지막으로 수정됨: 2024-11-18 16:02:45
복사: 6 클릭수: 617
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다이나믹 Darvas Box Breakout 및 이동 평균 추세 확인 거래 시스템

개요

이 글은 다바스 상자 ((Darvas Box) 와 25주기 이동 평균 ((MA25) 을 결합한 트렌드 추적 거래 시스템이다. 이 전략은 가격 평평한 범위를 형성하는 상자를 식별하고, 평평한 트렌드 확인과 결합하여, 돌파할 때 강력한 상황을 포착한다. 시스템 설계는 트렌드 지속성과 가짜 돌파구를 충분히 고려하여, 거래자에게 완전한 시장 진출 장을 제공합니다.

전략 원칙

이 전략은 크게 세 가지 핵심 요소로 구성되어 있습니다.

  1. 다바스 상자의 구조: 시스템은 지난 5주기의 최고와 최저 가격을 계산하여 상자의 경계를 결정한다. 상자의 위쪽은 새로운 최고점으로 결정되며, 바닥은 해당 영역의 최저점으로 결정된다.
  2. 평균선 트렌드 확인: 트렌드 필터로 25주기 간단한 이동 평균을 도입하고, MA25 이상의 가격일 때만 포지션을 고려한다.
  3. 거래 신호 생성:
    • 구매 신호: 가격이 상단 상단을 뚫고 MA25 위에 있습니다.
    • 판매 신호: 가격 하락

전략적 이점

  1. 트렌드 추적 능력:
    • 상자 뚫고 포획하는 트렌드가 시작됩니다.
    • MA25 필터링과 결합하여 주 트렌드 방향으로 거래하는 것을 보장합니다.
  2. 신호 품질 최적화:
    • 이중 확인 메커니즘은 가짜 침입 위험을 낮춰줍니다.
    • 출전 조건이 명확하고 주관적인 판단이 없어야 합니다.
  3. 리스크 관리가 잘 되어 있습니다.
    • 박스 몸의 바닥에서 자연적으로 형성된 손실 지점
    • MA25는 트렌드 보호 기능을 추가합니다.

전략적 위험

  1. 시장의 위기:
    • 빈번한 돌파는 연속적인 손실을 초래할 수 있다.
    • 강세를 보이는 시장에서 사용하는 것이 좋습니다.
  2. 지연 위험:
    • 박스 형성은 시간이 걸리고, 부분적으로 놓칠 수도 있습니다.
    • MA25은 중기 평균선으로 다소 뒤쳐져 있다.
  3. 자금 관리 위험:
    • 거래마다 합리적인 비율을 설정해야 합니다.
    • 변동률 동적 조정 포지션 제안

전략 최적화 방향

  1. 변수 최적화:
    • 다른 시장 특성에 따라 상체 주기 조정할 수 있습니다
    • MA 주기는 시장 주기의 특성에 따라 조정할 수 있습니다.
  2. 신호 강화:
    • 수량 확인 메커니즘을 추가할 수 있습니다.
    • 역동적 상쇄 제도를 고려하는 것
  3. 위험 통제 강화:
    • 변동성 필터 추가
    • 동적 위치관리 실현

요약하다

이 전략은 고전적인 다바스 박스체 이론과 이동 평균 트렌드 추적을 결합하여 안정적인 거래 시스템을 구축한다. 시스템의 주요 장점은 트렌드적인 행동을 효과적으로 포착할 수 있고, 동시에 여러 필터링 메커니즘을 통해 위험을 제어하는 것이다. 약간의 낙후성이 있음에도 불구하고, 합리적인 매개 변수 최적화 및 위험 관리를 통해 이 전략은 트렌드 시장에서 안정적인 성능을 얻을 수 있다.

전략 소스 코드
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DARVAS BOX with MA25 Buy Condition", overlay=true, shorttitle="AEG DARVAS")

// Input for box length
boxp = input.int(5, "BOX LENGTH")

// Calculate 25-period moving average
ma25 = ta.sma(close, 25)

// Lowest low and highest high within the box period
LL = ta.lowest(low, boxp)
k1 = ta.highest(high, boxp)
k2 = ta.highest(high, boxp - 1)
k3 = ta.highest(high, boxp - 2)

// New high detection
NH = ta.valuewhen(high > k1[1], high, 0)

// Logic to detect top and bottom of Darvas Box
box1 = k3 < k2
TopBox = ta.valuewhen(ta.barssince(high > k1[1]) == boxp - 2 and box1, NH, 0)
BottomBox = ta.valuewhen(ta.barssince(high > k1[1]) == boxp - 2 and box1, LL, 0)

// Plot the top and bottom Darvas Box lines
plot(TopBox, linewidth=3, color=color.green, title="Top Box")
plot(BottomBox, linewidth=3, color=color.red, title="Bottom Box")
plot(ma25, color=#2195f31e, linewidth=2, title="ma25")

// --- Buy and Sell conditions ---

// Buy when price breaks above the Darvas Box AND MA15
buyCondition = ta.crossover(close, TopBox) and close > ma25

// Sell when price drops below the Darvas Box
sellCondition = ta.crossunder(close, BottomBox)

// --- Buy and Sell Signals ---

// Plot BUY+ and SELL labels
plotshape(series=buyCondition, title="Buy+ Signal", location=location.abovebar, color=#72d174d3, style=shape.labeldown, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.belowbar, color=color.rgb(234, 62, 62, 28), style=shape.labelup, text="SELL")

// --- Strategy execution ---

if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.close("Buy")