TRAINED ON 545 REAL TRADES  ·  logistic regression  ·  NOT A LIVE TRADING SIGNAL
Changelog

Version history

What's actually shipped, in order, with real dates. I log the embarrassing parts too — that's the point of building this model in public.

next

Make the model actually add skill — beat the strategy's base rate, not just match it:

  • Wire in market-feed data to revive the 9 dead features (vix, iv_rank, delta, intraday returns, …) — the inputs most likely to flag a losing trade.
  • Retrain and check whether AUC climbs meaningfully above today's 0.688. Accuracy will stay near the 88.6% base rate either way.
  • Keep evaluating with walk-forward CV and report every number with its Wilson CI.

No date promised — gated on getting a market-feed wired in, not on a calendar.

NEO-LR-v0.1

Retrained on 545 real Charles Schwab Gain/Loss trades (2025 full year + 2026 YTD, many underlyings). This replaces the synthetic seed below with the first model trained on real money — 483 wins, 62 losses, +$81,955.09 realized by the human trader who produced the labels.

N 545 win rate 88.6% test acc 0.890 AUC 0.688

The honest read, logged up front:

  • Barely beats the base rate. 0.890 accuracy vs a 88.6% "always guess win" baseline — accuracy is misleading on data this imbalanced.
  • AUC 0.688 is the real score: modest skill at separating losses from wins, far from proven.
  • 9 of 14 features are dead — no market-feed data wired in yet.
  • Leakage guard passes: all post-trade columns dropped before training; metrics.json reports zero leakage features.
  • Never traded real money: model P&L is $0; it places no orders.

See the model card for the full breakdown, or the live metrics.json for the raw numbers.

Data path

Charles Schwab Gain/Loss ingestion built. The pipeline can now read a real Schwab Gain/Loss CSV export and turn each closed options trade into a labeled training row (win/loss by realized P&L). This was the bridge from the synthetic seed to a real dataset — and the very next day it carried all 545 real trades into the retrain above.

seed

Historical, no longer the live model. The very first build was a logistic regression on a tiny set of generated paper trades on a single ticker — not real fills, made purely to stand up the ingest → features → train → evaluate loop end-to-end before any real data existed.

data generated, tiny status superseded

It was a scaffold, not a result — with so few generated trades nothing it reported was trustworthy, and I said so. It was fully replaced by the real-data retrain on 2026-06-25 above.

← Back to the ML dashboard