OXARUS :: RESEARCH

Forex market structure research · Oxarus Quant

Studies on support and resistance levels, weekend gaps and how price behaves at levels, built on millions of minutes of data.

Interface data marked as representative is illustrative; it is not a real client, result or measurement.

Not investment advice. Trading in financial markets carries a risk of losing capital.

WE MEASURE FIRST.

QUANT · RESEARCH

We test widely held but rarely measured market ideas against data: seven years of minute prices, a matched control group for every idea and a repeat on a second pair. We publish the ideas that don't hold up, too.

  • Minute data, 2020–2026
  • A matched control group in every test
  • Replicated on EURUSD and GBPUSD
  1. Level
  2. Control
  3. Result

REPRESENTATIVE INTERFACE DATA · Representative chart. Findings are for research purposes only and are not investment advice.

file

level_study.ipynb

dataset

EURUSD · M1 · 2020–2026 · 40,658 touches

tag

Representative chart

[Count touches] [Build control lines] [Compare rates]

done

done

level

Previous day high (PDH)

band

band = 0.05 × ATR

levelTag

PDH

Matched control

tag

ctl

body

For every real level, a line at the same distance that means nothing. Taken from another day's real offset, shifted by 7 days.

Real level

9–25 / day

Control line

~25 / day

Distance distribution

identical

Three touches on one level

  • 0

    n

    #1

    minutes

    4

    dwell

    4 min

    out

    REJECT

  • 1

    n

    #2

    minutes

    9

    dwell

    9 min

    out

    REJECT

  • 2

    n

    #3

    minutes

    31

    dwell

    31 min

    out

    BREAK

The touch that stayed longest in the band broke the level. One representative day; the rates are in the third cell.

resultTitle

Break rate · by level family

PIVOT4140
PDHLC4140
ROUND4140
SWING4140
FIB3939

Same result every year

  • 2020
  • 2021
  • 2022
  • 2023
  • 2024
  • 2025
  • 2026
verdict

No difference: a level's name doesn't change the odds of a break.

Representative chart; rates are from the published study.

TWO PUBLISHED STUDIES.

STUDIES

Each study states its sample, period and control method. Pick a finding to bring its panel forward in the figure.

From the published study. For research purposes only, not investment advice.

  • Do levels really hold? (EURUSD and GBPUSD · 2020–2026)

    At pivots, previous-day levels, round numbers, swing and Fibonacci levels, we checked whether price broke through, and compared the results with meaningless control lines that share the same distance distribution.

    sample

    83,527

    sample unit

    touches

    STUDY FACTS

    Sample

    83,527 touches

    Period

    2020–2026

    Pairs

    EURUSD · GBPUSD

    Resolution

    M1 (minute bars)

    Control

    Distance-matched lines

    Replication

    Replicated on GBPUSD

    FINDINGS

    • Every level family broke about 41% of the time; matched control lines, 40%. The same held in each of the seven years.
    • Which touch it was made no difference: from the 1st touch to the 5th, 41%, 40%, 39%, 42%, 44%.
    • The only thing that changed the outcome was how long price stayed near the level on that touch. The same result replicated point for point on GBPUSD.
    • Break rate by level family
    • Break rate by touch number
    • Break probability by time in the band
  • Do weekend gaps close? (EURUSD · weekend and holiday breaks)

    We measured when the Monday opening gap made it back to Friday's close, and how far price traveled before it did.

    sample

    345

    sample unit

    breaks

    STUDY FACTS

    Sample

    345 breaks

    Period

    2020–2026

    Pair

    EURUSD

    Resolution

    M1 (minute bars)

    Reference

    Friday close

    Horizon

    60 days

    FINDINGS

    • 65% of gaps closed during the opening session; among those, the median time to close was 11 minutes.
    • 95% closed within five trading days, and 98% within sixty days.
    • The small tail that never closed lined up exactly with geopolitical shock days. For gaps larger than 5 pips, the median excursion before closing was 21 pips, and 120 pips in the worst decile.
    • Closed in the opening session
    • Share closed over time
    • Excursion before the close
PIVOT4140
PDHLC4140
ROUND4140
SWING4140
FIB3939
matched control

40

touch number

[41] [40] [39] [42] [44]

  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

stops

[0] [10] [30] [60]

eurusd

[41] [51] [55] [56]

gbpusd

[40] [–] [54] [–]

all

65

big

10

median time to close

11 min

  • open

    all

    0

    big

    0

  • session

    all

    65

    big

    10

  • 5 days

    all

    95

    big

    85

  • 60 days

    all

    98

p50

21

p90

120

max

470

still open after 60 days

