english is the language.
the agent writes the code.
strategies running across tqt right now.
mock projects from the public demo pool. paper capital, real timestamps. yours show up here too once you deploy.
you have a hypothesis. the agent does the typing.
you ask in plain language. it loads the data, writes the strategy module, runs the backtest, and tells you the number. you push back on the number. it tries again.
▸ data.load_ohlcv SPY · 2020-01..2024-12 · 1d · yfinance
← 1259 bars · cached as 4f0c1ed
every dataset, every strategy, every backtest stays one click away on the canvas. no menu archaeology when you come back at 9pm tomorrow.
▸ workspace.list strategies · 4 · 287 lines total
← sma_crossover · pairs_xom_cvx · funding_basis · vol_breakout
when the agent isn’t sure which window beats SPY, it grids the windows. when the variance looks suspicious, it widens the holdout. you supervise. it iterates. the number moves.
▸ grid_search sma · fast=[5..30] · slow=[50..200]
← 144 runs · best sharpe 1.42 at (12, 90)
five steps inside one loop iteration.
real transcript fragments from a tqt session. tap to read the prompt the agent gave itself and the tool call that followed.
compare runs ma_crossover_aapl_2024[a3f0c1ed] and [b71daa20]. which bars contributed the worst trades? was it whipsaw or single-day gaps?
▸ backtest.diff_runs a3f0c1ed b71daa20 --metric trade_pnl
← 4 of 7 worst trades came from chop weeks (atr < 50d-median). gaps account for 1.
propose a small parameter change that should reduce whipsaw without changing the trend signal. score by expected sharpe lift.
▸ strategy.propose_change base=sma_crossover guardrail=atr
← + atr(14) > 14d-median, gates entries only. expected sharpe lift: +0.10..+0.18.
apply the proposed change to strategies/sma_crossover.py. keep imports unchanged. add a single guard clause inside on_bar.
▸ workspace.edit strategies/sma_crossover.py +6 -0
← patch landed. 28 → 34 lines. typecheck ok. import graph unchanged.
run a backtest of the updated strategy against the cached AAPL 2024 dataset. emit an equity curve and metrics.
▸ run_backtest ma_crossover_aapl_2024 cash=10000 dataset=a3f0c1ed
← 251 bars · 12 fills (down from 18) · sharpe 1.18 (+0.20) · max dd -7.1% (+1.3pp).
write a one-line summary of the change. propose two further hypotheses sorted by expected lift.
▸ chat.send role=assistant
← sharpe 1.18, dd -7.1%. next two ideas: skip earnings days (calendar guard), or kelly-sized positions. which?
a strategy that improves itself.
the agent backtests, reads the result, proposes the smallest hypothesis change that might move the number, and runs it again. you stay supervisor. six iterations later, the sharpe is up 73%.
- 01baselinesma(10, 50)0.81
- 02widen fast windowsma(15, 60)0.94+0.13
- 03wider stillsma(20, 80)1.02+0.08
- 04filter chop with atr+ atr(14) > median1.18+0.16
- 05skip earnings days+ calendar guard1.32+0.14
- 06kelly-sized positions+ pos = kelly · 0.251.40+0.08
three things tqt is consciously not.
bloomberg-style multi-pane chrome borrowed from a 2003 multimon setup. flashing tickers as identity. navy panels.
green/red gradients. confetti on a winning day. a portfolio card that wants to be screenshotted. cheerful copy. shareable.
three identical metric cards above the fold. slate-and-purple gradient hero. an icon row. a logo wall.
currently in beta.
ask for an invite.
tqt runs locally on macos. cloud deploy comes later, also under invite. the language is english; the agent is claude. drop your email and we’ll be in touch.
- on invitesigned macos build, autoupdating. paper trading, unlimited backtests, the autoresearch loop.
- laterlive capital stays gated separately by broker authorization. paper is the default.
- not yetone project, one workspace. team workspaces ship after the public release.
english is the language.
the agent does the typing.
email-only signup. macos build sent on invite. no card, no setup interview, no marketing email-blast.