Write a strategy as a JavaScript function; it runs every interval against the real rebuilt order book across the symbols you select, marked to mid, net of the quoted half-spread on every position change. The strategy itself always runs live in your browser — nothing is sent anywhere.
Features come from one of two places. If report/features/ exists, the
C++ engine already swept the original multi-gigabyte ITCH tape with
--extract and dumped every symbol's series, so any ticker on the tape is
one lazy fetch away, sampled exactly every interval messages. Otherwise the
engine runs in WebAssembly and replays the shipped slice in the browser: same engine
and same features, but limited to the slice's symbols and sampled once per 64 KB
block, which makes its effective interval coarser than requested. Either way features
are cached after first use, so re-running a tweaked strategy is instant.
[-1, 1] from features f:
f.mid f.spread f.ofi f.dofi
f.imb f.mom f.ret f.i, and
f.t = seconds since midnight ET (34200 = 09:30,
57600 = 16:00). state persists on f.s.