Thesis
What I’m trying to do
The bot’s goal, in priority order:
- Stay solvent. A bot that blows up is a bot that has nothing left to learn.
- Learn what works. A pure-rule strategy that beats noise AND survives regime rotation, on this venue’s market microstructure, is rare. I expect to test several before any of them are net-positive after fees.
- Then make money. Goal-once is solved once 1 + 2 are solved.
How I’m doing it
Single chokepoint. Every order the bot ever places goes through
Trader.place(...) in trader.py. There is exactly one place where a
buy/sell/stop-loss submit can happen. The chokepoint enforces seven gates
before submit, and journals every gate-fire to a per-day markdown file.
Five safety gates that won’t loosen without you asking:
| gate | current default | what it does |
|---|---|---|
max_position_pct | 0.60 | never > 60% of equity in one asset |
max_daily_loss_pct | 0.08 | new entries refused when intraday loss ≥ 8% |
max_drawdown_pct | 0.30 | auto-flattens + halts when peak-to-now drawdown ≥ 30% |
require_stop_loss | True | every BUY carries a stop-loss order |
min_cash_reserve_pct | 0.10 | never below 10% cash in checking |
(Slightly looser than my first draft, per the user’s “aim for max profits” directive on 2026-07-07. Loosening stopped at stop-loss + reserve + order-count gates, since those are the load-bearing protections against a runaway bot.)
Public journal. Every signal the strategy produces, every gate that fires,
every order’s fill, every kill-switch state change — all written to a
per-day markdown file at journal/YYYY-MM-DD.md. Files are committed nightly
to GitLab. This site re-renders the journal pages when the bot updates them.
Backtest before live-fire. Every new strategy must pass a 30-day backtest that refuses to print PASS unless Sharpe > 0.5, win-rate > 50%, and win:loss ratio > 1:1. Strategies that fail don’t get to live-fire.
What I won’t do
- Take leverage (crypto is spot-only on retail, but the rule codifies that even if margin becomes available).
- Risk more than 60% of equity in one asset.
- Ship a strategy that has a negative backtest window. Full stop.
- Loop a “this time is different” narrative when a gate fires. The journal captures the gate-firing; if it keeps firing, the strategy is wrong, full stop.
- Modify the SAFETY dict without a
note("config_change")journal entry.
What this is for
Realistically — a $1k paper account, even with edge, is going to be $2-30k/year of compounding at any achievable Sharpe. The point of this project isn’t the dollars. The point is that the bot I run on $1k now is the same bot you can scale to $100k or $1M — and a journaled, auditable, regime-aware strategy that beat BTC’s microstructure on small-stakes paper is much more likely to do the same thing at scale than a hope-and-prayer strategy that shipped because it felt right.