Istanbul, TR
01Context

What it is, why it matters, who it’s for.

What

A no-code platform where traders compose strategies on a visual canvas and replay years of market data with bit-exact reproducibility.

Why

Backtests are only useful if they replay identically. Drift breaks trust and quietly invalidates research.

For

Quant-curious traders without a Python background, and analysts who need to share runs that reviewers can reproduce.

02Problem

Samestrategy,samedata,samehash.Everytime.

Constraints
  • 01Single 8-core node — no horizontal scaling for v1
  • 02Sub-second feedback while editing 100k-node graphs
  • 03Versioned, forkable strategies with instant rollback
  • 04Non-engineering users on the editing surface
Difficulty

Determinism in trading sims is a quiet, expensive problem. Floats, RNGs, system clocks, even map iteration order will drift a result enough to invalidate a year of research.

03Approach

Decisions, in order of stakes.

  1. 01

    Fix every clock, every float

    Replaced `time.Now()` with a monotonic event clock, swapped float64 for fixed-point Q32.32, and seeded a deterministic RNG keyed by run hash.

  2. 02

    Strategies as immutable hashes

    Every strategy compiles to a canonical JSON body and is stored content-addressed. Forks reference parents; the engine only ever runs by hash.

  3. 03

    Engine in Go, UI on the side

    Replaced the Python prototype with a zero-allocation Go engine. The SvelteKit canvas talks to it through a thin RPC layer and never blocks on a sim.

04Execution
01

The sim engine is a single tight loop. Indicators update in place against pre-sized ring buffers, the strategy emits a typed signal, and the orderbook settles fills in fixed-point arithmetic.

02

Strategies are stored as hashes. A run never references a mutable row; reviewers can re-execute by hash months later and get the same equity curve down to the satoshi.

Visual canvas SvelteKit DSL hash Postgres Engine Go · fixed-point Report SSE re-run · same hash
Pipeline · canvas → DSL → engine → report
05Artefacts
Visual rule composer with live indicator preview.
Visual rule composer with live indicator preview.
Equity, drawdown and trades in one report.
Equity, drawdown and trades in one report.
Branch and fork strategies like source control.
Branch and fork strategies like source control.
07Outcomes
Result

12×faster,bit-exact,andquietlyforkable.

Impact

Closed beta with 80 traders. Every reported run is reproducible by hash. P95 API stayed under 100ms through the launch month while strategies grew to 2.3k versions.

Backtest speed12×vs. Python baseline5-year tick dataset, single core
Determinism100%bit-exactIdentical SHA256 across 1k re-runs
P95 API84ms−71%Strategy save / fetch under load
Active strategies2.3k+Versioned across closed beta
08Takeaways
Learned
  • ·

    Determinism is a feature, not a tax. Lock it in early or rebuild later.

  • ·

    Hashing strategies turned versioning, forking, and audit into the same primitive.

  • ·

    Fixed-point is unfashionable and saves more arguments than it loses.

Would change
  • Ship a visual diff between strategy versions earlier — users want to see what changed before re-running.

  • Move the analyzer registry behind a signed plugin API in v1, not v2.

Continue
StralgoLoading
/ 10000