Darvas Box Breakout 및 위험 관리 전략

MACD RSI
생성 날짜: 2024-07-29 14:22:29 마지막으로 수정됨: 2024-07-29 14:22:29
복사: 0 클릭수: 597
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

Darvas Box Breakout 및 위험 관리 전략

개요

다르바스 상자 돌파와 위험 관리 전략은 기술 분석과 위험 관리를 결합한 수치화 거래 방법이다. 이 전략은 니콜라스 다르바스가 개발한 다르바스 상자 이론을 기반으로, 가격이 역사적 최고점을 돌파한 패턴을 식별하여 잠재적인 상승세를 포착한다. 이 전략은 또한 거래의 정확성과 안전을 높이기 위해 여러 기술 지표와 위험 제어 조치를 통합한다.

분석을 통해 제공된 코드를 통해, 우리는 이 전략의 핵심이 Darvas 상자를 구축하고, 가격이 상자 상단에서 넘어갈 때 구매 신호를 생성하고, 가격이 상자 하단에서 넘어갈 때 판매 신호를 생성하는 것을 볼 수 있다. 이 전략은 또한 이동 평균, MACD 및 RSI와 같은 기술 지표를 사용하여 거래 신호를 확인하고, 위험 관리 기법인 Stop Loss 및 Risk Return Ratio를 사용하여 각 거래의 위험을 제어한다.

