Status: Beta landing page liveCo-built with partnersPrivate client repo

AlgoDraft

AI trading strategy platform

AlgoDraft turns a trader's plain-English strategy into a structured, reviewable spec, asks about every missing or ambiguous rule, then generates a demo-only MetaTrader 5 Expert Advisor from tested templates. AI interprets; deterministic validation decides what is allowed. Includes a typed spec validator with SHA-256 approval, a Python reference backtester with reproducible manifests, and user accounts with a workspace.

AlgoDraft workspace approving the strategy Buy EURUSD, EMA 20/50: the plain-English rules with each value highlighted, and a panel showing where each rule came from.
Built with
PythonFastAPITypeScriptReactViteMQL5Gemini APIPostgreSQL (Neon)DockerpytestRender
Type
Client & collaborative work
Source
Private client repository

How it decides

Strategy text → approved spec → demo EA

InterpretationDeterministic decisionstextdraftgapsvalidTraderplain-English rulesInterpreterGemini · structuredEvidence guarddrops unbacked valuesValidatortyped StrategySpecQuestionstemplated, per gapApprovalSHA-256 of specMQL5 EAtemplates · demo-onlyBacktesterreproducible manifestInterpretationDeterministic decisionstextdraftgapsvalidTraderInterpreterEvidence guardValidatorQuestionsApprovalMQL5 EABacktester
  • person
  • guesses / untrusted
  • decides
  • process
  • storage
  • third party
  • trust boundary

Boundary Where guessing stops and something deterministic decides.

  • AI interprets; deterministic validation decides what is allowed. Missing rules are never silently invented. repo docs
  • Live interpreter on 30 curated cases: 0 invented values, 100% recall. repo docs
  • Clarifying questions come from fixed templates, not from the model. repo docs
  • Approval is bound to a SHA-256 of the canonical spec. repo docs
The drawing, in words

AlgoDraft: Strategy text → approved spec → demo EA. Left of the redline is “Interpretation”; right of it is “Deterministic decisions”.

  • Trader — plain-English rules (Interpretation)
  • Interpreter — Gemini · structured (Interpretation)
  • Evidence guard — drops unbacked values (Deterministic decisions)
  • Validator — typed StrategySpec (Deterministic decisions)
  • Questions — templated, per gap (Deterministic decisions)
  • Approval — SHA-256 of spec (Deterministic decisions)
  • MQL5 EA — templates · demo-only (Deterministic decisions)
  • Backtester — reproducible manifest (Deterministic decisions)

Connections

  • Trader → Interpreter (text)
  • Interpreter → Evidence guard (draft)
  • Evidence guard → Validator
  • Validator → Questions (gaps)
  • Questions → Trader
  • Validator → Approval (valid)
  • Approval → MQL5 EA
  • MQL5 EA → Backtester

The problem

  • Traders describe strategies in loose English. A model asked to turn that into code will happily fill gaps with values nobody chose. repo docs

What was built

  • A typed StrategySpec, a deterministic validator and SHA-256 approval of the canonical spec. repo docs
  • An interpreter that asks one templated question per missing or ambiguous rule. repo docs
  • An MQL5 Expert Advisor generator built from tested templates, and a Python reference backtester with reproducible manifests. repo docs
  • Accounts, owner-isolated strategies and a workspace UI. repo docs

My part

  • Co-built with partners. Individual contributions are not itemised here. stated

Limits and open work

  • Demo-only: no real-money trading and no broker connection. repo docs
  • The generated EA still needs a MetaEditor compile and a demo-account run (pending MT5 access in the project docs). repo docs

Decisions worth knowing

  • The model never has the last word

    The interpreter only drafts. An evidence guard drops values the text doesn't support, and a deterministic validator decides what is allowed.

    repo docs

  • Approval is pinned to a hash

    Approval is tied to a SHA-256 of the canonical spec, so a changed spec is a different, unapproved spec.

    repo docs

  • Measured, not assumed

    The live Gemini interpreter was checked against 30 curated cases: 0 invented values, 100% recall.

    repo docs

A closer look

  1. text“Buy EURUSD when EMA 20 crosses above EMA 50 on M15. Risk 1 percent per trade.”
  2. draftentry, timeframe, risk — extracted; stop-loss — missing
  3. questionWhat stop-loss should each trade use?
  4. speccanonical JSON, every value with its provenance
  5. approvalsha256(canonical spec) — any edit makes a new, unapproved hash
Figure — from a sentence to an approved specrepo docs The sentence is the README's smoke-test strategy; the draft and question are an illustration of the documented pipeline, not recorded output.