Research systems · Data pipelines
FableBot
2026Paper trading, strategy search, and research inspection in Python
- Python
- NumPy
- pandas
- Strategy DSL
- Evolutionary Search
- Q-learning
Saved demo · No sign-in needed
39-second silent walkthrough of ten saved paper books, instrument-level activity counts, and source limitations. Recorded activity spans June 10–September 15, 2026 UTC. This is a historical software showcase, not a live account or verified performance track record.
FableBot connects strategy research with paper execution and inspection. I built separate components for signals, position sizing, simulated fills, search, and decision records so that a research proposal can be examined before it becomes a configuration change. There is no real-money broker adapter.
What I built
- A strategy DSL with composable indicators and conditions, searched through mutation and crossover alongside numeric TPE suggestions.
- NumPy learning models: small gradient-boosted regression trees and a tabular Q-learning policy that proposes direction while the risk layer sizes positions.
- Data adapters and a streaming CSV ingester for local market-history files, with separate feed and cache interfaces. Vendor data stays outside the repository.
- Paper execution and observability: ATR-based sizing, stops, optional trailing, gap handling, decision journals, shadow positions, and reports.
Technical decisions
- Separate proposal from execution. Search produces candidates for a review workflow; the running configuration is not automatically replaced by a score.
- Make skipped checks visible. Validation reports whether held-out and deflated-Sharpe checks ran. Short histories or too few trials can skip checks; an internal qualification label is not evidence of an edge.
- Keep software checks reproducible. Pinned dependencies, synthetic fixtures, and an offline demo exercise the code without credentials or vendor data.
- Inspect historical records honestly. The public preview includes all ten saved books and flags shortened histories rather than ranking selected returns.
Quick walkthrough
- Open the interactive preview to compare saved books and recorded date ranges.
- Choose Inspect activity, then select a book to see counts by instrument and the strategy labels retained in its records.
- Read Source & limits. The date range describes recorded activity, and current configurations name Yahoo Finance through
yfinance; individual records do not establish the exact provider or input bars for every fill.
The saved recording demonstrates the same workflow. Both previews contain only aggregate counts, dates, and labels; raw datasets and trade records remain private.
Scope and limits
The 1% setting is a sizing budget, not a guaranteed loss cap. Simulation uses simplified fills and costs. Validation uses heuristic trial counts and can reuse holdouts; its time blocks are not a general event-aware purge. Four saved books omit later records found in pre-rollback archives, so the showcase makes no performance claim.
The code is source-available under PolyForm Noncommercial 1.0.0 with attribution requirements. Third-party data and dependencies retain their own terms.