The strategy workbench
Research, backtest, and validate your strategies.
Move an idea from a written hypothesis to a result you can challenge, with the market data, code, and evidence in one Lab.
Get started How validation works
- Strategies
- Python
- Workflow
- Idea to validation
- class OvernightReclaim(QCAlgorithm):
- def initialize(self):
- self.set_start_date(2019, 1, 1)
- self.set_end_date(2023, 12, 31)
- self.es = self.add_future("ES")
- def on_data(self, data):
- if self.time.hour < 10: return
- # price took back the overnight high
- if self.reclaimed(self.on_high):
- self.market_order(self.es, 1)
- self.stop_at(self.session_low)
- Net profit · USD
- +18,400.00
- Annual return
- 3.43%
- Max drawdown
- 12.9%
- Average trade · USD
- +85.98
- Backtest Oct 2, 4:18 PM · 7c41e9
- Costs +15,960 USD with fees doubled
- Resampling Loss in 15.8% of resampled paths
- Unseen dates −2,310 USD on unseen dates
From idea to a tested strategy
Every project moves through the same stages, in order, so a promising chart cannot skip the hard part.
-
Idea
Write what the strategy should prove.
-
Research
Inspect the data before trading logic.
-
Backtest
Run it over recorded market data.
-
Validation
Challenge costs, luck, and unseen dates.
Market data
Futures minute bars, US equities including delisted names, crypto, and index options with greeks. No downloads or separate API keys.
- 28 Futures markets Since May 2018
- 25,588 Stocks and ETFs Since June 2016
- 2 Crypto pairs Since August 2017
- 2 Index option underlyings Since August 2025
Among them: ES NQ CL GC ZN 6E SPY QQQ AAPL NVDA BTCUSDT SPXW
Assistant
Describe it. The assistant builds it.
Say what you want to test in plain words. The assistant writes the code, runs the backtest, and explains the result. The code stays yours to read and edit.
Connect your AI
Or use the AI you already have.
Connect Claude, ChatGPT, Codex, or Claude Code to the Lab. The app can write files, start backtests, and read results while the Lab shows each change.
- Included with the Lab
- Connected runs count toward the same monthly allowance.
- Your account stays private
- The app never sees your account details or payment method.
- You approve the connection
- Sign in to Etalon once and choose Allow. Disconnect it from the Lab at any time.
Claude
https://etalonlabs.io/mcp- Open Customize, then Connectors.
- Choose Add custom connector and paste the address.
- Sign in to Etalon when Claude asks, and choose Allow.
- Turn on Etalon Lab from + in a chat.
Codex and ChatGPT
codex mcp add etalon-lab --url https://etalonlabs.io/mcp- Run the command in a terminal.
- Run
codex mcp login etalon-lab, sign in to Etalon, and choose Allow. - The ChatGPT desktop app and the Codex IDE extension share this setting.
Claude Code
claude mcp add --transport http etalon-lab https://etalonlabs.io/mcp- Run the command in a terminal.
- Inside Claude Code, run
/mcpand choose Etalon Lab. - Sign in to Etalon and choose Allow.
Etalon Lab connectedSample
- Edited
overnight_reclaim.pyskip trades after 13:00- Ran
Backtest #15+21.7%, drawdown 11.2%- Compared
#15 with #14fewer trades, higher profit factor
Research
Look before you trade.
A research run loads the data and shows what is actually there before any trading logic exists.
| ES | NQ | YM | RTY | CL | GC | |
|---|---|---|---|---|---|---|
| ES | 1.00 | 0.94 | 0.94 | 0.83 | 0.15 | 0.13 |
| NQ | 0.94 | 1.00 | 0.79 | 0.76 | 0.07 | 0.10 |
| YM | 0.94 | 0.79 | 1.00 | 0.79 | 0.17 | 0.14 |
| RTY | 0.83 | 0.76 | 0.79 | 1.00 | 0.22 | 0.12 |
| CL | 0.15 | 0.07 | 0.17 | 0.22 | 1.00 | 0.16 |
| GC | 0.13 | 0.10 | 0.14 | 0.12 | 0.16 | 1.00 |
- Closed trades
- 214106 won · 108 lost
- Avg win / loss
- 1,290/ −1,096 USD
- Longest streaks
- 7W · 6Lwon · lost
BreakdownEntry hour · ET
- 10:00+13,400
- 11:00+5,900
- 12:00+2,400
- 13:00−1,200
- 14:00−1,300
- 15:00−800
Backtest
Every trade, not just the total.
Each run opens to a complete report against holding SPY, down to the individual order.
Validation
It tells you when it is not ready.
Five checks show whether a result survives costs, chance, unseen dates, and a prop firm's rules. Change the code and the evidence goes stale until you run it again.
- BacktestOct 2, 4:18 PM · 7c41e9
- Costs+15,960 USD with fees doubled
- ResamplingLoss in 15.8% of resampled paths
- Unseen dates−2,310 USD on unseen dates
- Prop firmPasses 22% · By size 50KNot counted
Resampling
15.8% Resampled loss share, 1,000 paths
Prop firm
22% Pass rate · By size 50K · 2,000 attempts
- Pass rate
- 22%
- Failed on max loss
- 61%
- Failed on daily limit
- 9%
- Out of time
- 8%
Unseen dates
−2,310 USD on unseen dates · First run on these dates