I used to keep a spreadsheet of gap statistics that took an hour every Sunday to update. The screener preset does it in four seconds and the alert fires at 09:31 with the names already ranked by relative volume.
Find your edge.
Then prove it.
AlgoBeam pairs an AI that actually reads price action with a backtester that holds it accountable. Research an idea, test it across a decade of data, and deploy it — without leaving the chart.
Free forever plan · No card required
- 0M+
- Strategies backtested
- 0K
- Active traders
- 0+
- Exchanges covered
- 0.00%
- Data uptime
Trusted by desks, funds and independent traders
Ask the market a question
Quant reads price, volume, structure and the calendar together, then answers in plain language — and shows the chart it reasoned from. Every claim it makes is one click from a backtest.
- Natural-language screening across every asset class
- Cites the exact bars behind each conclusion
- Turns any answer into a testable strategy
import { AlgoBeamTS, Provider, indicators } from 'algobeam-ts'
// provider, symbol, timeframe, how many bars of history to load
const algobeam = new AlgoBeamTS(Provider.Binance, 'BTCUSDT', '1h', 100)
async function main() {
const bars = await algobeam.load()
const last = bars.at(-1)
if (!last) throw new Error('provider returned no bars')
const rsi = await algobeam.run(indicators.rsi({ length: 14 }))
const ema = await algobeam.run(indicators.ema({ length: 50, source: 'close' }))
console.log('bars loaded ', bars.length)
console.log('last close ', last.close.toFixed(2))
console.log('rsi(14) ', rsi.last.toFixed(2))
console.log('ema(50) ', ema.last.toFixed(2))
console.log('regime ', rsi.last > 55 && ema.rising ? 'expansion' : 'neutral')
}
main().catch((error: unknown) => {
console.error('[algobeam] run failed', error)
process.exitCode = 1
})Prove any strategy you generate
Run a decade of bars in seconds with realistic fills, commission and slippage. Compare against buy-and-hold, inspect every trade, and see the drawdown you would actually have lived through.
Momentum Breakout
NVDA · 4H · Jan 2024 → Aug 2026
Everything a desk needs, on one canvas
Screeners, alerts, heatmaps, calendars and a strategy builder — all reading the same data, all sharing the same indicators.
Every market. Live. On one page.
Stocks, ETFs, crypto, forex and commodities. The heatmap and quote board below carry real, live market data.
- Financials+0.92%70 names$8.4T
- Utilities+0.39%33 names$1.7T
- Consumer Staples+0.35%38 names$4.4T
- Real Estate+0.17%31 names$1.4T
- Health Care+0.07%63 names$6.4T
- Communication Services-0.02%25 names$7.2T
- Industrials-0.19%74 names$5.0T
- Materials-0.38%27 names$1.3T
- Technology-0.53%67 names$21.5T
- Consumer Discretionary-1.06%50 names$7.0T
- Energy-1.44%22 names$2.3T
Market heatmap
LiveTop gainers
| Symbol | Last | Chg % |
|---|---|---|
| PLTR | 168.40 | +6.34% |
| MU | 186.80 | +4.51% |
| QCOM | 182.40 | +3.41% |
| AMD | 214.80 | +2.61% |
| PM | 178.20 | +2.46% |
| WFC | 86.40 | +2.36% |
| MA | 597.80 | +2.33% |
| ACN | 286.70 | +2.29% |
Indices & commodities
LiveTake your indicators anywhere with AlgoBeamTS
AlgoBeamTS is our open-source transpiler and runtime. Write an indicator once in AlgoBeamScript, then run it on your own server, in the browser, or inside the platform — with the same numbers coming out either way.
- MIT licensed, zero platform lock-in
- Point it at any provider — exchange feed, REST API or your own CSV
- Byte-identical results between the platform and your runtime
//@version=2
indicator("Momentum Ribbon", overlay = true, precision = 2)
// ---- inputs --------------------------------------------------------
len = input.int(14, "RSI length", minval = 2, maxval = 200)
fast = input.int(21, "Fast EMA", minval = 2)
slow = input.int(55, "Slow EMA", minval = 5)
span = input.int(8, "Weighted window", minval = 2, maxval = 100)
level = input.float(55.0, "Bull threshold", step = 0.5)
src = input.source(close, "Source")
// ---- series --------------------------------------------------------
series r = ta.rsi(src, len)
series emaF = ta.ema(src, fast)
series emaS = ta.ema(src, slow)
series slope = (emaF - emaF[3]) / 3
// A linearly weighted average written out longhand. The accumulator is
// declared with = before the loop and updated with := inside it; it is a
// plain local rather than a var, so it starts again from zero every bar.
weighted = 0.0
for i = 0 to span - 1
weighted := weighted + (span - i) * src[i]
series pull = weighted / (span * (span + 1) / 2)
bull = r > level and emaF > emaS and slope > 0
bear = r < 100 - level and emaF < emaS and slope < 0
// ---- output --------------------------------------------------------
plot(emaF, title = "Fast", width = 2,
color = bull ? color.bull : bear ? color.bear : color.fg_subtle)
plot(emaS, title = "Slow", width = 1, color = color.fg_subtle)
plot(pull, title = "Weighted", width = 1, color = color.accent)
fill(emaF, emaS, color = color.fade(bull ? color.bull : color.bear, 88))
plot(r, title = "RSI", pane = "lower", color = color.accent, width = 2)
hline(level, "Bull", pane = "lower", style = line.dashed)
hline(100 - level, "Bear", pane = "lower", style = line.dashed)
alert.when(ta.crossover(r, level), "Ribbon flipped bullish on {symbol} at {close}")Traders who stopped guessing
What people build with AlgoBeam, in their words.
The walk-forward report killed a strategy I had been trading for eight months. In-sample it looked wonderful; out-of-sample the profit factor fell to 0.94. Painful, but that is exactly what I pay a research tool to tell me.
We moved our whole signal layer onto AlgoBeamTS. One script, run in the browser for the preview and on a worker for the live loop, and the two produce byte-identical output. That alone removed a class of bug we had chased for a year.
I ask Quant for the last six earnings reactions on a name before I size anything. It gives me the day-one moves, the drift after, and the volume profile, and it links each number back to the print it came from.
The risk console blocks orders that would push me over 2% correlated exposure. It has stopped me three times this quarter, and every one of those blocked baskets went on to have a rough week.
Market Replay is how I train juniors now. I put them on 12 March 2026, hide the future, and make them narrate the tape bar by bar. Two weeks of that beats two months of reading about volatility.
The heatmap grouped by sector with a five-day window is the first thing on my screen every morning. It tells me where money rotated overnight faster than any three dashboards I used to keep open.
I export every strategy to AlgoBeamScript and keep it in git next to the rest of my code. Reviewing a strategy change as a diff, with the backtest attached to the pull request, changed how disciplined I am about it.
What sold me was the honesty of the backtester. It charges commission and spread on every fill and shows the trades it could not have filled at all. My curves got uglier and my live results got much closer to them.
Questions we get every week.
If something here does not cover it, the docs go deeper and support answers in under a day.
Still stuck? Read the documentation.
Prices come from consolidated exchange feeds and licensed vendor APIs, with fundamentals and corporate actions sourced separately and reconciled nightly. Each surface states its own delay and vendor in the footer of the panel.
Ready when you are
Start building your edge today.
The free plan never expires and never asks for a card. Open a chart, fork a strategy and run your first AlgoBeamScript backtest in about five minutes.
- No card required
- Cancel anytime
- 14-day Ultimate trial