돌파적 역추세 탈출 전략

highest Lowest TA 趋势反转 突破策略 动态退出 高低点追踪 反向信号 技术分析
생성 날짜: 2025-04-30 11:09:20 마지막으로 수정됨: 2025-04-30 11:09:20
복사: 0 클릭수: 318
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

돌파적 역추세 탈출 전략 돌파적 역추세 탈출 전략

개요

반향 트렌드 탈퇴 전략은 가격의 역사적인 고도와 낮은 지점을 돌파하는 것을 기반으로 한 양적 거래 시스템이며, 트렌드 반전 신호를 탈퇴 메커니즘으로 결합합니다. 이 전략은 지난 3 거래 날의 최고 가격과 최저 가격을 모니터링하여, 가격이 이러한 중요한 수준을 돌파 할 때 입문 작업을 수행하고, 반향 트렌드 탈퇴 신호가 발생하면 평형으로 탈퇴합니다. 이 방법은 단기 가격 움직임을 포착하고, 동향이 바뀌면 적시에 손실을 중지하거나 이익을 잠금하여 완전한 거래 순환을 형성합니다.

전략 원칙

이 전략의 핵심은 두 가지 핵심 개념에 기초하고 있습니다.

  1. 3일간의 최고점과 최저점 계산전략은 지난 3일 (현 거래일을 제외한) 동안의 최고 가격과 최저 가격을 계산하여 중요한 돌파 기준점으로 사용합니다.
high3 = ta.highest(high[1], 3)
low3 = ta.lowest(low[1], 3)
  1. 입학 조건
    • 다중 입점: 종결 가격이 3일 최고치를 돌파했을 때 다중 입점
    • 공백 입시: 3일 최저값을 넘어서면 공백 포지션에 진입한다
longEntry = close > high3
shortEntry = close < low3
  1. 포지션 추적전략: 탈퇴 논리를 올바르게 수행하기 위해 현재 및 이전 거래 주기의 위치 상태를 실시간으로 추적합니다.
isLong = strategy.position_size > 0
isShort = strategy.position_size < 0
wasLong = nz(strategy.position_size[1] > 0)
wasShort = nz(strategy.position_size[1] < 0)
  1. 트렌드 반전 탈퇴 메커니즘: 현재 포지션 방향과 반대되는 신호가 나타났을 때, 전략은 트렌드가 변했다고 생각하고, 즉시 평지 포지션을 탈퇴한다.
longExit = shortEntry
shortExit = longEntry
  1. 실제 실행 논리: 전략은 입장이 없는 상태에서 새로운 입문 신호를 실행하고, 트렌드 반전 신호에 따라 퇴출 동작을 실행한다.

전략적 이점

  1. 간단하지만 효과적입니다.이 전략은 간단한 가격 행동 원칙에 기반하여 이해하기 쉽고 실행이 가능하며 복잡한 기술 지표가 필요하지 않아 과다 조화될 위험이 낮아집니다.

  2. 적응력비교적 최근의 3일 하위/높이를 기준으로 하여, 전략은 다양한 시장 환경과 변동률 상황에 적응할 수 있으며, 너무 민감하거나 너무 느려지지 않습니다.

  3. 명확한 출전규칙전략은 명확한 입시 신호와 퇴출 조건을 제공하여 거래 과정에서 주관적인 판단을 제거하고 거래 규율을 유지하는 데 도움이됩니다.

  4. 역전성 보호: 트렌드 반전을 퇴출 신호로 사용하여, 시장 방향이 바뀌면 신속하게 포지션을 청산하고, 철수를 효과적으로 제어하고, 이미 얻은 이익을 보호할 수 있다.

  5. 전체적인 재무 관리전략: 순자산 비율 방식으로 포지션을 관리하는 방법, 고정 수에 비해 더 유연한 방법, 계정 크기에 따라 거래 규모를 자동으로 조정할 수 있다.

  6. 시각적 피드백이 명확합니다.전략 차트 상의 구매, 판매 및 탈퇴 표시를 통해 거래자는 전략 수행을 직관적으로 이해할 수 있으며, 분석 및 전략 최적화를 촉진합니다.

전략적 위험

  1. 가짜 해킹의 위험시장은 단기적인 가짜 돌파구가 발생할 수 있으며, 이는 전략이 출입 후 급속하게 역으로 이동하여 불필요한 거래 비용과 손실을 초래할 수 있습니다. 해결 방법: 거래량을 확인하거나 가격이 돌파구 위치에 일정 시간 동안 머물기를 기다리는 것과 같은 확인 필터를 추가 할 수 있습니다.

  2. 자주 거래하는 위험높은 변동성이 있는 시장에서, 가격이 자주 3일 높은 낮은 지점을 돌파할 수 있으며, 이는 과도한 거래와 수수료 침식을 초래한다. 해결 방법: 참조주기를 연장하거나 냉각기를 추가하여 거래 빈도를 줄일 수 있다.

  3. 손해 방지 장치의 부재: 현재 전략은 역동성 신호에 의존하여 탈퇴하는 것으로, 극단적인 시장 조건에서 큰 손실을 초래할 수 있다. 해결 방법: 추가적인 보호로서 고정된 스톱 손실 또는 변동률 조정 스톱 손실 장치를 추가한다.

  4. 시장 공백 위험: 하룻밤의 폭파 또는 중요한 뉴스 사건 이후 가격이 크게 상승할 수 있으며, 실제 입출장 가격이 예상보다 훨씬 낮아질 수 있습니다. 해결 방법: 최대 허용 슬라이드 지점을 설정하거나 스톱 손실 명령을 사용하십시오.

  5. 환경이 없는 경향: 격동적인 시장 환경에서는 3 일간 돌파 전략이 좋지 않아 여러 번의 잘못된 신호를 생성할 수 있습니다. 해결 방법: 시장 상태 필터를 추가하여 명확한 추세를 식별하는 시장 환경에서만 전략을 적용하십시오.

