The Agent in the rail, backtests a keystroke away, deploy in the same window. The room already knows your brokers.
class Momentum(Strategy): universe = sp500() # point-in-time lookback, skip = 252, 21 def prices_to_signals(self, prices): r = prices.pct_change(self.lookback - self.skip) return rank(r, pct=True) > 0.9
Plain English in; drafted code, a backtest, and honest coverage out. It never leaves your machine.
The Agent on the homepage ↗Editor, backtests, tearsheets, blotter, notebooks. One room.
class PairsEnergy(Strategy): universe = constituents("XLE") z_entry, z_exit = 2.0, 0.5 def prices_to_signals(self, prices): z = zscore(spread(prices), 60) return (z < -self.z_entry) | (z > self.z_entry)
In [3]: runs.tearsheet(4814).drawdowns.head() start end depth 0 2018-10-03 2019-01-14 -9.2% 1 2020-02-20 2020-04-07 -8.1% 2 2022-05-04 2022-07-19 -6.4%
Ship to paper with one action. Real capital stays behind a separate gate.
| Strategy | Status | Broker | AUM | Return | Equity |
|---|---|---|---|---|---|
| momentum | live | IBKR | $250k | +4.2% | $260,412 |
| meanrev-pairs | paper | simulator | $100k | +1.1% | $101,180 |
| vol-carry | paper | simulator | $100k | -0.4% | $99,610 |