Skip to content

v3.0.1

Latest

Choose a tag to compare

@terrylica terrylica released this 19 Oct 06:42

3.0.1 (2026-10-19)

Two ohlc_1m columns did not measure what their documentation says. tick_count_standard is documented as the number of Standard ticks in the bar, but it always equalled the Raw_Spread count: it was computed as countIf(... IS NOT NULL) over an ASOF join that never produces NULLs. standard_spread_avg is documented as the average Standard spread in the bar, but it averaged whichever Standard quote preceded each Raw_Spread tick, and the choice among tied quotes could change between rebuilds. Each variant is now aggregated per minute on its own and the two are joined on the minute, so both columns match their definitions, rebuilds are deterministic, and the build no longer runs a per-tick join. On the E2E months the counts now differ on 64,889 of 78,658 bars, where before they were identical on every bar.

Upgrading

  • Bars already stored keep the old values until they are rebuilt. Rebuild an instrument's bars with update_data(pair, start_date=..., force_redownload=True), which re-downloads and regenerates from start_date, or call ExnessDataProcessor().ch_ohlc_generator.regenerate_ohlc(pair) to rebuild every bar from the stored ticks.

Fixed

  • tick_count_standard counts the Standard ticks in the bar's minute (0 when there are none) (#25).
  • standard_spread_avg is the mean Standard ask - bid in the bar's minute (NULL when there are none), deterministic across rebuilds (#25).
  • repo:e2e checks that sum(tick_count_raw_spread) equals the stored Raw_Spread ticks and sum(tick_count_standard) equals the Standard ticks in bar minutes, that the two counts differ, and that a sampled standard_spread_avg equals a direct per-minute average (#25).
  • Stale docstrings describing the v1 30-column schema, normalized metrics and the ASOF join are corrected (#25).

Changed

  • Development runs on Python 3.15.0 and moon 2.6.2; the supported range is unchanged (requires-python >=3.11) (#27, #28).

3.0.1 (2026-10-19)

Bug Fixes

  • ohlc: compute tick_count_standard and standard_spread_avg per minute from standard_ticks (a26ec2c), closes #25