전략 최적화 방향

  1. 최적화 참조 주기: 현재 고정된 3일 기준주기는 모든 시장 조건에 적합하지 않을 수 있다. 참조주기의 동적조정을 실현하는 것이 권장되며, 시장의 변동률에 따라 돌파구 주기의 길이를 자동으로 조정하고, 높은 변동률의 시장에서 더 긴 주기를 사용하고, 낮은 변동률의 시장에서 더 짧은 주기를 사용합니다.

  2. 필터링 조건을 추가: 추가 필터링 조건을 도입하여 신호 품질을 향상시킬 수 있습니다. 예를 들어:

    • 거래량 확인: 거래량이 크게 증가하면서 돌파구를 확보하십시오
    • 트렌드 확인: 장기 이동 평균을 사용하여 전체 트렌드 방향을 확인
    • 변동성 필터: 과도한 변동성 또는 변동성이 비정상적으로 낮은 시장 환경에서 거래를 중단합니다.
  3. 탈퇴 메커니즘이 경우, 이 기구에 추가할 수 있는 다른 기구들은 다음과 같습니다:

    • 고정 스톱: 입시 가격에 기반한 고정 비율의 스톱
    • 트래킹 스톱: ATR 또는 퍼센티지 트래킹 스톱을 사용하여 수익을 보호합니다.
    • 시간 손실: 신호 발신 후 일정 시간 동안 예상하지 않은 성능이 평준화
  4. 일부 포지션 관리 도입: 현재 전략은 100%의 순가율 거래를 채택하고 있으며, 신호 강도 또는 시장 상황의 동성에 따라 포지션 크기를 조정하고, 더 확실한 신호에 포지션을 증가시키고, 약한 신호에 포지션을 감소시키는 것을 고려할 수 있습니다.

  5. 시간 프레임 필터를 추가하세요: 더 긴 시간 주기에서 트렌드 방향을 확인하고, 장기적인 트렌드와 일치하는 방향으로만 거래하여 역전 거래의 위험을 줄여줍니다. 이러한 다중 시간 프레임 분석은 전략의 성공률을 크게 향상시킬 수 있습니다.

요약하다

3일 반향 트렌드 탈퇴 전략은 가격 돌파구와 트렌드 추적 원리를 결합한 거래 시스템으로, 단기 가격 높낮이를 모니터링하여 입문 신호를 구축하고, 반향 돌파구를 탈퇴 메커니즘으로 사용한다. 이 전략의 장점은 개념이 간단하고, 규칙이 명확하며, 적응력이 강하며, 초보자 및 경험이 풍부한 거래자의 사용에 적합하다. 그러나, 전략에는 허위 돌파구 위험, 과도한 거래 위험 및 완벽한 손해 방지 장치의 부족 등의 문제가 있습니다. 참조 주기를 최적화하고, 과잉 조건을 추가하고, 탈퇴 메커니즘을 개선하고, 더 지능적인 포지션 관리를 도입함으로써 전략의 안정성과 수익성을 크게 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2025-03-30 00:00:00
end: 2025-04-29 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("3-Day Breakout Strategy with Trend Change Exit", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === Calculate 3-day high/low (excluding current bar) ===
high3 = ta.highest(high[1], 3)
low3 = ta.lowest(low[1], 3)

// === Entry conditions ===
longEntry  = close > high3
shortEntry = close < low3

// === Track position state ===
isLong   = strategy.position_size > 0
isShort  = strategy.position_size < 0
wasLong  = nz(strategy.position_size[1] > 0)
wasShort = nz(strategy.position_size[1] < 0)

// === Exit conditions ===
// Exit on trend reversal (new signal)
longExit  = shortEntry  // Exit long position when a short signal occurs
shortExit = longEntry   // Exit short position when a long signal occurs

// === Execute entries ===
buySignal  = longEntry and not isLong and not isShort
sellSignal = shortEntry and not isLong and not isShort

if (buySignal)
    strategy.entry("Long", strategy.long)
if (sellSignal)
    strategy.entry("Short", strategy.short)

// === Execute exits on opposite signal (trend change) ===
if (isLong and longExit)
    strategy.close("Long")
if (isShort and shortExit)
    strategy.close("Short")

// === Exit markers (on actual exit bar only) ===
exitLongSignal  = wasLong and not isLong
exitShortSignal = wasShort and not isShort

// === Plot entry signals only on the entry bar ===
plotshape(buySignal,  title="Buy Signal",  location=location.belowbar, color=color.green,  style=shape.labelup,   text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red,    style=shape.labeldown, text="SELL")

// === Plot exit signals only on the exit bar ===
plotshape(exitLongSignal,  title="Exit Long",  location=location.abovebar, color=color.orange, style=shape.labeldown, text="EXIT")
plotshape(exitShortSignal, title="Exit Short", location=location.belowbar, color=color.orange, style=shape.labelup,   text="EXIT")