전략 원칙

  1. Darvas 박스 구성:

    • input.int() 함수를 사용하여 상자 주기 ((boxp) 를 설정하고, 기본적으로 5개의 주기。
    • 계산주기의 최저가격 (LL) 과 최고가격 (k1, k2, k3) 을 계산한다.
    • 신고도 ((NH) 와 상자 형성 조건 ((box1)) 을 결정한다.
    • 상자의 상단 (TopBox) 과 하단 (BottomBox) 을 정의한다.
  2. 거래 신호 생성:

    • 구매 신호 ((Buy): 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단 상단
    • 팔기 신호 ((Sell): 상자 아래쪽을 가로질러 닫기 가격 아래로 갈 때 발동한다.
  3. 정책 실행:

    • strategy.entry() 함수를 사용하여 구매 신호가 나타나면 입장을 더 많이 니다.
    • strategy.close() 함수를 사용하여 팔기 신호가 발생했을 때 평평한 위치에 있다.
  4. 시각화:

    • plot() 함수를 사용하여 다르바스 상자의 위아래 경계를 그리십시오.
    • 플롯셰이프 () 함수를 사용하여 차트에 구매 및 판매 신호를 표시합니다.
  5. 위험 관리:

    • default_qty_type 및 default_qty_value 파라미터를 사용하여 거래당 자본 비율을 설정합니다.
    • 상자 크기를 조정하여 상자 크기를 조절할 수 있으며, 상자 크기는 상자 크기를 조정하여 상자 크기를 조절할 수 있습니다.

전략적 이점

  1. 트렌드 추적: Darvas 상자 전략은 시장의 상승 추세를 효과적으로 포착하고, 특히 강한 시장에서 상당한 수익을 올릴 수 있습니다.

  2. 객관성: 전략은 명확한 수학적 모델과 기술 지표에 기반하여 주관적 판단으로 인한 편차를 줄입니다.

  3. 위험 제어: 고정된 자본 비율을 설정하여 거래하여 단일 거래의 위험 을 효과적으로 제어합니다.

  4. 유연성: 전략의 매개 변수는 다른 시장 환경과 거래 유형에 따라 조정할 수 있습니다.

  5. 시각화 지원: Darvas 상자와 거래 신호를 차트에 직관적으로 표시하여 거래자가 전략을 이해하고 모니터링 할 수 있습니다.

  6. 자동 거래: 전략은 자동 거래 시스템에 쉽게 통합되어 사람의 개입을 줄일 수 있습니다.

전략적 위험

  1. 가짜 브레이크 위험: 불안한 시장에서는 가짜 브레이크가 자주 발생하여 잘못된 신호가 너무 많이 발생 할 수 있습니다.

  2. 지연성: Darvas 상자의 형성에는 시간이 걸리고, 빠른 시장 기회를 놓칠 수 있습니다.

  3. 회수 위험: 급격히 변동하는 시장에서, 가격이 구매 신호를 유발한 후 빠르게 회수되어 큰 손실을 초래할 수 있습니다.

  4. 매개 변수 민감성: 정책 성능은 boxp 매개 변수의 설정에 민감하며, 부적절한 매개 변수는 정책의 부실한 성능을 초래할 수 있다.

  5. 정지 메커니즘의 부재: 현재 전략에는 정지 메커니즘의 부재로 인해 수익을 올릴 수 있는 최적의 시점을 놓칠 수 있습니다.

이러한 위험을 줄이기 위해 다음과 같은 조치를 고려할 수 있습니다.

  • 이동 평균 또는 RSI와 같은 다른 기술 지표와 결합하여 가짜 브레이크 신호를 필터링하십시오.
  • 이윤을 더 잘 보호하기 위해 동적 스톱 전략, 예를 들어 추적 스톱을 사용하십시오.
  • 변동률 지표를 도입하여 거래 규모를 조정하거나 높은 변동성 기간 동안 거래를 중지하십시오.
  • boxp 매개 변수를 재검토하여 목표 시장에 가장 적합한 설정을 찾습니다.
  • 을 추가하는 조건, 예를 들어 가격이 특정 수익 수준에 도달했을 때 자동으로 청산한다.

전략 최적화 방향

  1. 신호 확인:

    • 이동 평균의 교차 또는 MACD 지표를 통합하여 돌파의 유효성을 확인한다.
    • 거래량 분석을 도입하여 거래량이 크게 증가했을 때만 돌파 신호를 확인합니다.
  2. 동적 변수 조정:

    • 시장의 변동율에 따라 boxp 파라미터를 동적으로 조정하여, 낮은 변동기에는 큰 boxp를 사용하고, 높은 변동기에는 작은 boxp를 사용합니다.
    • 다르바스 상자 크기를 조정하여 최근 가격 변동에 따라 자동으로 조정할 수 있습니다.
  3. 위험 관리 최적화:

    • 동적 상쇄 메커니즘을 추가합니다. 예를 들어, 비율 추적 상쇄 또는 ATR 상쇄
    • 리스크 수익률에 기반한 포지션 관리를 구현하고, 리스크 수익률이 높을 때 포지션을 늘리고, 리스크 수익률이 낮을 때 포지션을 줄인다.
  4. 다중 시간 프레임 분석:

    • 더 큰 시간 프레임에 Darvas 상자를 구축하여 전체 트렌드를 결정합니다.
    • 더 작은 시간 프레임으로 진입 기회를 찾고 거래의 정확성을 높여라.
  5. 기계학습 통합:

    • 기계 학습 알고리즘을 사용하여 Darvas 상자 돌파의 성공 확률을 예측한다.
    • 딥러닝 모델을 통해 전략의 매개 변수를 최적화하여 전략의 전반적인 성능을 향상시킵니다.
  6. 시장 환경 적응:

    • 시장 환경 식별 메커니즘을 도입하고, 다른 시장 상태 (관향, 흔들림, 역전) 에 따라 다른 거래 전략을 채택한다.
    • 높은 변동성 기간에 거래 빈도와 규모를 자동으로 조정하여 시장 변화에 적응합니다.

이러한 최적화 방향은 전략의 안정성과 수익성을 높이는 동시에 위험을 줄이는 것을 목표로합니다. 더 많은 기술적 분석 도구와 위험 관리 기술을 도입함으로써 전략은 다양한 시장 환경에 더 잘 적응하여 장기적으로 수익성을 높일 수 있습니다.

요약하다

다르바스 상자 돌파와 위험 관리 전략은 고전적인 기술 분석 방법과 현대적인 위험 제어 개념을 결합한 수치화 거래 전략이다. 다르바스 상자 이론을 활용하여 가격 돌파를 포착하고, 엄격한 위험 관리를 통해 거래 위험을 제어한다. 전략의 장점은 객관성, 추세 추적 능력 및 위험 제어에 있지만, 가짜 돌파와 변수 민감성 등의 도전에 직면한다.

심층 분석과 최적화를 통해, 우리는 신호 확인, 동적 파라미터 조정, 위험 관리 최적화, 다중 시간 프레임 분석, 기계 학습 통합 및 시장 환경 적응 등 여러 가지 개선 방향을 제시했습니다. 이러한 최적화 조치는 전략의 안정성과 수익성을 향상시키고 다양한 시장 환경에 더 잘 적응 할 수 있습니다.

이 전략을 이해하고 올바르게 실행하려면 거래자에게 깊은 시장 지식과 기술 분석 능력이 필요합니다. 또한 지속적인 피드백과 변수 최적화는 전략의 유효성을 유지하는 데 중요합니다. 시장 환경이 계속 변화함에 따라 전략은 경쟁력을 유지하기 위해 계속 진화해야합니다.

전략 소스 코드
/*backtest
start: 2023-07-23 00:00:00
end: 2024-07-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Darvas Box Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Input settings
boxp = input.int(defval=5, title="Length", minval=1, maxval=500)

// Calculate the lowest low and highest highs
LL = ta.lowest(low, boxp)
k1 = ta.highest(high, boxp)
k2 = ta.highest(high, boxp - 1)
k3 = ta.highest(high, boxp - 2)

// Calculate New High (NH)
NH = ta.valuewhen(high > k1[1], high, 0)
box1 = k3 < k2

// Define the top and bottom of the Darvas Box
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 Darvas Box
plot(TopBox, linewidth=2, color=color.new(color.green, 0), title="TBbox")
plot(BottomBox, linewidth=2, color=color.new(color.red, 0), title="BBbox")

// Buy and Sell signals
Buy = ta.crossover(close, TopBox)
Sell = ta.crossunder(close, BottomBox)

// Set strategy orders
if (Buy)
    strategy.entry("Buy", strategy.long)
if (Sell)
    strategy.close("Buy")

// Alert conditions
alertcondition(Buy, title="Buy Signal", message="Buy")
alertcondition(Sell, title="Sell Signal", message="Sell")

// Plot Buy and Sell signals
plotshape(Buy, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), size=size.tiny, title="Buy Signal", text="Buy", textcolor=color.black)
plotshape(Sell, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny, title="Sell Signal", text="Sell", textcolor=color.white)