Three trading systems: crypto, US stocks, and sports analytics. They all share one philosophy. Risk controls come first, everything proves itself on paper before it touches real money, and I own the whole stack.
Retail trading tools force a choice: opaque cloud platforms you don't control, or fragile scripts with no safety rails. I wanted systems that could trade on their own but could never blow past my risk limits. And I wanted to be able to audit every line myself.
Design principle: every engine in the suite can be halted instantly with a kill switch, refuses trades that violate position limits or daily loss caps, and runs entirely on local hardware. No cloud dependencies, no web-facing services.
An exchange-agnostic crypto trading bot built on ccxt, supporting Binance, Coinbase, Kraken, and other major exchanges through a unified gateway. It runs trend following, mean reversion, and ML signal strategies side by side against real-time and historical market data.
Position limits, daily loss caps, trade-frequency throttles, and an instant kill switch sit between every strategy and the order executor.
A ccxt wrapper handling market data, order execution, balance checks, and rate limiting. I can swap exchanges without touching strategy code.
API keys encrypted at rest via keyring/.env, never logged, with a documented security ruleset covering supply-chain auditing.
Private portfolio dashboard tracking holdings, P&L, and strategy performance across exchanges.
An equities trading bot built on the official Alpaca SDK (alpaca-py), supporting both paper and live accounts. It knows market hours, only trades during the regular session, and retries with backoff when the API hiccups. The strategy layer retrains its ML models on a schedule and writes itself a report every time it does.
A Flask-based analytics engine for daily fantasy sports projections. The backend splits into focused modules: a data fetcher, an analyzer, a probability calibration layer, and a bankroll manager that applies disciplined staking math to every pick. One command (python3 run.py) installs everything, starts the API, and opens the dashboard.
Outcome: three engines with a shared risk-management DNA, validated in paper mode, running unattended on local hardware with structured logs, automated reporting, and instant manual override.