Skip to main content

Command Palette

Search for a command to run...

QuantForge v0.1.0

Binance Spot OHLCV ingestion, SQLite storage, explicit validation, and deterministic backtests

Updated
2 min read

GitHub: formaldehid/quantforge
crates.io: quantforge

QuantForge is research tooling, not investment advice.

Today I'm releasing QuantForge v0.1.0, an open-source Rust project for market data ingestion, strict normalization, and reproducible backtesting.

My goal was simple: build something that feels closer to a TradingView/PineScript-style workflow, but with the guarantees and ergonomics I want as an engineer — source control, explicit interfaces, deterministic rules, and a real programming language.

This first release is intentionally small and opinionated.

What ships in v0.1.0

  • Binance Spot OHLCV download over public REST endpoints
  • SQLite candle storage with idempotent upserts
  • validation for gaps, duplicates, ordering, and OHLC sanity
  • deterministic event-driven backtesting
  • a built-in SMA crossover example strategy
  • a CLI with three core commands: download, validate, and backtest

There is no UI.

The CLI is the product.

Why I built it

I wanted a foundation for open-source quant research in Rust that prioritizes correctness before dashboards.

A lot of trading tools start with charts and a convenient surface area, but leave critical details vague:

  • how data is normalized
  • how missing or malformed candles are handled
  • when a strategy is allowed to act
  • when an order is assumed to fill
  • what arithmetic is used for portfolio calculations

For this project, I wanted the reverse:

  • normalized data first
  • explicit validation
  • reproducible runs
  • boring, inspectable rules for fills and accounting
  • code-first strategies

That’s also why the first public release is a single crate. Versioning, publishing, installation, and contributor onboarding stay simple, while the internal boundaries are still clear:

  • model
  • exchange
  • storage
  • sdk
  • backtest

Determinism is a feature

QuantForge v0.1.0 follows a strict contract:

  • timestamps are stored as UTC epoch milliseconds
  • prices and volumes use decimal arithmetic, not floating-point math
  • strategies observe a completed bar and submit intent
  • the engine executes that intent at the next bar open
  • data validation is explicit, not best-effort

That probably sounds conservative, and it is.

But for backtesting, conservative and explainable beats clever and ambiguous every time.

Quickstart

Install from crates.io:

cargo install quantforge --locked