Systematic trading, built in Rust
Clean data in. Tested strategies out. Every day, without babysitting.
Quant Blazer is a set of tools for running rule-based strategies on futures and crypto: two downloaders that produce data you can trust, and a scheduler that runs your RealTest strategies every day: backtests for the ones you watch, order lists for the ones you trade.
From data on disk to today's orders
The downloaders keep market data current on disk. Real Test Pilot then runs RealTest on a schedule and collects what it produces. It does not download data and it does not send orders to a broker.
Project 01 · Futures data
IQFeed Downloader
A single Rust binary that pulls IQFeed's back-adjusted continuous futures and writes one CSV per market per timeframe. Hourly bars come straight from IQFeed; daily bars are built from them by trade day, so they line up with the CME Globex session.
- Full refresh by default. Back-adjusted history changes at every roll, so appending to an old file would mix adjustment bases.
- Shrink guard. A new download replaces a file only if it keeps at least 90% of the existing rows. A truncated response never overwrites good history.
- Atomic, repeatable writes. Files are written to a temp file, verified, then renamed. The same data gives a byte-identical file.
- Built for unattended runs. Waits for IQFeed to log in, retries, and writes a per-symbol report with clear exit codes.
# check a symbol, then download everything
iqfeed-dl probe '@MES#C' --timeframe 1h
iqfeed-dl download
# data/continuous/MES_back_adjusted_1h.csv
timestamp,open,high,low,close,volume
2026-09-18 16:00:00,7712.25,7729.25,7711.75,7725.5,33543
Project 02 · Crypto data
Kraken Downloader
Builds a local dataset of daily OHLCV candles for every USD-quoted crypto pair on Kraken. It uses public endpoints only, so no API keys are needed.
- Full history from two sources. Kraken's REST endpoint returns only the latest 720 candles, so older history is imported from Kraken's bulk files and the API keeps it current.
- Delisted pairs included. Pairs that no longer trade are kept, so backtests are not skewed by survivorship bias.
- Exact values. Prices and volume are stored as the decimal strings Kraken sends, with no float rounding. The still-forming day is never written.
- Verify command. Checks for gaps, bad timestamps and invalid bars, and compares stored candles against the live API.
# one-time history import, then daily updates
kraken-downloader import --path Kraken_OHLCVT.zip
kraken-downloader update
kraken-downloader verify
# data/XBTUSD.csv
timestamp,symbol,open,high,low,close,volume
2024-10-01T00:00:00Z,XBTUSD,63325.0,64100.0,60203.4,60819.1,2632.62350634
Project 03 · Scheduling
Real Test Pilot
A desktop app and always-on service that runs RealTest scripts on a schedule and keeps the results. Monitored strategies are backtested every day. Live strategies get a RealTest orders run, and the order list is saved to a folder for you to act on.
- 1ImportUpload a RealTest script. It is stored as version 1 and backtested at once.
- 2RefreshBefore a run, RealTest re-imports the data your downloader left on disk.
- 3RunBacktests once a day; orders runs at the time set for each market.
- 4ReportStatistics, charts and an in-sample versus out-of-sample comparison.
- 5DeliverOrder files land in a shared folder, named by strategy and date.
How it works
- Narrow on purpose. Pilot does not download market data and does not send orders to a broker. It hands over the order file; you place the trades.
- Versioned strategies. Scripts live in the database. Each change becomes a new version with a line-by-line diff, and a run never edits a script.
- Schedules per market. Markets close their daily candle at different times, so orders runs are grouped: crypto at 00:30 UTC daily and US markets at 17:15 New York on weekdays, by default.
- Stale-data alert. If the data behind an orders run is more than two days old, the run is flagged and a critical alert is raised.
- Service first. Schedules live in a headless service, not in the window. Closing the app hides it to the tray, and a run missed while the service was off is made up at the next start.
- One UI, two ways in. The same React interface runs in the Tauri desktop app and in a browser, with token-protected remote access over Tailscale.
Status
- BuiltFoundation: service, database, tray app, web UI
- BuiltStrategy store: import, versions with diff, export, Monitored / Live / Archived
- BuiltBacktests: stored results, charts, run comparison, out-of-sample report
- BuiltSchedules: daily backtests and per-market order groups, with catch-up
- BuiltLive orders: orders runs, order files delivered to a shared folder
- PossibleNotifications when order files are ready or a run fails
- PossibleTracking out-of-sample results over time, with alerts on deterioration
- PossiblePortfolio view: combined equity and correlation across strategies