본문으로 건너뛰기
geonulab
← All patterns

Pattern spec · breakout-range

Breakout03
Spec + pseudocode

Range compression breakout

N-bar range → expansion with false-break guard

range 압축 후 확장 breakout. wick-only break는 false-break exit로 처리.

Inputs

range_high · range_low · volume · atr

System concern

Build · Execute

Failure modes

  • False breakout
  • Low participation
  • Already-expanded vol
  • +1 more

Pseudocode · excerpt

compressed = range_width_pct <= 20
long_break = close > range_high + 0.10 * atr
long_entry = edge(compressed AND long_break AND vol_ok)
sl = range_mid · tp = entry + 2.0 * atr
false_break: close inside range within 2 bars → exit

Parity: Range window excludes current bar · false-break close-based

§ Full spec sections

Range window

parity-critical: range는 현재 봉 제외, 직전 N개 완결 봉만 사용.

range_high = MAX(high[t-20 : t-1])
range_low  = MIN(low[t-20 : t-1])
compressed = PERCENTILE_RANK(range_high - range_low, 60) <= 20

Entry edge

종가 breakout + volume + ATR expansion gate. optional confirm bar.

buffer = 0.10 * atr
long_break = close > range_high + buffer
vol_ok     = volume >= 1.2 * SMA(volume, 20)
expansion  = true_range >= 1.05 * atr

long_ready  = compressed AND long_break AND vol_ok AND expansion
long_entry  = long_ready AND NOT long_ready[t-1]

False-break exit

range 안으로 종가 복귀 시 Execute layer에서 즉시 flatten.

IF long AND close inside [range_low, range_high] within 2 bars:
  exit at close (reason: false_break)

sl = range_mid · tp = entry + 2.0 * atr