volprof · Bybit Perp Volume Profile Open-Location Analysis

All data & analysis — generated 2026-09-02 07:33 UTC

Dataset

230
liquid symbols
90,283
symbol-days
522
UTC days
2025-03-30 → 2026-09-02
coverage

Methodology, hypothesis definitions and statistical protocol: PLAN.md, docs/methodology.md. Generated 2026-09-02 07:33 UTC.

Executive summary — what the data says, in plain English

Written 2026-09-02 · 230 liquid Bybit perps · 90,283 trading days · ~522 days each

(Mar 2025 → Sep 2026) · 70% value area · UTC day profiles

What we did

Every day, the market builds a "volume profile": a picture of where the trading

actually happened over the previous 24 hours. From that picture we get three

reference prices:

- POC — the price where the most trading happened (the market's "memory point")

- VAH / VAL — the top and bottom of the value area, the zone where 70% of

the day's business took place ("fair value" for that day)

We then asked: when the new day opens above, below, or inside yesterday's value

area — does that tell us anything about where the day is going? And we went

deeper: does it matter where the volume sat (POC near the top vs bottom)? Do the

individual trading sessions (Tokyo, London, New York) carry their own signals?

And what separates the days that went up from the days that went down, within each

scenario?

All results below come from real Bybit kline data, with statistical tests,

out-of-sample checks, and per-symbol consistency — and every edge is shown both

gross and after a realistic ~10 basis point round-trip trading cost.


The big picture

1. Where the day opens is NOT a crystal ball by itself

The classic market-profile theories — "open above yesterday's value = bullish day",

"open below = bearish day" — do not hold up in crypto perps:

You open...Day went UPAverage day returnVerdict
Above yesterday's VAH45.5%+8 bps (not significant)❌ no real edge
Inside value, above POC46.3%−4 bps
Inside value, below POC47.0%+4 bps
Below yesterday's VAL48.9%+19 bps (significant)⚠️ small bounce

Two surprises here:

- Opening above yesterday's high-value zone gave essentially nothing — worse

than a coin flip. The popular "open drive" idea (excess begets more excess)

doesn't survive contact with real data.

- The one statistically real effect is the opposite of the theory: opening

below yesterday's value bottom produced a mild bounce back up (+19 bps, and it

got stronger out-of-sample at +53 bps). It's a small mean-reversion effect,

and after costs it's marginal (+9 bps). Not a money printer — but it's real.

2. The STRUCTURE of yesterday matters more than where today opens

The interesting signal lives in how the previous day's volume was distributed:

- POC near yesterday's high (VAH) → next day slightly up (+13 bps,

significant, holds out-of-sample). This supports the absorption reading —

when the most trading happened at the highs, buyers were defending those prices,

and that strength carried into the next day. The opposite (distribution/bearish)

reading is not supported.

- POC near yesterday's low (VAL) → next day slightly down (−13 bps).

- High volatility amplified things: opening below VAL in a high-volatility

environment bounced +57 bps (vs +2 bps in calm conditions); opening above VAH

only worked in calm conditions (+23 bps).

So: the shape of yesterday is a real (if small) directional hint. The open

location alone is not.

3. The London session is the one that matters

This is the most practically interesting finding. We split each day into its three

trading sessions and built a separate volume profile for each — and the London

session's value area was the only reference that significantly predicted next-day