2

HOW LONG AT THE LEVEL?

TIME AT THE LEVEL

The longer price stays in a level's band, the more likely it is to break the level, until the effect levels off. Pick a duration; the chart and the ranges update together.

stop option

≥{minutes} min

replication

GBPUSD replication

probability

break probability

base

base

lift

vs base

lift unit

pts

not measured

not measured

pair eur

EURUSD

pair gbp

GBPUSD

Break probability by time spent in the level band. A research finding, not a trade recommendation.

By session: base → 30 minutes

Time in the band

rejects

Rejections

breaks

Breaks

median

median

selected

selected

Robustness to band width

With the band varied between 0.03 and 0.08 × ATR, the 30-minute lift stayed between +12 and +14 points.

plateau

plateau

dataset

EURUSD · GBPUSD · M1 · 2020–2026 · n=83,527

Time already in the band

[0] [10] [30] [60]

eurusd

[41] [51] [55] [56]

gbpusd

[40] [–] [54] [–]

control

40

control short

control

plateau

[56] [57]

minute unit

min

break query

P(break | dwell ≥ {minutes} min)

chart sample

EURUSD n=40,658 · GBPUSD n=42,869

By session: base → 30 minutes

  • ASIA

    base

    43

    at30

    55

  • LDN

    base

    40

    at30

    56

  • NY

    base

    40

    at30

    55

By session: base → 30 minutes

30 min

rejects

[9] [10]

breaks

[28] [31]

  • 0.03
  • 0.05
  • 0.08
Robustness to band width

× ATR

Robustness to band width

[12] [14]

Robustness to band width

30 min

WHEN DO THEY CLOSE?

WEEKEND GAPS

Across 345 weekend and holiday breaks, how long the opening gap took to get back to Friday's close. Pick a horizon.

Horizon

  • Session

  • 5 days

  • 60 days

The remaining 2%: gaps still open after sixty days. Every one of them coincides with a major geopolitical shock.

Cumulative share of gaps closed

By gap size

all gaps

All gaps

big gaps

Over 20 pips

same session

Closed in the same session

within week

Within 5 trading days

Excursion before closing (≥5 pips)

Before the gap closed, price moved the other way by a median of 21 pips, 120 pips in the worst decile, and 470 pips at most.

median fill

median fill

axis open

open

axis session

session

axis day

1 day

axis week

5 days

axis two months

60 days

unfilled

unfilled

not measured

not measured

pips unit

pips

EURUSD, 345 weekend and holiday breaks. A research finding, not investment advice.

n

345

median fill

11 min

Horizon

60 days

chart sample

EURUSD n=345

points

[0] [65] [–] [95] [98]

  • 0

    at

    1

    value

    10

  • 1

    at

    3

    value

    85

unfilled

2

all

65

big

10

all

95

big

85

all

98

Excursion before closing (≥5 pips)

p50

21

p90

120

max

470

Excursion before closing (≥5 pips)

pips · log scale

HOW WE AVOID FOOLING OURSELVES.

METHOD

We logged every interim result that turned out wrong. Switch any entry between how it looked at first and what it actually was.

  • Random lines broke less often than levels, so levels looked like 'magnets.' (CONTROL BIAS)

    The random lines sat farther from price. Once the control lines were built with the same distance distribution, the difference vanished.

  • Three months of data showed a clear dip at the third touch. (MULTIPLE COMPARISONS)

    Across seven years of data, it evaporated. Run enough comparisons, and some differences show up by chance.

  • One measurement came out with a 100% break rate. (SIGN BUG)

    When a rate sticks to 0 or 1, suspect the measuring machinery first. It was a single sign error.

  • An idea seemed to hold on one pair. (REPLICATION)

    We rebuilt the same test from scratch on another pair. Nothing that failed to hold on both counted as a finding.

Correction log

resolved

resolved

count

{fixed} / {total} resolved

schematic

schematic

show traps

Show first glance

show fixes

Apply corrections

random

random lines

matched

matched lines

levels

levels

distance

distance to price

touch rates

[41] [40] [39] [42] [44]

  • 3 months of data

    7 years of data

bug: sign(dist)

100

fixed

41

matched control

40

eur

EUR 55

gbp

GBP 54

start

0m

end

30m

LET DATA ANSWER YOUR QUESTION.

RESEARCH

If you'd like us to run measurements or hypothesis tests on market data for your organization, or build its research infrastructure, get in touch.

ACTIONS

DOCUMENTS

llms.txt

/llms.txt

agents.md

/en/agents.md

Every page is also served as Markdown: add .md to the address or request it with Accept: text/markdown.