고급 변위 영역 양적 거래 전략

位移区域 蜡烛图技术分析 止盈止损 趋势跟踪 量化交易 DZ TP/SL
생성 날짜: 2025-05-13 11:23:58 마지막으로 수정됨: 2025-05-13 11:23:58
복사: 0 클릭수: 292
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

고급 변위 영역 양적 거래 전략 고급 변위 영역 양적 거래 전략

개요

고차 이동 영역 양적 거래 전략은 필터링 기술 분석에 기반한 자동 거래 시스템으로, 핵심은 특정 이동 선 모양과 가격이 이러한 이동 영역에 진입할 때 발생하는 거래 신호를 식별하는 것입니다. 이 전략은 필터링 선 개체와 그림자 선 사이의 관계를 분석하여 가격 행동을 결합하여 시장에서 잠재적인 구매 및 판매 기회를 찾습니다. 이 전략은 고정된 중지 지점 지점 ((12 지점) 과 손실 중지 지점 지점 ((1 지점) 을 설정하여 위험 제어 및 수익 잠금을 수행합니다.

전략 원칙

이 전략의 핵심 원칙은 “이탈주도 지역” (Displacement Zone) 이라는 특별한 가격 영역을 식별하고 거래하는 것입니다.

  1. 이동 선의 인식“전략을 먼저 통과하라”isBullishDisplacement()그리고isBearishDisplacement()함수는 상향과 하향의 지리선 을 식별한다. 이러한 은 개체가 그림자 선보다 큰 특정 배수 (감각성 파라미터에 의해 제어) 를 특징으로 한다.

  2. 크로스스타를 제외통과:isDoji()함수는 불확실성이 높은 크로스스타일 선을 필터링하고, 명확한 트렌드 신호에만 집중한다. 크로스스타일 결정 기준은 개체와 전체 범위의 비율이 설정된 값보다 작다는 것이다.

  3. 이동 지역 건설이 전략은 최근 두 개의 부진 또는 부진의 이동 경계의 높낮이를 기록하여 이동 영역의 상하 경계선을 구성합니다.

  4. 지역 상태 추적사용 상태 변수:inBearZone그리고inBullZone) 가격의 이동 영역 안에 있는지 추적한다.

  5. 입력 신호 생성: 특정 방향에서 이동 영역에 진입할 때 거래 신호를 생성한다:

    • 구매 신호: 가격이 이전에는 상위 경계선보다 높았으며, 이후 상위 경계선으로 들어갔다.
    • 팔기 신호: 가격이 하향 이동 영역의 하위 경계보다 낮았고, 그 다음에는 그 영역에 들어갑니다.
  6. 자동 거래 실행: 신호가 발동되면, 전략은 자동으로 거래를 실행하고 고정된 스톱 ((12 포인트) 와 스톱 손실 ((1 포인트) 위치를 설정한다.

전략적 이점

이 전략에 대한 코드를 더 깊이 분석하면 다음과 같은 몇 가지 중요한 장점을 찾을 수 있습니다.

  1. 가격 구조에 기반한 논리적인 명확함전략은 맵과 이동 영역의 개념에 기반하고 거래 논리는 직관적으로 명확하고 이해하기 쉽고 적용된다.

  2. 매개 변수의 유연성: 감수성 배수와 크로스스타일 마이너스 두 개의 조정 가능한 매개 변수를 통해 전략이 다양한 시장 환경과 개인 위험 선호에 적응할 수 있도록 한다.

  3. 자동화된 위험 관리: 내장된 고정된 스톱스트로스 메커니즘, 각 거래의 리스크와 수익 비율은 12:1로, 장기적으로 안정적인 자금 관리를 돕는다.

  4. 시각화 거래 신호전략: 그래픽 상표로 구매 및 판매 신호와 이동 영역 경계를 명확하게 표시하여 거래자가 시장 상태를 직관적으로 이해할 수 있도록합니다.

  5. 가격 돌파와 반전 전략이변 영역을 식별하는 것뿐만 아니라, 가격 돌파 후 후퇴하는 기술 분석 개념을 결합하여 신호 품질을 향상시킵니다.

  6. 시장의 소음을 피하라: 불투명한 시장 환경에서의 잘못된 신호를 줄이기 위해 크로스 스타를 필터링합니다.

전략적 위험

이 전략은 합리적으로 설계되었지만, 다음과 같은 잠재적인 위험들이 있습니다.

  1. 너무 작은 위험전략 설정의 정지는 단 1점으로, 높은 변동성 시장에서 너무 밀집될 수 있으며, 시장 소음에 의해 촉발될 수 있으며, 이로 인해 자주 정지된다. 해결 방법: 거래 품종의 변동성 특성에 따라 정지 배수를 조정한다.

  2. 매개변수 민감도: 민감도 배수 설정이 잘못되면 너무 많은 또는 너무 적은 신호가 생성 될 수 있습니다. 해결 방법: 최적화 매개 변수를 피드백하여 특정 시장 환경에서 최적의 매개 변수 조합을 찾습니다.

  3. 연속적인 손실 위험위기 시장에서, 이동 지역은 자주 형성되지만 지속적으로 트렌드로 발전하지 않을 수 있으며, 이로 인해 연속적인 손실이 발생합니다. 해결 방법: 트렌드 지표 확인과 같은 시장 환경 필터 조건을 추가하십시오.

  4. 역동성 결함고정된 스톱은 시장의 변동성에 적응하지 못할 수 있다. 해결 방법: ATR 또는 변동성에 기반한 동적 스톱 메커니즘을 구현한다.

  5. 역사적인 이동 지점에 지나치게 의존하는 것전략: 가장 최근의 두 개의 이동을 기록하고, 더 긴 기간의 가격 구조를 무시할 수 있습니다. 해결책: 이동 기록의 시간 범위를 확장하는 것을 고려하십시오.

전략 최적화 방향

코드 분석을 바탕으로, 이 전략은 다음과 같은 몇 가지 최적화 방향이 있습니다.

  1. 동적 위험 관리: 고정된 스톱 스톱 손실 지점을 ATR (진정한 변동의 폭) 에 기반한 동적 설정으로 변경하여 다양한 시장 변동 환경에 적응합니다. 이렇게하는 것은 낮은 변동 동안 조기 중지 손실을 줄이고 높은 변동 동안 충분한 보호를 제공합니다.

  2. 필터링 시간을 추가합니다.전략에 시간 유효성 검사를 추가하고, 이동 영역이 너무 오래 형성되어도 신호를 유발하지 않으면, 그 중요성을 다시 설정하거나 줄여야 한다. 이것은 노후화된 정보를 기반으로 거래 결정을 내리는 것을 피할 수 있다.

  3. 수량확인 도입: 거래량을 신호 확인의 보조 지표로 사용하고 거래량이 증가할 때만 신호를 받아 거래 품질을 향상시킵니다. 거래량은 가격 행동의 유효성을 검증 할 수 있습니다.

  4. 다중 시간 프레임 분석: 현재 시간 프레임의 신호와 더 높은 시간 프레임의 트렌드 방향을 결합하고, 방향이 일치할 때만 거래하여 승률을 높여줍니다.

  5. 자기 적응 변수 시스템: 최근 시장 행동에 따라 민감성 매개 변수를 자동으로 조정하는 메커니즘을 구현하여 전략이 시장 전환에 적응할 수 있도록합니다. 이것은 다른 시장 단계 (트렌드, 간격 진동) 에 따라 다른 매개 변수 설정이 필요하기 때문입니다.

  6. 연쇄손실보장: 불리한 시장 조건에서 지속적인 손실을 피하기 위해 특정 수의 연속 상쇄 손실이 발생하면 거래를 일시 중단하거나 매개 변수를 조정하는 메커니즘을 설계하십시오.

요약하다

고위치 이동 지역 수량 거래 전략은 가격 구조와 그래프 형태에 기반한 체계화된 거래 방법이며, 특정 이동 선과 가격 행동 패턴을 식별하여 거래 신호를 생성한다. 이 전략은 고정된 스톱 로스 메커니즘을 통해 위험을 제어하고, 시각적 도구를 통해 거래 결정을 보조한다.

이 전략의 주요 장점은 논리 명확성, 매개 변수 유연성, 위험 관리 자동화입니다. 그러나 또한 스톱 로즈 설정이 너무 작고 매개 변수 민감성이라는 잠재적인 위험이 있습니다. 동적 위험 관리, 시간 필터링, 거래량 확인, 다중 시간 프레임 분석 및 적응 매개 변수 시스템과 같은 최적화 조치를 도입함으로써 이 전략의 거친성과 수익성을 크게 향상시킬 수 있습니다.

기술 분석을 기반으로 체계화된 거래를 추구하는 투자자들에게, 고급 이동 지역 전략은 고려할 가치가 있는 프레임워크를 제공하는데, 특히 관련 최적화와 결합되면 다양한 시장 환경에서 안정적인 성과를 유지할 가능성이 높다.

전략 소스 코드
/*backtest
start: 2025-01-01 00:00:00
end: 2025-05-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=6
strategy("Advanced Displacement Zone Strategy", overlay=true)

// === PARAMETERS ===
sensitivity = input.float(1.2, title="Displacement Strength Multiplier")
dojiThreshold = input.float(0.1, title="Doji Body-to-Range Threshold (e.g., 0.1 = 10%)")

// === FUNCTIONS ===
isDoji() =>
    candleRange = high - low
    body = math.abs(close - open)
    candleRange > 0 and (body / candleRange) <= dojiThreshold

isBullishDisplacement() =>
    body = close - open
    wick = (high - low) - math.abs(body)
    not isDoji() and body > 0 and body > wick * sensitivity

isBearishDisplacement() =>
    body = open - close
    wick = (high - low) - math.abs(body)
    not isDoji() and body > 0 and body > wick * sensitivity

// === STATE TRACKING ===
var float lastBullWick = na
var float secondLastBullWick = na
var float lastBearWick = na
var float secondLastBearWick = na
var bool inBearZone = false
var bool inBullZone = false

// === DETECT DISPLACEMENT CANDLES ===
if isBullishDisplacement()
    secondLastBullWick := lastBullWick
    lastBullWick := high
    inBullZone := true
    inBearZone := false

if isBearishDisplacement()
    secondLastBearWick := lastBearWick
    lastBearWick := low
    inBearZone := true
    inBullZone := false

// === WAITING ZONE BOUNDARIES ===
bullZoneHigh = math.max(lastBullWick, secondLastBullWick)
bullZoneLow  = math.min(lastBullWick, secondLastBullWick)
bearZoneHigh = math.max(lastBearWick, secondLastBearWick)
bearZoneLow  = math.min(lastBearWick, secondLastBearWick)

// === ZONE LOGIC ===
inBullZoneNow = close > bullZoneLow and close < bullZoneHigh
inBearZoneNow = close > bearZoneLow and close < bearZoneHigh

wasBelowBearZone = close[1] < bearZoneLow and close > bearZoneLow and not inBearZoneNow
wasAboveBullZone = close[1] > bullZoneHigh and close < bullZoneHigh and not inBullZoneNow

// === SIGNAL CONDITIONS ===
sellSignal = inBearZone and wasBelowBearZone
buySignal = inBullZone and wasAboveBullZone

// === STRATEGY EXECUTION ===
if buySignal
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", from_entry="Buy", stop=close - 1, limit=close + 12)  // Fixed Stop Loss at 5 points, Take Profit at 12 points

if sellSignal
    strategy.entry("Sell", strategy.short)
    strategy.exit("Buy", from_entry="Sell", stop=close + 1, limit=close - 12)  // Fixed Stop Loss at 5 points, Take Profit at 12 points

// === PLOTS ===
plotshape(buySignal, title="Buy", location=location.belowbar, style=shape.arrowup, color=color.green, size=size.small, text="BUY")
plotshape(sellSignal, title="Sell", location=location.abovebar, style=shape.arrowdown, color=color.red, size=size.small, text="SELL")

plot(inBullZone ? bullZoneHigh : na, title="Bull Zone High", color=color.green, linewidth=1)
plot(inBullZone ? bullZoneLow : na, title="Bull Zone Low", color=color.green, linewidth=1)
plot(inBearZone ? bearZoneHigh : na, title="Bear Zone High", color=color.red, linewidth=1)
plot(inBearZone ? bearZoneLow : na, title="Bear Zone Low", color=color.red, linewidth=1)