Portfolio lab
The published pages answer questions someone else asked. This one is the simulator behind them, opened up: choose the exit window, the holding period, how capital gets allocated when signals overlap, which slice of the universe to trade, what friction to assume, and how much money you actually have. Everything recomputes in your browser, on the raw events, every time you change something.
Every published page on this site shows one configuration that someone else chose. This one recomputes the entire portfolio in your browser under whatever assumptions you set. Nothing here is precomputed except the raw events. The defaults are the pre-registered configuration โ the one fixed before any result was seen. Everything you change from there is exploration, and the panel at the bottom tells you how much weight your exploration deserves.
Friction
The published backtest assumes 0.1% per side. This strategy breaks even at 0.272% per side, and the effective spread estimated from our own daily highs and lows (Corwin-Schultz) sits above that in every price tier. Which is why these are not numbers anyone picked: the defaults are measured from the data, per tier, and shown to you so you can disagree with them.
The broker buttons only touch the friction fields, so you can combine any broker with any strategy above. They map to what each one actually charges on US equities: IBKR Lite is commission-free with smart routing, so the effective spread lands below the quoted one. IBKR Pro charges $0.005 a share with a $1 minimum per order โ modelled here as a flat $1 per side, which is the term that bites on small positions and is the single most damaging cost at a small balance. eToro charges no commission but earns on the spread and gives no price improvement, so the effective spread is set to the full quoted estimate. Not modelled: eToro's ~0.5% currency conversion if you fund in anything other than dollars, and the fact that fractional shares often cannot be routed as market-on-close orders โ this strategy trades at the close.
Universe filters
Three size axes, because they are not the same question. Price tier drives the bid-ask cost you actually pay and covers 100% of events โ "penny" is the SEC definition, under $5 a share, which is a price, not a size. Market-cap bucket is the literature ladder and covers 74% (the rest have no share count filed before the event). Within-month tercile is size relative to the universe that month. Each filter shows what it costs you in events.
Conviction is the dollar value of the insider purchase โ the simplest measure and the one covering 99.5% of events. (?)
Result
Is it consistent, or is it one lucky stretch?
A filter combination picked after seeing the full-sample result and then judged on that same sample proves nothing. Persistent out-performance across independent stretches of time is a different claim, and it is a claim that can be checked. These numbers recompute with every change you make above.
Trade journal
Every fill the simulation makes, in MetaTrader Strategy Tester order. Prices shown are the raw quoted price of the day, not the split-adjusted series used to compute returns โ so a stock that traded at $60 in 2010 shows as $60 here, even if the adjusted series carries it as $6 today.