Vary synthetic feed tick frequency stochastically

Table of Contents

This page is a capture in the discarded bucket of the product backlog.

Duplicate, merged into Story: Stochastic tick arrival times for synthetic feeds: this capture and the older capture independently described the same idea. This one's concrete grounding — the exact fx_spot_feed.cpp:64-106 file/line reference, the SQL populate script, and the link to the task that surfaced it — was merged into the promoted story's Goal/References; nothing here was lost. Kept only for its own history.

What

fx_spot_feed::start (projects/ores.synthetic/service/src/fx_spot_feed.cpp:64-106) ticks at a fixed, deterministic period derived from ticks_per_hour (hours(1) / ticks_per_hour), sleeping the full period before every publish including the first. Real market data arrives at irregular, bursty intervals — quiet stretches punctuated by clusters of updates around news/liquidity events — not a metronome. Consider making tick timing itself stochastic for the Realistic archetype (e.g. a Poisson process with the current ticks_per_hour as its rate parameter, or a two-state quiet/burst regime), independent of the existing GMM price mixture, which already varies tick-to-tick magnitude but not timing.

Why

Raised while tuning synthetic_fx_spot_configs_realistic_populate.sql's tick cadence (see Task: Seed Basic and Realistic dataset bundles) — settled on a fixed 2-second cadence for now as good enough, but a genuinely "realistic" feed would vary its arrival timing, not just its price distribution. Deferred rather than done now to keep that task's scope contained.

References

  • projects/ores.synthetic/service/src/fx_spot_feed.cpp:64-106
  • projects/ores.sql/populate/synthetic/synthetic_fx_spot_configs_realistic_populate.sql

See also

Emacs 29.3 (Org mode 9.6.15)