We sell researchand the machinethat makes it.

Institutional research. Systems that run continuously, and one-offs for a single known event. You get the rules, the tests, and the terminal they were written in. On your hardware.

One address. No newsletter. Unsubscribe is a reply.

Only after the terminal? Join the early-access list.

Terminal running0API keys30+Panes200+Script functions40+Backtest metrics15Indicators5Perp venues800k+Macro series

We run two kinds of system.
Both are built the same way.

Each starts as a hypothesis about a regime or an event. We write it as rules and test it against its own costs before anything goes live. The two differ in how long they are meant to last.

Systematic

Systems that run continuously.

Rules in AmenoScript. The engine enforces costs, slippage and no lookahead, not whoever wrote the script. Each one is swept across its parameter surface before it goes live.

  • Liquid perpetuals and spot majors
  • Index ETFs, single names and FX
  • Trend and breakout regimes
  • Mean reversion inside ranges
  • Cross-venue funding and basis carry

Event-driven

Systems built for one event, then retired.

A listing, an unlock, a protocol change, a macro print. The window is known in advance. Built for it, tested on history that resembles it, run once. Most never run twice.

  • Scheduled macro prints and releases
  • Listings, unlocks and migrations
  • Index rebalances and roll windows
  • Protocol and parameter changes
  • One-off dislocations worth a bespoke tool

Both read the same data. Locally, and at size.

800k+ macro seriesEvery FRED series, plus US Treasury, World Bank and ECB reference rates.
8 crypto venuesSpot and perpetuals via CCXT, with a circuit breaker and endpoint rotation.
5 perp venues of fundingNormalised to a common annualised rate so a cross-venue spread means something.
Equities, ETFs and FXQuotes, candles, fundamentals and the calendar, from public endpoints.
Whole-universe screeningScan every symbol in a universe against your own script on a worker pool.
Cached on your diskSQLite in write-ahead-log mode, gap-detected and back-filled, read back on restart.

You never hunt for a pane.
You type its name.

Press /, type the verb, and it opens where you are looking. Thirty of them tile the way a window manager does: split, focus, resize, tab, undo. The workspace below runs that model.

14:32:5968440.80.376
14:32:5568453.81.444
14:32:5168444.71.118
14:31:4768457.60.895
14:31:4368439.50.041
14:31:3968442.01.456
14:30:3568458.21.152
14:30:3168449.21.758
14:30:2768444.81.679
14:29:2368445.01.065
14:29:1968448.50.690
68477.03.448
68472.51.164
68468.02.529
68463.51.076
68459.03.339
68454.52.761
68450.04.5 · 0.7bp
68445.53.196
68441.00.950
68436.52.439
68432.01.881
68427.52.152
68423.03.033
BTC-USD2,552.63+0.64%
ETH-USD416.97+2.15%
SOL-USD3,139.68-1.76%
SPY2,618.67+3.20%
QQQ1,508.32+1.22%
GLD564.66-1.74%
EUR/USD470.62+0.07%
NVDA1,084.71-0.51%
4 leaves · 5 panes opendrag a divider · click a pane to focus · ⌘/ctrl + H J K L moves focus · ⌘/ctrl + Z undoes
CHARTChartWLWatchlistBOOKOrder BookTSTime & SalesDEPTHDepth ChartPORTPortfolioTESTERStrategy TesterSCRIPTScript EditorOPTIONSOptions (OMON)CORRCorrelationsFUNDFundingSCREENScreenerOPTParam OptimizerHEATHeatmapECONCalendarBREADTHMarket BreadthEXECExecutionCMDS…and the rest

The scripts you already wrote
run here, unchanged.

AmenoScript is Pine v6 compatible. Paste a strategy in and the tester returns forty-odd metrics on TradingView’s definitions. The same script drives the screener and the optimiser.