direction (spread of −17.8 bps between "open above London VA" vs "open below

London VA", p = 0.0055). The full-day value area — the one most traders use — was

not significant.

A few more session-level signals:

- A London session that closed near its highs (P-shape) → next day +22 bps

(p < 0.0001) — the strongest single session effect we found, and again the

opposite of the naive "distribution = bearish" story.

- Which session dominated the previous day matters: Tokyo-heavy day → next day

+13 bps; London-heavy day → next day −11 bps; NY-heavy → +10 bps.

- Session "momentum" (a strong Tokyo, London, or NY move carrying into the next

day) exists but is thin (+8–10 bps).

4. The "first hour predicts the day" theory mostly fails too

- Only 43–46% of the time does the first hour even continue the direction of

an outside-the-value open. The "opening drive" idea is falsified.

- The first hour's direction does line up with the day's direction about 60% of

the time — but that's only knowable after the first hour, and the payoff

difference is small. Not exploitable at the open.

5. Gaps tend to fill — but slowly

About 80% of days that open outside yesterday's value area return into it at

some point during the day. So fading an overextended open has eventual support —

but it's not a fast or clean edge.


What separates UP days from DOWN days? (factual vs counterfactual)

For each scenario we compared the days that went up vs the days that went down,

using only information known at the open:

- On days that opened above yesterday's value high, the UP days came from

calmer, buyer-heavy prior days: lower prior volatility, more volume sitting in

the upper half of the prior profile, and a Tokyo POC positioned higher. In other

words, an above-value open after a quiet, accumulation-style day behaves

differently from one after a wild, distribution-style day.

- On days that opened below yesterday's value low, the UP days had a wider prior

New York value area and a thinner London presence — suggesting the bounce is

more reliable after an NY session that ranged widely.

A simple decision tree using these prior-day/session features nudges accuracy from

~51–55% (base rate) to ~54–55% out-of-sample. Real but small — it's structure

discovery, not yet a tradeable signal.


The honest caveats

1. Effects are small. Most are 10–25 bps — the size of the bid-ask spread.

Only a few survive a 10 bps round-trip cost, and barely.

2. Per-symbol agreement is weak (46–60% of symbols agree with the pooled

direction). These are tendencies across the market, not laws that hold for

every coin. Some symbols will behave opposite.

3. This is 522 days of one regime. Crypto structure can change; treat these as

historical statistics, not guarantees.

4. The trees' out-of-sample improvement is ~0.5–2 points over guessing the

majority. Genuine but thin — any strategy built on this needs strict cost

awareness, per-symbol gates, and walk-forward validation (the lessons from our

earlier ORB and overnight-drift research apply here too).


What this means in practice

- Don't trade "open above/below value = direction". The naive version is

dead. The below-VAL bounce is the only raw effect worth respecting, and only in

high-volatility conditions.

- Watch the London session. Its value area and shape carry more next-day

signal than the full-day profile most people reference. London P-shape →

positive next day is the single most robust session finding.

- Use the structure, not the level. Yesterday's POC position (high vs low) and

the prior volatility regime tell you more than where today's open falls.

- The framework is now the asset. The code, data, and site let us test any

refinement — session-by-session leads, per-symbol filters, cost-aware

backtests — without re-building anything.

Full numbers behind every claim: see the tables on this page, or the detailed

findings report below.

H4 · Excess magnitude scaling (OLS slope per VA-width, corr)

hypgroupnols_slope_bps_per_vapearson_rspearman_rhospearman_p
H4dist_above_VAH16864-28.712-0.017-0.0090.247
H4dist_below_VAL200110.0000.002-0.0170.018

H1–H3 · Day return by open location vs prior-day profile

hypgroupnmean_ret_bpsmedian_ret_bpswin_ratetpci_lo_bpsci_hi_bpssym_consistencyn_symbolsoos_mean_bpsoos_p
H1-H4above_VAH168647.566-34.5750.4551.3630.173-2.89318.7450.46722910.0550.227
H1-H4VA_above_POC25597-3.730-28.4840.463-0.7410.459-14.0786.7870.5702307.2510.315
H1-H4VA_below_POC275813.794-24.0270.4700.7780.437-5.13413.7180.474230-7.4880.242
H1-H4below_VAL2001119.279-9.4100.4894.1350.0009.97528.3680.59623052.6120.000

H7–H9 · Prior-day POC position zone → next-day return

hypgroupnmean_ret_bpsmedian_ret_bpswin_ratetpci_lo_bpsci_hi_bpssym_consistencyn_symbolsoos_mean_bpsoos_p
H7-H9poc_near_VAL23104-13.072-38.3040.454-2.6110.009-22.654-3.0500.643230-19.0880.006
H7-H9poc_central4517711.931-20.6970.4753.3210.0014.92318.9210.56123010.5760.023
H7-H9poc_near_VAH2177213.113-19.4980.4762.5610.0103.24423.3410.54122930.5900.000

H10 · Prior VA width band → next-day return & range

hypgroupnmean_ret_bpsmedian_ret_bpswin_ratetpci_lo_bpsci_hi_bpsnext_day_range_pct
H10va_narrow45017-1.571-27.4750.465-0.4120.680-8.9745.51710.207
H10va_wide4503613.172-21.5650.4743.9340.0006.30619.6479.730

H11 · Prior-day profile shape → next-day return & range

hypgroupnmean_ret_bpsmedian_ret_bpswin_ratetpci_lo_bpsci_hi_bpsnext_day_range_pct
H11shape_P1997314.165-20.0480.4752.5800.0103.31224.7819.818
H11shape_b22372-13.381-38.2360.452-2.4250.015-23.941-2.19111.036
H11shape_D4770811.297-20.4080.4753.4160.0014.93317.9539.531

H15 · Open-location effect by ATR regime (low/high tercile)

hypgroupnmean_ret_bpsmedian_ret_bpswin_ratetpci_lo_bpsci_hi_bps
H15above_VAH_atr_low543922.8731.0680.5014.3210.00012.68933.421
H15above_VAH_atr_high5739-7.395-123.8320.414-0.5340.594-33.93619.067
H15below_VAL_atr_low58372.278-9.7850.4820.4640.642-7.46111.412
H15below_VAL_atr_high743856.9333.1510.5015.3890.00036.24378.534

H16 · Open-location effect by trend regime (daily EMA20)

hypgroupnmean_ret_bpsmedian_ret_bpswin_ratetpci_lo_bpsci_hi_bps
H16above_VAH_trend_up847419.529-22.0700.4742.2260.0262.20636.622
H16above_VAH_trend_down8390-4.517-47.1700.435-0.6660.505-17.3628.513
H16below_VAL_trend_up534216.635-6.0360.4931.6420.101-3.54436.068
H16below_VAL_trend_down1466920.242-10.6620.4883.9070.0009.71130.482

H5–H6 · First-hour drive & day leadership

hypgroupnopen_drive_ratedrive_binom_pmean_ret_1h_bpsday_follows_1h_ratemean_day_ret_when_1h_up_bpsmean_day_ret_when_1h_down_bps
H5drive_above_VAH168640.4340.000-7.430nannannan
H6lead_above_VAH16864nannannan0.603137.794-91.541
H5drive_below_VAL200110.4610.000-1.017nannannan
H6lead_below_VAL20011nannannan0.580103.039-80.334

H12–H13 · Fill-back into prior VA

hypgroupnfill_rate
H12fill_above_VAH168640.795
H12fill_below_VAL200110.777

H17 · Per-symbol stability (robustness)

locn_symbolssymbols_agreefrac_agreebinom_ppooled_mean_bpsmedian_sym_mean_bpsn_sym_positiven_sym_negativetier_liquid_mean_bpstier_mid_mean_bps
above_VAH2291070.4670.3550.441-4.6401071220.441nan
VA_above_POC2301310.5700.041-5.483-7.73799131-5.483nan
VA_below_POC2301090.4740.4688.152-2.6551091218.152nan
below_VAL2301370.5960.00430.16011.7431379330.160nan

S1 · Open vs prior NY/London/Tokyo session VA vs full-day VA

refbucketnmean_bpswin_ratetp
full_dayVA_above_POC25597-3.7300.463-0.7410.459
full_dayVA_below_POC275813.7940.4700.7780.437
full_dayabove_VAH168647.5660.4551.3630.173
full_daybelow_VAL2001119.2790.4894.1350.000
full_daySPREAD(abv-blw)36875-11.713nan-1.6160.106
tokyoVA_above_POC108606.6300.4560.7090.478
tokyoVA_below_POC10824-13.1870.463-1.8740.061
tokyoabove_VAH311757.8310.4531.7920.073
tokyobelow_VAL369998.6650.4902.5020.012
tokyoSPREAD(abv-blw)68174-0.834nan-0.1500.881
londonVA_above_POC15458-17.3150.449-2.7920.005
londonVA_below_POC16030-8.7590.466-1.5040.133
londonabove_VAH277406.5450.4571.2910.197
londonbelow_VAL3082524.2990.4926.2330.000
londonSPREAD(abv-blw)58565-17.753nan-2.7750.006
nyVA_above_POC224547.5380.4731.4170.157
nyVA_below_POC230470.8100.4650.1760.860
nyabove_VAH214105.6580.4650.9680.333
nybelow_VAL231429.2230.4752.0350.042
nySPREAD(abv-blw)44552-3.566nan-0.4820.630

S2 · Prior-day session shape → next-day return

bucketgroupnmean_bpsmedian_bpswin_ratetpsession
tokyo_shapeD466095.095-24.0920.4701.4100.159tokyo
tokyo_shapeP1996510.767-9.9030.4852.0440.041tokyo
tokyo_shapeb232841.787-39.3250.4560.3860.700tokyo
london_shapeD489294.047-25.1190.4681.2150.224london
london_shapeP1842822.358-15.0220.4823.9140.000london
london_shapeb22696-3.856-30.8010.463-0.7270.467london
ny_shapeD476547.389-24.3780.4702.1670.030ny
ny_shapeP19853-4.612-34.0980.458-0.8160.414ny
ny_shapeb2254611.621-16.1450.4802.2830.022ny

S3 · Prior-day session return (momentum) → next-day return

sessionprior_sessionnmean_bpswin_ratetp
tokyoup436018.3570.4682.2850.022
tokyodown459292.5600.4710.7360.462
londonup424321.5270.4520.4110.681
londondown473079.7430.4862.7980.005
nyup433947.4800.4581.9980.046
nydown463094.4580.4811.2880.198

S4 · Prior-day dominant session (by turnover share) → next-day

sessionnmean_bpswin_ratetp
tokyo2663412.6860.4792.4050.016
london22777-10.9840.465-2.3610.018
ny4044710.0450.4672.8650.004

S5 · Prior-day session VA width → next-day range

sessionva_bandnnext_day_range_pctmean_ret_bpstp
tokyonarrow449299.7240.671110.4240.000
tokyowide4492910.17510.324111.8260.000
londonnarrow450229.92814.111111.0210.000
londonwide4503110.009-2.505111.3160.000
nynarrow4502310.161-10.65597.3580.000
nywide450309.77622.257135.7190.000

CF · Factual vs counterfactual (UP vs DOWN days)

Within each open-location scenario, feature means for UP days vs DOWN days (all features known at the open). |d| = Cohen's d.

scenariofeaturen_upn_downmean_upmean_downdifftpcohens_dup_rate
above_VAHpoc_pos766691980.3810.3740.0072.7050.0070.0420.455
above_VAHva_width_ratio766691980.4840.4790.0052.9820.0030.0460.455
above_VAHupper_share766691980.4310.4200.0114.9260.0000.0760.455
above_VAHopen_dist_va766691980.3940.422-0.027-4.1650.000-0.0630.455
above_VAHtokyo_poc_pos765991920.4940.4800.0134.3190.0000.0670.455
above_VAHtokyo_va_width_ratio765991920.4770.478-0.001-0.5690.569-0.0090.455
above_VAHtokyo_upper_share765991920.4880.4800.0093.6490.0000.0560.455
above_VAHtokyo_turnover_share765991920.3310.335-0.004-1.8960.058-0.0290.455
above_VAHtokyo_ret765991920.0020.0020.0000.3860.6990.0060.455
above_VAHlondon_poc_pos766691980.4590.460-0.001-0.2540.799-0.0040.455
above_VAHlondon_va_width_ratio766691980.4900.4880.0010.9190.3580.0140.455
above_VAHlondon_upper_share766691980.4780.4720.0062.7280.0060.0420.455
above_VAHlondon_turnover_share766691980.3810.3750.0052.9940.0030.0460.455
above_VAHlondon_ret766691980.0150.016-0.001-1.7880.074-0.0270.455
above_VAHny_poc_pos766691980.5040.504-0.001-0.1580.875-0.0020.455
above_VAHny_va_width_ratio766691980.5010.502-0.001-0.4790.632-0.0070.455
above_VAHny_upper_share766691980.4900.491-0.001-0.3000.764-0.0050.455
above_VAHny_turnover_share766691980.4290.4220.0073.7130.0000.0570.455
above_VAHny_ret766691980.0300.033-0.003-3.3960.001-0.0500.455
above_VAHprev_atr14_pct766691980.6970.761-0.063-7.2060.000-0.1100.455
above_VAHgap_pct766691980.0000.0000.000nannannan0.455
VA_above_POCpoc_pos11859137380.4410.4320.0093.6180.0000.0450.463
VA_above_POCva_width_ratio11859137380.4840.485-0.001-0.6940.487-0.0090.463
VA_above_POCupper_share11859137380.4920.4850.0073.7980.0000.0480.463
VA_above_POCopen_dist_va11859137380.2500.254-0.005-1.7540.079-0.0220.463
VA_above_POCtokyo_poc_pos11839137010.4950.4840.0114.3050.0000.0540.463
VA_above_POCtokyo_va_width_ratio11839137010.5010.5000.0000.2260.8210.0030.463
VA_above_POCtokyo_upper_share11839137010.4970.4860.0115.9300.0000.0740.463
VA_above_POCtokyo_turnover_share11839137010.3430.3420.0010.6570.5110.0080.463
VA_above_POCtokyo_ret11839137010.001-0.0010.0023.2370.0010.0410.463
VA_above_POClondon_poc_pos11859137380.4710.4660.0062.1140.0350.0260.463
VA_above_POClondon_va_width_ratio11859137380.4970.502-0.005-3.6940.000-0.0460.463
VA_above_POClondon_upper_share11859137380.4800.4790.0010.6450.5190.0080.463
VA_above_POClondon_turnover_share11859137380.4050.4020.0032.0100.0440.0250.463
VA_above_POClondon_ret11859137380.0040.005-0.000-0.9060.365-0.0110.463
VA_above_POCny_poc_pos11859137380.4910.495-0.004-1.6480.099-0.0210.463
VA_above_POCny_va_width_ratio11859137380.4770.4760.0010.4990.6180.0060.463
VA_above_POCny_upper_share11859137380.4880.495-0.006-3.3740.001-0.0420.463
VA_above_POCny_turnover_share11859137380.4320.436-0.004-2.3360.020-0.0290.463
VA_above_POCny_ret11859137380.0080.009-0.001-1.7860.074-0.0220.463
VA_above_POCprev_atr14_pct11859137380.7050.750-0.045-5.6530.000-0.0700.463
VA_above_POCgap_pct11859137380.0000.0000.000nannannan0.463
VA_below_POCpoc_pos12973146080.5290.5270.0020.7630.4460.0090.470
VA_below_POCva_width_ratio12973146080.4880.4880.0000.2030.8390.0020.470
VA_below_POCupper_share12973146080.4960.4950.0010.7990.4240.0100.470
VA_below_POCopen_dist_va1297314608-0.271-0.254-0.017-6.5670.000-0.0790.470
VA_below_POCtokyo_poc_pos12944145560.4960.4880.0093.3910.0010.0410.470
VA_below_POCtokyo_va_width_ratio12944145560.4980.499-0.001-1.0060.314-0.0120.470
VA_below_POCtokyo_upper_share12944145560.4970.4910.0063.1330.0020.0380.470
VA_below_POCtokyo_turnover_share12944145560.3450.3410.0042.4180.0160.0290.470
VA_below_POCtokyo_ret1294414556-0.000-0.0010.0011.0010.3170.0120.470
VA_below_POClondon_poc_pos12973146080.5080.5000.0093.4410.0010.0420.470
VA_below_POClondon_va_width_ratio12973146080.5010.503-0.002-1.8550.064-0.0220.470
VA_below_POClondon_upper_share12973146080.4970.4930.0042.4400.0150.0290.470
VA_below_POClondon_turnover_share12973146080.4030.409-0.006-4.0840.000-0.0490.470
VA_below_POClondon_ret1297314608-0.004-0.003-0.001-2.2740.023-0.0270.470
VA_below_POCny_poc_pos12973146080.4920.499-0.007-3.0600.002-0.0370.470
VA_below_POCny_va_width_ratio12973146080.4790.4750.0043.2400.0010.0390.470
VA_below_POCny_upper_share12973146080.4870.496-0.009-5.1760.000-0.0620.470
VA_below_POCny_turnover_share12973146080.4300.436-0.006-3.2320.001-0.0390.470
VA_below_POCny_ret1297314608-0.008-0.005-0.003-6.7410.000-0.0810.470
VA_below_POCprev_atr14_pct12973146080.7400.750-0.010-1.1230.261-0.0140.470
VA_below_POCgap_pct12973146080.0000.0000.000nannannan0.470
below_VALpoc_pos9788102230.6040.608-0.003-1.4450.148-0.0200.489
below_VALva_width_ratio9788102230.4840.4790.0042.7710.0060.0390.489
below_VALupper_share9788102230.5590.565-0.006-2.8550.004-0.0400.489
below_VALopen_dist_va978810223-202,948.726-0.401-202,948.324-1.0000.317-0.0140.489
below_VALtokyo_poc_pos9770101970.4900.490-0.000-0.0340.973-0.0000.489
below_VALtokyo_va_width_ratio9770101970.4730.4700.0032.2630.0240.0320.489
below_VALtokyo_upper_share9770101970.4940.4930.0010.5050.6140.0070.489
below_VALtokyo_turnover_share9770101970.3540.3480.0073.5940.0000.0510.489
below_VALtokyo_ret977010197-0.0000.001-0.001-2.5040.012-0.0350.489
below_VALlondon_poc_pos9788102230.5170.5150.0020.8100.4180.0110.489
below_VALlondon_va_width_ratio9788102230.4930.4920.0010.8980.3690.0130.489
below_VALlondon_upper_share9788102230.5010.5000.0010.2810.7790.0040.489
below_VALlondon_turnover_share9788102230.3780.386-0.008-4.6410.000-0.0660.489
below_VALlondon_ret978810223-0.015-0.014-0.001-3.2220.001-0.0460.489
below_VALny_poc_pos9788102230.4860.4810.0051.8420.0650.0260.489
below_VALny_va_width_ratio9788102230.5100.5010.0095.9870.0000.0850.489
below_VALny_upper_share9788102230.4870.491-0.004-2.2890.022-0.0320.489
below_VALny_turnover_share9788102230.4090.412-0.003-1.5330.125-0.0220.489
below_VALny_ret978810223-0.028-0.026-0.002-4.3680.000-0.0620.489
below_VALprev_atr14_pct9788102230.7760.7590.0161.5430.1230.0220.489
below_VALgap_pct9788102230.0000.0000.000nannannan0.489

Decision trees · Joint conditions separating UP from DOWN

========================================================================
Scenario: above_VAH | n=16851 | base rate=0.545 | train acc=0.548 | OOS acc=0.552 | leaves=8
top features: {'prev_atr14_pct': np.float64(0.3617645818439843), 'tokyo_ret': np.float64(0.20610582300596106), 'tokyo_poc_pos': np.float64(0.19360515407199874), 'london_poc_pos': np.float64(0.12398143427810583), 'ny_ret': np.float64(0.11454300679995005), 'poc_pos': np.float64(0.0), 'va_width_ratio': np.float64(0.0), 'upper_share': np.float64(0.0)}
|--- prev_atr14_pct <= 0.63
|   |--- tokyo_ret <= -0.03
|   |   |--- tokyo_poc_pos <= 0.26
|   |   |   |--- class: 0
|   |   |--- tokyo_poc_pos >  0.26
|   |   |   |--- class: 0
|   |--- tokyo_ret >  -0.03
|   |   |--- london_poc_pos <= 0.83
|   |   |   |--- class: 0
|   |   |--- london_poc_pos >  0.83
|   |   |   |--- class: 1
|--- prev_atr14_pct >  0.63
|   |--- tokyo_poc_pos <= 0.28
|   |   |--- tokyo_ret <= -0.04
|   |   |   |--- class: 0
|   |   |--- tokyo_ret >  -0.04
|   |   |   |--- class: 0
|   |--- tokyo_poc_pos >  0.28
|   |   |--- ny_ret <= 0.12
|   |   |   |--- class: 0
|   |   |--- ny_ret >  0.12
|   |   |   |--- class: 0


========================================================================
Scenario: VA_above_POC | n=25540 | base rate=0.536 | train acc=0.542 | OOS acc=0.527 | leaves=8
top features: {'prev_atr14_pct': np.float64(0.2895973153322696), 'tokyo_turnover_share': np.float64(0.21846016572424576), 'tokyo_upper_share': np.float64(0.1682695309619286), 'tokyo_ret': np.float64(0.12602870354059006), 'tokyo_va_width_ratio': np.float64(0.10445084984162627), 'london_ret': np.float64(0.09319343459933974), 'poc_pos': np.float64(0.0), 'va_width_ratio': np.float64(0.0)}
|--- prev_atr14_pct <= 0.79
|   |--- tokyo_upper_share <= 0.43
|   |   |--- tokyo_ret <= -0.06
|   |   |   |--- class: 1
|   |   |--- tokyo_ret >  -0.06
|   |   |   |--- class: 0
|   |--- tokyo_upper_share >  0.43
|   |   |--- tokyo_turnover_share <= 0.69
|   |   |   |--- class: 1
|   |   |--- tokyo_turnover_share >  0.69
|   |   |   |--- class: 0
|--- prev_atr14_pct >  0.79
|   |--- tokyo_va_width_ratio <= 0.42
|   |   |--- tokyo_turnover_share <= 0.23
|   |   |   |--- class: 0
|   |   |--- tokyo_turnover_share >  0.23
|   |   |   |--- class: 0
|   |--- tokyo_va_width_ratio >  0.42
|   |   |--- london_ret <= -0.00
|   |   |   |--- class: 0
|   |   |--- london_ret >  -0.00
|   |   |   |--- class: 0


========================================================================
Scenario: VA_below_POC | n=27500 | base rate=0.529 | train acc=0.536 | OOS acc=0.540 | leaves=8
top features: {'london_ret': np.float64(0.4343162692928736), 'ny_ret': np.float64(0.16263721123582817), 'ny_turnover_share': np.float64(0.11169816381567564), 'tokyo_ret': np.float64(0.1090231717559656), 'ny_poc_pos': np.float64(0.0954869289535156), 'london_upper_share': np.float64(0.08683825494614136), 'poc_pos': np.float64(0.0), 'va_width_ratio': np.float64(0.0)}
|--- london_ret <= 0.00
|   |--- london_ret <= -0.03
|   |   |--- ny_poc_pos <= 0.25
|   |   |   |--- class: 1
|   |   |--- ny_poc_pos >  0.25
|   |   |   |--- class: 0
|   |--- london_ret >  -0.03
|   |   |--- ny_ret <= -0.03
|   |   |   |--- class: 1
|   |   |--- ny_ret >  -0.03
|   |   |   |--- class: 0
|--- london_ret >  0.00
|   |--- tokyo_ret <= -0.02
|   |   |--- ny_turnover_share <= 0.52
|   |   |   |--- class: 0
|   |   |--- ny_turnover_share >  0.52
|   |   |   |--- class: 0
|   |--- tokyo_ret >  -0.02
|   |   |--- london_upper_share <= 0.40
|   |   |   |--- class: 0
|   |   |--- london_upper_share >  0.40
|   |   |   |--- class: 0


========================================================================
Scenario: below_VAL | n=19967 | base rate=0.511 | train acc=0.554 | OOS acc=0.536 | leaves=8
top features: {'tokyo_ret': np.float64(0.1908206397089765), 'london_ret': np.float64(0.1717652751368205), 'london_turnover_share': np.float64(0.16075405149767782), 'tokyo_turnover_share': np.float64(0.15763153578453465), 'ny_turnover_share': np.float64(0.13443368759667546), 'open_dist_va': np.float64(0.09884091288690967), 'ny_va_width_ratio': np.float64(0.08575389738840541), 'poc_pos': np.float64(0.0)}
|--- tokyo_ret <= -0.01
|   |--- london_ret <= -0.00
|   |   |--- london_turnover_share <= 0.52
|   |   |   |--- class: 1
|   |   |--- london_turnover_share >  0.52
|   |   |   |--- class: 0
|   |--- london_ret >  -0.00
|   |   |--- ny_va_width_ratio <= 0.65
|   |   |   |--- class: 0
|   |   |--- ny_va_width_ratio >  0.65
|   |   |   |--- class: 1
|--- tokyo_ret >  -0.01
|   |--- tokyo_turnover_share <= 0.38
|   |   |--- open_dist_va <= -1.16
|   |   |   |--- class: 0
|   |   |--- open_dist_va >  -1.16
|   |   |   |--- class: 0
|   |--- tokyo_turnover_share >  0.38
|   |   |--- ny_turnover_share <= 0.23
|   |   |   |--- class: 0
|   |   |--- ny_turnover_share >  0.23
|   |   |   |--- class: 1

Findings report

Volume Profile Open-Location Findings — 2026-09-02

_Generated from real Bybit 15m klines. All returns are open→close in basis points unless stated. net = mean − 10bps round-trip cost. sig = OOS p < 0.05. See PLAN.md for hypothesis definitions._

Dataset: 230 symbols · 90283 symbol-days · 522 UTC days · 2025-03-30 → 2026-09-02

H4 · Excess magnitude scaling (OLS slope per VA-width, corr)

groupnOLS slope (bps per VA-width)Pearson rSpearman ρρ p
dist_above_VAH16864-28.7-0.017-0.0092.47e-01
dist_below_VAL20011+0.0+0.002-0.0171.83e-02

H1–H3 · Day return by open location vs prior-day profile

groupnmean(bps)net(bps)wintp (adj)OOS meanOOS psig
above_VAH16864+8-245.5%1.361.73e-01+102.27e-01
VA_above_POC25597-4-1446.3%-0.744.59e-01+73.15e-01
VA_below_POC27581+4-647.0%0.784.37e-01-72.42e-01
below_VAL20011+19+948.9%4.133.57e-05+53<1e-6

H7–H9 · Prior-day POC position zone → next-day return

groupnmean(bps)net(bps)wintp (adj)OOS meanOOS psig
poc_near_VAL23104-13-2345.4%-2.619.04e-03-195.60e-03
poc_central45177+12+247.5%3.328.97e-04+112.29e-02
poc_near_VAH21772+13+347.6%2.561.04e-02+311.83e-04

H10 · Prior VA width band → next-day return & range

groupnmean(bps)net(bps)wintp (adj)OOS meanOOS psig
va_narrow45017-2-1246.5%-0.416.80e-01
va_wide45036+13+347.4%3.938.36e-05

H11 · Prior-day profile shape → next-day return & range

groupnmean(bps)net(bps)wintp (adj)OOS meanOOS psig
shape_P19973+14+447.5%2.589.89e-03
shape_b22372-13-2345.2%-2.431.53e-02
shape_D47708+11+147.5%3.426.35e-04

H15 · Open-location effect by ATR regime (low/high tercile)

groupnmean(bps)net(bps)wintp (adj)OOS meanOOS psig
above_VAH_atr_low5439+23+1350.1%4.321.58e-05
above_VAH_atr_high5739-7-1741.4%-0.535.94e-01
below_VAL_atr_low5837+2-848.2%0.466.42e-01
below_VAL_atr_high7438+57+4750.1%5.39<1e-6

H16 · Open-location effect by trend regime (daily EMA20)

groupnmean(bps)net(bps)wintp (adj)OOS meanOOS psig
above_VAH_trend_up8474+20+1047.4%2.232.60e-02
above_VAH_trend_down8390-5-1543.5%-0.675.05e-01
below_VAL_trend_up5342+17+749.3%1.641.01e-01
below_VAL_trend_down14669+20+1048.8%3.919.40e-05

H5–H6 · First-hour drive & day leadership

groupnopen-drive rate1h mean(bps)day-follows-1hday ret \1h up(bps)day ret \1h dn(bps)
drive_above_VAH1686443.4%-7
lead_above_VAH1686460.3%+138-92
drive_below_VAL2001146.1%-1
lead_below_VAL2001158.0%+103-80

H12–H13 · Fill-back into prior VA

groupnfill rate
fill_above_VAH1686479.5%
fill_below_VAL2001177.7%

H17 · Per-symbol stability (robustness)

locn_symbolsfrac_agreebinom ppooled mean(bps)median sym mean(bps)sym+sym−
above_VAH22946.7%3.55e-01+0-5107122
VA_above_POC23057.0%4.07e-02-5-899131
VA_below_POC23047.4%4.68e-01+8-3109121
below_VAL23059.6%4.47e-03+30+1213793

_Report auto-generated by src/report.py. Re-run src/analysis.py + src/report.py after a fetch to refresh._

S1 · Open vs prior NY/London/Tokyo session VA vs full-day VA

refbucketnmean(bps)wintp
full_dayVA_above_POC25597-446.3%-0.744.59e-01
full_dayVA_below_POC27581+447.0%0.784.37e-01
full_dayabove_VAH16864+845.5%1.361.73e-01
full_daybelow_VAL20011+1948.9%4.133.57e-05
full_daySPREAD(abv-blw)36875-12-1.621.06e-01
tokyoVA_above_POC10860+745.6%0.714.78e-01
tokyoVA_below_POC10824-1346.3%-1.876.09e-02
tokyoabove_VAH31175+845.3%1.797.31e-02
tokyobelow_VAL36999+949.0%2.501.23e-02
tokyoSPREAD(abv-blw)68174-1-0.158.81e-01
londonVA_above_POC15458-1744.9%-2.795.25e-03
londonVA_below_POC16030-946.6%-1.501.33e-01
londonabove_VAH27740+745.7%1.291.97e-01
londonbelow_VAL30825+2449.2%6.23<1e-6
londonSPREAD(abv-blw)58565-18-2.785.52e-03
nyVA_above_POC22454+847.3%1.421.57e-01
nyVA_below_POC23047+146.5%0.188.60e-01
nyabove_VAH21410+646.5%0.973.33e-01
nybelow_VAL23142+947.5%2.034.19e-02
nySPREAD(abv-blw)44552-4-0.486.30e-01

S2 · Prior-day session shape → next-day return

sessionshapenmean(bps)wintp
tokyoD46609+547.0%1.411.59e-01
tokyoP19965+1148.5%2.044.10e-02
tokyob23284+245.6%0.397.00e-01
londonD48929+446.8%1.212.24e-01
londonP18428+2248.2%3.919.10e-05
londonb22696-446.3%-0.734.67e-01
nyD47654+747.0%2.173.02e-02
nyP19853-545.8%-0.824.14e-01
nyb22546+1248.0%2.282.25e-02

S3 · Prior-day session return (momentum) → next-day return

sessionprior sessionnmean(bps)wintp
tokyoup43601+846.8%2.282.23e-02
tokyodown45929+347.1%0.744.62e-01
londonup42432+245.2%0.416.81e-01
londondown47307+1048.6%2.805.15e-03
nyup43394+745.8%2.004.57e-02
nydown46309+448.1%1.291.98e-01

S4 · Prior-day dominant session (by turnover share) → next-day

sessionnmean(bps)wintp
tokyo26634+1347.9%2.411.62e-02
london22777-1146.5%-2.361.83e-02
ny40447+1046.7%2.874.17e-03

S5 · Prior-day session VA width → next-day range

sessionVA bandnnext-day range %mean ret(bps)p
tokyonarrow449299.72%+1<1e-6
tokyowide4492910.18%+10<1e-6
londonnarrow450229.93%+14<1e-6
londonwide4503110.01%-3<1e-6
nynarrow4502310.16%-11<1e-6
nywide450309.78%+22<1e-6

CF · Factual vs counterfactual: what separates UP from DOWN days?

_Within each open-location scenario, feature means for UP days vs DOWN days (all features known at the open). |d| = Cohen's d._

scenariofeaturen_upn_dnmean UPmean DNdifftpd
above_VAHpoc_pos766691980.38110.3740+0.00712.706.84e-03+0.04
above_VAHva_width_ratio766691980.48430.4790+0.00522.982.87e-03+0.05
above_VAHupper_share766691980.43060.4199+0.01074.93<1e-6+0.08
above_VAHopen_dist_va766691980.39440.4219-0.0275-4.173.13e-05-0.06
above_VAHtokyo_poc_pos765991920.49370.4803+0.01334.321.58e-05+0.07
above_VAHtokyo_va_width_ratio765991920.47740.4783-0.0009-0.575.69e-01-0.01
above_VAHtokyo_upper_share765991920.48840.4797+0.00873.652.64e-04+0.06
above_VAHtokyo_turnover_share765991920.33110.3347-0.0037-1.905.80e-02-0.03
above_VAHtokyo_ret765991920.00180.0016+0.00020.396.99e-01+0.01
above_VAHlondon_poc_pos766691980.45900.4598-0.0008-0.257.99e-01-0.00
above_VAHlondon_va_width_ratio766691980.48960.4881+0.00150.923.58e-01+0.01
above_VAHlondon_upper_share766691980.47830.4723+0.00602.736.38e-03+0.04
above_VAHlondon_turnover_share766691980.38050.3753+0.00522.992.75e-03+0.05
above_VAHlondon_ret766691980.01450.0155-0.0010-1.797.37e-02-0.03
above_VAHny_poc_pos766691980.50380.5043-0.0005-0.168.75e-01-0.00
above_VAHny_va_width_ratio766691980.50140.5022-0.0008-0.486.32e-01-0.01
above_VAHny_upper_share766691980.49020.4909-0.0007-0.307.64e-01-0.00
above_VAHny_turnover_share766691980.42950.4223+0.00723.712.06e-04+0.06
above_VAHny_ret766691980.03020.0335-0.0032-3.406.85e-04-0.05
above_VAHprev_atr14_pct766691980.69750.7608-0.0633-7.21<1e-6-0.11
above_VAHgap_pct766691980.00000.0000+0.0000nan+nan
VA_above_POCpoc_pos11859137380.44100.4318+0.00923.622.98e-04+0.05
VA_above_POCva_width_ratio11859137380.48440.4853-0.0010-0.694.87e-01-0.01
VA_above_POCupper_share11859137380.49230.4850+0.00733.801.46e-04+0.05
VA_above_POCopen_dist_va11859137380.24990.2545-0.0046-1.757.95e-02-0.02
VA_above_POCtokyo_poc_pos11839137010.49520.4838+0.01144.301.68e-05+0.05
VA_above_POCtokyo_va_width_ratio11839137010.50070.5004+0.00030.238.21e-01+0.00
VA_above_POCtokyo_upper_share11839137010.49680.4860+0.01095.93<1e-6+0.07
VA_above_POCtokyo_turnover_share11839137010.34310.3420+0.00110.665.11e-01+0.01
VA_above_POCtokyo_ret11839137010.0011-0.0008+0.00193.241.21e-03+0.04
VA_above_POClondon_poc_pos11859137380.47140.4659+0.00552.113.45e-02+0.03
VA_above_POClondon_va_width_ratio11859137380.49730.5022-0.0050-3.692.21e-04-0.05
VA_above_POClondon_upper_share11859137380.47980.4786+0.00110.655.19e-01+0.01
VA_above_POClondon_turnover_share11859137380.40500.4019+0.00312.014.44e-02+0.03
VA_above_POClondon_ret11859137380.00430.0048-0.0005-0.913.65e-01-0.01
VA_above_POCny_poc_pos11859137380.49060.4946-0.0041-1.659.93e-02-0.02
VA_above_POCny_va_width_ratio11859137380.47700.4764+0.00060.506.18e-01+0.01
VA_above_POCny_upper_share11859137380.48840.4948-0.0063-3.377.43e-04-0.04
VA_above_POCny_turnover_share11859137380.43210.4363-0.0042-2.341.95e-02-0.03
VA_above_POCny_ret11859137380.00810.0091-0.0010-1.797.41e-02-0.02
VA_above_POCprev_atr14_pct11859137380.70490.7499-0.0449-5.65<1e-6-0.07
VA_above_POCgap_pct11859137380.00000.0000+0.0000nan+nan
VA_below_POCpoc_pos12973146080.52930.5274+0.00190.764.46e-01+0.01
VA_below_POCva_width_ratio12973146080.48780.4875+0.00030.208.39e-01+0.00
VA_below_POCupper_share12973146080.49640.4949+0.00150.804.24e-01+0.01
VA_below_POCopen_dist_va1297314608-0.2712-0.2543-0.0168-6.57<1e-6-0.08
VA_below_POCtokyo_poc_pos12944145560.49650.4879+0.00863.396.98e-04+0.04
VA_below_POCtokyo_va_width_ratio12944145560.49780.4991-0.0013-1.013.14e-01-0.01
VA_below_POCtokyo_upper_share12944145560.49660.4910+0.00563.131.73e-03+0.04
VA_below_POCtokyo_turnover_share12944145560.34520.3412+0.00402.421.56e-02+0.03
VA_below_POCtokyo_ret1294414556-0.0005-0.0010+0.00061.003.17e-01+0.01
VA_below_POClondon_poc_pos12973146080.50830.4997+0.00873.445.79e-04+0.04
VA_below_POClondon_va_width_ratio12973146080.50090.5033-0.0024-1.856.37e-02-0.02
VA_below_POClondon_upper_share12973146080.49730.4932+0.00412.441.47e-02+0.03
VA_below_POClondon_turnover_share12973146080.40310.4091-0.0060-4.084.44e-05-0.05
VA_below_POClondon_ret1297314608-0.0044-0.0032-0.0012-2.272.30e-02-0.03
VA_below_POCny_poc_pos12973146080.49210.4994-0.0073-3.062.22e-03-0.04
VA_below_POCny_va_width_ratio12973146080.47930.4754+0.00383.241.20e-03+0.04
VA_below_POCny_upper_share12973146080.48690.4962-0.0093-5.18<1e-6-0.06
VA_below_POCny_turnover_share12973146080.43010.4356-0.0055-3.231.23e-03-0.04
VA_below_POCny_ret1297314608-0.0080-0.0045-0.0035-6.74<1e-6-0.08
VA_below_POCprev_atr14_pct12973146080.73970.7499-0.0102-1.122.61e-01-0.01
VA_below_POCgap_pct12973146080.00000.0000+0.0000nan+nan
below_VALpoc_pos9788102230.60420.6076-0.0034-1.451.48e-01-0.02
below_VALva_width_ratio9788102230.48370.4793+0.00442.775.60e-03+0.04
below_VALupper_share9788102230.55930.5649-0.0056-2.864.30e-03-0.04
below_VALopen_dist_va978810223-202948.7255-0.4010-202948.3245-1.003.17e-01-0.01
below_VALtokyo_poc_pos9770101970.49000.4900-0.0001-0.039.73e-01-0.00
below_VALtokyo_va_width_ratio9770101970.47280.4695+0.00332.262.37e-02+0.03
below_VALtokyo_upper_share9770101970.49410.4929+0.00110.506.14e-01+0.01
below_VALtokyo_turnover_share9770101970.35430.3476+0.00673.593.27e-04+0.05
below_VALtokyo_ret977010197-0.00020.0011-0.0013-2.501.23e-02-0.04
below_VALlondon_poc_pos9788102230.51740.5151+0.00230.814.18e-01+0.01
below_VALlondon_va_width_ratio9788102230.49300.4917+0.00130.903.69e-01+0.01
below_VALlondon_upper_share9788102230.50080.5002+0.00060.287.79e-01+0.00
below_VALlondon_turnover_share9788102230.37840.3860-0.0076-4.643.48e-06-0.07
below_VALlondon_ret978810223-0.0154-0.0139-0.0015-3.221.28e-03-0.05
below_VALny_poc_pos9788102230.48630.4809+0.00541.846.55e-02+0.03
below_VALny_va_width_ratio9788102230.50970.5007+0.00905.99<1e-6+0.08
below_VALny_upper_share9788102230.48660.4911-0.0045-2.292.21e-02-0.03
below_VALny_turnover_share9788102230.40920.4121-0.0029-1.531.25e-01-0.02
below_VALny_ret978810223-0.0285-0.0263-0.0022-4.371.26e-05-0.06
below_VALprev_atr14_pct9788102230.77590.7595+0.01641.541.23e-01+0.02
below_VALgap_pct9788102230.00000.0000+0.0000nan+nan

CF-TREES · Joint conditions separating UP from DOWN



========================================================================
Scenario: above_VAH | n=16851 | base rate=0.545 | train acc=0.548 | OOS acc=0.552 | leaves=8
top features: {'prev_atr14_pct': np.float64(0.3617645818439843), 'tokyo_ret': np.float64(0.20610582300596106), 'tokyo_poc_pos': np.float64(0.19360515407199874), 'london_poc_pos': np.float64(0.12398143427810583), 'ny_ret': np.float64(0.11454300679995005), 'poc_pos': np.float64(0.0), 'va_width_ratio': np.float64(0.0), 'upper_share': np.float64(0.0)}
|--- prev_atr14_pct <= 0.63
|   |--- tokyo_ret <= -0.03
|   |   |--- tokyo_poc_pos <= 0.26
|   |   |   |--- class: 0
|   |   |--- tokyo_poc_pos >  0.26
|   |   |   |--- class: 0
|   |--- tokyo_ret >  -0.03
|   |   |--- london_poc_pos <= 0.83
|   |   |   |--- class: 0
|   |   |--- london_poc_pos >  0.83
|   |   |   |--- class: 1
|--- prev_atr14_pct >  0.63
|   |--- tokyo_poc_pos <= 0.28
|   |   |--- tokyo_ret <= -0.04
|   |   |   |--- class: 0
|   |   |--- tokyo_ret >  -0.04
|   |   |   |--- class: 0
|   |--- tokyo_poc_pos >  0.28
|   |   |--- ny_ret <= 0.12
|   |   |   |--- class: 0
|   |   |--- ny_ret >  0.12
|   |   |   |--- class: 0


========================================================================
Scenario: VA_above_POC | n=25540 | base rate=0.536 | train acc=0.542 | OOS acc=0.527 | leaves=8
top features: {'prev_atr14_pct': np.float64(0.2895973153322696), 'tokyo_turnover_share': np.float64(0.21846016572424576), 'tokyo_upper_share': np.float64(0.1682695309619286), 'tokyo_ret': np.float64(0.12602870354059006), 'tokyo_va_width_ratio': np.float64(0.10445084984162627), 'london_ret': np.float64(0.09319343459933974), 'poc_pos': np.float64(0.0), 'va_width_ratio': np.float64(0.0)}
|--- prev_atr14_pct <= 0.79
|   |--- tokyo_upper_share <= 0.43
|   |   |--- tokyo_ret <= -0.06
|   |   |   |--- class: 1
|   |   |--- tokyo_ret >  -0.06
|   |   |   |--- class: 0
|   |--- tokyo_upper_share >  0.43
|   |   |--- tokyo_turnover_share <= 0.69
|   |   |   |--- class: 1
|   |   |--- tokyo_turnover_share >  0.69
|   |   |   |--- class: 0
|--- prev_atr14_pct >  0.79
|   |--- tokyo_va_width_ratio <= 0.42
|   |   |--- tokyo_turnover_share <= 0.23
|   |   |   |--- class: 0
|   |   |--- tokyo_turnover_share >  0.23
|   |   |   |--- class: 0
|   |--- tokyo_va_width_ratio >  0.42
|   |   |--- london_ret <= -0.00
|   |   |   |--- class: 0
|   |   |--- london_ret >  -0.00
|   |   |   |--- class: 0


========================================================================
Scenario: VA_below_POC | n=27500 | base rate=0.529 | train acc=0.536 | OOS acc=0.540 | leaves=8
top features: {'london_ret': np.float64(0.4343162692928736), 'ny_ret': np.float64(0.16263721123582817), 'ny_turnover_share': np.float64(0.11169816381567564), 'tokyo_ret': np.float64(0.1090231717559656), 'ny_poc_pos': np.float64(0.0954869289535156), 'london_upper_share': np.float64(0.08683825494614136), 'poc_pos': np.float64(0.0), 'va_width_ratio': np.float64(0.0)}
|--- london_ret <= 0.00
|   |--- london_ret <= -0.03
|   |   |--- ny_poc_pos <= 0.25
|   |   |   |--- class: 1
|   |   |--- ny_poc_pos >  0.25
|   |   |   |--- class: 0
|   |--- london_ret >  -0.03
|   |   |--- ny_ret <= -0.03
|   |   |   |--- class: 1
|   |   |--- ny_ret >  -0.03
|   |   |   |--- class: 0
|--- london_ret >  0.00
|   |--- tokyo_ret <= -0.02
|   |   |--- ny_turnover_share <= 0.52
|   |   |   |--- class: 0
|   |   |--- ny_turnover_share >  0.52
|   |   |   |--- class: 0
|   |--- tokyo_ret >  -0.02
|   |   |--- london_upper_share <= 0.40
|   |   |   |--- class: 0
|   |   |--- london_upper_share >  0.40
|   |   |   |--- class: 0


========================================================================
Scenario: below_VAL | n=19967 | base rate=0.511 | train acc=0.554 | OOS acc=0.536 | leaves=8
top features: {'tokyo_ret': np.float64(0.1908206397089765), 'london_ret': np.float64(0.1717652751368205), 'london_turnover_share': np.float64(0.16075405149767782), 'tokyo_turnover_share': np.float64(0.15763153578453465), 'ny_turnover_share': np.float64(0.13443368759667546), 'open_dist_va': np.float64(0.09884091288690967), 'ny_va_width_ratio': np.float64(0.08575389738840541), 'poc_pos': np.float64(0.0)}
|--- tokyo_ret <= -0.01
|   |--- london_ret <= -0.00
|   |   |--- london_turnover_share <= 0.52
|   |   |   |--- class: 1
|   |   |--- london_turnover_share >  0.52
|   |   |   |--- class: 0
|   |--- london_ret >  -0.00
|   |   |--- ny_va_width_ratio <= 0.65
|   |   |   |--- class: 0
|   |   |--- ny_va_width_ratio >  0.65
|   |   |   |--- class: 1
|--- tokyo_ret >  -0.01
|   |--- tokyo_turnover_share <= 0.38
|   |   |--- open_dist_va <= -1.16
|   |   |   |--- class: 0
|   |   |--- open_dist_va >  -1.16
|   |   |   |--- class: 0
|   |--- tokyo_turnover_share >  0.38
|   |   |--- ny_turnover_share <= 0.23
|   |   |   |--- class: 0
|   |   |--- ny_turnover_share >  0.23
|   |   |   |--- class: 1