Describe the idea in plain English. The agent writes the strategy, runs the backtest, reads the result and comes back with a sharper version. It has a real Python interpreter for the research behind it, and every step is logged in a session you can audit.
From a hunch to code to market evidence.
Describe your idea. The agent turns it into research, code, visualization, and tests across granular market data.
- +
class ORB15(Strategy): - +
bars: Bars(interval_ns=60_000_000_000) - +
if close > orh: orders.ioc(side=BUY, qty=1) - +
stop = or_mid; flat_at = "14:30"
- ├─Dataget_data ESH6 GLBX ohlcv-1s 2026-01-12ok
- ├─Backtestrun_backtest orb_15m v1ok
- ├─Fillsl3_queue ESH6 mbook
- └─Validatewalk-forward5/6
- Return / yr
- +14.2%
- Buy and hold
- +0.6%
- Max drawdown
- −1.8%
- Sharpe IS / OOS
- 1.71 / 1.34
- Profit factor
- 1.42
- Win rate
- 42.1%
- Walk-forward
- 5 / 6
- ~
skip = ["cpi"] # not the session - +
skip_session("cpi") - +
calm = atr(5) < 2.0 * atr(20)
- ├─Recompiledsl to engineok
- ├─ReplayJan 12 to Feb 11ok
- ├─Diffv1 to v2−3
- └─Validatewalk-forward6/6
- Max drawdown
- −1.1% v1 gave back 1.8% on one session
- Return / yr
- +14.2 to +18.7%
- Trades
- 19 to 16
- Avg R
- +0.26 to +0.41
- Win rate
- 42.1 to 50.0%
- Sharpe OOS
- 1.34 to 1.66
- Compile
- 0.31 s
- Replay
- 8.90 s
- ├─BookESH6 mbo, 09:47:04.118ok
- ├─Queuel3_queue, 14 of 27ok
- └─Fill8.362 s, 0.41 ticksok
- Order
- BUY 1, LMT 6103.75
- Queue
- 14 of 27, 31 ahead
- Filled
- 09:47:12.480
- Waited
- 8.362 s
- Slippage
- 0.41 ticks, 4 bp
- ├─Sweep9 stops × 7 sizes63
- └─Plotsurface, pnl(stop, size)ok
- ├─Editorb_15m.py, +2 −1ok
- ├─Checkclosed vocabularyok
- └─Compile41 nodes, 0.31 sok
- ▾ strategies/
- orb_15m.py●
- open_drive_fade.py
- ▾ data/
- ESH6 GLBX ohlcv-1s
- calendar.csv
- ▾ tests/
- walkforward.py
- slippage.py
- ▾ runs/
- 2026-02-11_14-08✓
- 2026-02-09_09-31
- 1
from atlantive import BUY, SELL, Bars, Rolling, Strategy - 2
- 3
class ORB15(Strategy): - 4
# opening range breakout on ES, one contract, flat by 14:30 - 5
class Params: - 6
range_min: int = 15 - 7
target_r: float = 1.75 - 8
rvol_min: float = 1.4 - 9
- 10
class State: - 11
bars: Bars(interval_ns=60_000_000_000) - 12
atr5: Rolling(window=5) - 13
atr20: Rolling(window=20) - 14
- 15
def on_event(self, view, ev, orders): - 16
if not self.bars.update(ev): - 17
return - 18
close = float(self.bars.prev_close) - 19
self.track_range(close, self.p.range_min) - +
if self.session.skip("cpi"): # v2, was skip cpi ±30m - 21
return - ~
calm = self.atr5.mean() < 2.0 * self.atr20.mean() - 23
rvol = self.bars.volume / self.adv20 - 24
if view.position == 0 and close > self.orh and rvol > self.p.rvol_min and calm: - 25
orders.ioc(side=BUY, qty=1) - 26
self.stop = self.or_mid - 27
self.target = close + self.p.target_r * (close - self.or_mid) - 28
elif view.position > 0: - 29
if close <= self.stop or close >= self.target: - 30
orders.ioc(side=SELL, qty=1) - 31
elif self.clock >= "14:30": - 32
orders.ioc(side=SELL, qty=1) # flat, never overnight - 33
- 34
# the fill model is the book: l3_queue, queue position, not mid
- Target
- native engine
- Compiled
- 0.31 s
- Nodes
- 41
- Warnings
- 0
- or15
- first 15m, RTH
- rvol
- vol / adv(20)
- l3_queue
- fill model
- Guard
- session(cpi)
- ├─Rulesdaily 2%, dd 4%, targetheld
- ├─Walk fwd6 folds6/6
- ├─ResampleMonte Carlo, 500ok
- └─Stressslippage ×3ok
Peak 25m, 2.5R, +24.1%, one cell
Chosen 15m, 1.75R, +18.7%, nine neighbours within 2 pts
- Return / yr
- +18.7% v1 returned +14.2%
- Max drawdown
- −1.1%
- Sharpe IS/OOS
- 1.94 / 1.66
- Profit factor
- 1.64
- Win rate
- 50.0%
- Trades
- 16
- Daily loss cap
- < 2%, held
- Max drawdown
- < 4%, held
- Profit target
- met
- Monte Carlo
- 500 resamples
- 5th percentile
- +9.4%
- Slippage ×3
- +11.2%
- Walk-forward
6 / 6
Most backtesters fill your order at a price the market never offered you. Here your simulated order stands in the recorded queue, behind every order that was really ahead of it, and fills only when the tape reaches it. No look ahead, no invented prices, replayed at 240× speed.
Candles with your trades printed on them, order flow, equity, all drawn from tick data that never redraws itself. When the view you need does not exist, describe it and the agent builds it, up to a full 3D surface of profit across every stop and every size.
A strategy is a short Python file, about thirty lines you can open, edit, diff and version. Change one line and it recompiles in a third of a second. The same file compiles to Pine Script when you want it on TradingView, verified to trade identically.
Before a strategy touches money it faces the rules prop firms apply to the traders they fund: daily loss cap, max drawdown, profit target. Then walk forward tests, five hundred Monte Carlo runs and slippage stress. A 63 cell sweep keeps the plateau that survives everywhere, never the peak that got lucky once.
Agent
Describe the idea in plain English. The agent writes the strategy, runs the backtest, reads the result and comes back with a sharper version. It has a real Python interpreter for the research behind it, and every step is logged in a session you can audit.
Backtesting
Most backtesters fill your order at a price the market never offered you. Here your simulated order stands in the recorded queue, behind every order that was really ahead of it, and fills only when the tape reaches it. No look ahead, no invented prices, replayed at 240× speed.
Charts
Candles with your trades printed on them, order flow, equity, all drawn from tick data that never redraws itself. When the view you need does not exist, describe it and the agent builds it, up to a full 3D surface of profit across every stop and every size.
Strategies
A strategy is a short Python file, about thirty lines you can open, edit, diff and version. Change one line and it recompiles in a third of a second. The same file compiles to Pine Script when you want it on TradingView, verified to trade identically.
Validation
Before a strategy touches money it faces the rules prop firms apply to the traders they fund: daily loss cap, max drawdown, profit target. Then walk forward tests, five hundred Monte Carlo runs and slippage stress. A 63 cell sweep keeps the plateau that survives everywhere, never the peak that got lucky once.
Write it in Python.
Export it as Pine Script.
A strategy is a compact Python class written in our trading DSL. A closed vocabulary, checked before execution, with invalid syntax rejected and corrected upfront.
When you want to use it on TradingView, the same file compiles directly to Pine Script. No AI guessing, no manual rewriting.
Years of futures data, built in.
Bars from 1 second to 1 month since 2010, plus one year of trades and quotes and one month of full order book data. Nothing to buy, connect, or import.
Illustrative previews of historical data.