script editorregime-break.ameno
strategy tester
//@version=6strategy("Regime Break", overlay = true,     default_qty_type = strategy.percent_of_equity,     default_qty_value = 100, commission_type = strategy.commission.percent,     commission_value = 0.05, slippage = 2, qty_step = 1e-6) len     = input.int(34,  "Channel",   minval = 4)atrLen  = input.int(14,  "ATR",       minval = 2)mult    = input.float(1.825, "Mult",  step  = 0.025) upper = ta.highest(high, len)lower = ta.lowest(low,  len)band  = ta.atr(atrLen) * mult regime(src, n) =>    var float st = na    d = ta.stdev(src, n)    st := na(st) ? src : src > st + d ? src - d : src < st - d ? src + d : st    st trend = regime(hl2, len) zone = close > upper + band ?  2     : close > upper        ?  1     : close < lower - band ? -2     : close < lower        ? -1     :                         0 drift = math.hypot(close - trend, ta.atr(atrLen)) long = ta.crossover(close, upper[1]) and zone > 0flat = ta.crossunder(close, lower[1]) or close < trend - band if long    strategy.entry("L", strategy.long)if flat    strategy.close("L", comment = "regime") plot(trend, "Regime", color = close > trend ? color.new(#fd98a, 0) : color.new(#ff5c6e, 0), linewidth = 2)plot(upper, "Upper", color.new(#fc9ff, 55))plot(lower, "Lower", color.new(#fc9ff, 55))

okCompiled as AmenoScript. 2 constructs here that Pine v6 rejects. Switch the dialect to see them.

equity · underwater · fills
Net profit+412.66%
Sharpe1.873
Sortino2.411
Calmar1.402
Omega1.664
Information ratio0.918
Profit factor2.104
Recovery factor3.470
Max drawdown−27.61%
CVaR (95%)−4.28%

Real metric names, ten of forty-plus. The run is over authored demonstration bars, not market data.

  • No lookaheadAn order emitted on bar N fills no earlier than bar N+1's open.
  • Order processingprocess_orders_on_close, calc_on_every_tick and calc_on_order_fills.
  • SizingFixed, percent of equity or cash. Pyramiding enforced at queue and at fill.
  • CostsCommission as percent, cash per contract or cash per order. Slippage in mintick units.
  • ExitsBrackets, OCA groups with cancel and reduce, and tick-aware trailing stops.
  • Risk controlsallow_entry_in, max_position_size, max_intraday_loss, max_drawdown.
ta.the full study librarymath.int-preserving returnsstr.ICU format directivesarray.typed and genericmatrix.complete surfacemap.reference-keyedrequest.security and fundingstrategy.orders, risk, trades

We sweep the whole surface.
Then let it climb.

Point the optimiser at a parameter space. It runs every combination on a worker pool, scored on the metric you pick, over as many instruments as you give it.

score on
One ridge, a broad shoulder, and a decoy peak to get caught on.
Gridexhaustive

Every combination, when the space is small enough to finish.

Randomsampled

Uniform draws across the ranges, when it is not.

SPSAgradient

Two evaluations per step estimate the slope of every parameter at once, so the cost stops scaling with how many you are tuning.

We shipped one.
Four are still outlines.

The terminal is the whole product today. The rest is intent, not a shipping date. Press an outline to tell us which you want first.

01 running today

Ameno Terminal

The terminal itself. Charting, scripting, backtesting, execution.

Runs on your machine. Public data endpoints, no API keys for the core. Candle history caches to local SQLite and survives restarts.

No dates, no prices, no order of release. When one of these is real you get one email about it.

It runs on your machine, and it stays there.

Runs on your machine

A local application. Candle history writes to SQLite on your disk. Watchlists, scripts and positions never leave the box.

No keys for the core

Equities, ETFs and FX from public Yahoo endpoints. Crypto via CCXT, with a circuit breaker and endpoint rotation. Macro from FRED, the Treasury, the World Bank and the ECB. No registration.

Execution behind three gates

Orders simulate by default. A live order needs three things at once: signing credentials, TRADING_ENABLED set, and the request armed. Miss one and it logs as simulated. Every attempt is audited.

Never custodial

Ameno never holds your funds or keys. No account, no balance. Software and engineering only. Not financial, tax or investment advice.

Talk to the desk.

Ask about the research and the systems, or put your name down for the terminal. One address either way. No newsletter, no drip, no partners.

What are you asking about?

One address. No newsletter. Unsubscribe is a reply.