FINTERM · docsOpen terminal
Windows reference

Windows reference

Every window type Finterm ships, with screenshots and notes. Search at the top of the page filters across all of them.

24 window types/ to focus, anchors stay live

chart

Live WebGL crypto chart with WebSocket tick stream, RAF-eased pan/zoom, indicator overlays, and a sub-pixel candle layer.

Crypto chart window with candles, RSI pill, and SMA overlay
Chart window — BTCUSDT 1h with the SMA 20/50 indicator preset applied.
infoScreenshots in this section are placeholders — drop PNGs into /public/docs/screenshots/ to fill them in. The /uk page covers the same approach for landing-page imagery.

How to spawn

  • ⌘K → type a crypto symbol (BTC, ETH, SOL).
  • ⌘K → 'Open chart for X' as a fallback when the registry doesn't know the symbol.
  • Workspace presets ('Markets', 'Research') include a chart in their layout.

Top bar

SearchProvider + symbol picker. Ranking chips re-sort by Top Volume / Top Gainers / Top Losers.
Timeframes1s / 1m / 1h / 1d. Greys out timeframes the provider doesn't support.
Price pillLast + 24h Δ + RSI(14). Hides under 620 px wide.
ƒ IndicatorsBuilt-in presets + custom library. Click to apply + open the linked editor.
⚯ EditorOpen the linked TextEditor for the chart's current indicator code.

Pan & zoom

  • Click + drag — sub-pixel pan with RAF-coalesced render. Release with momentum to fling-glide.
  • Wheel — zoom (vertical) or pan (horizontal). Trackpad detected automatically and slowed ~12×.
  • Right-edge price axis — click + drag up/down to stretch / compress the y range (TradingView-style).
  • AUTO refits the y range to data; LOG toggles linear / log10 price mapping; MAG snaps the crosshair to the bar's nearest OHLC. Buttons sit bottom-right of the chart, just above the time axis.
  • You can scroll past the latest bar into empty 'future' space (TradingView style).

Measure & export

  • Shift + drag draws a measurement box with % change, $ change, bar count and elapsed time. The box stays after you release the mouse.
  • ✕ on the toolbar clears the selection; starting a new Shift+drag replaces it.
  • ↗ Sheet exports the bar range as a fresh spreadsheet (time + OHLCV per row), so you can analyse it with =VOL, =TREND, run regressions in the Lab, etc.

Hotkeys

1 / 2 / 3 / 4Timeframes 1s / 1m / 1h / 1d.
g / l / aToggle grid · log axis · AUTO refit.
mToggle magnet snap to OHLC.
sScreenshot the chart as a PNG (composites bars, overlays, crosshair, watermark).

Settings that affect it

market.defaultProviderDefault upstream when spawning.
market.defaultTimeframeDefault timeframe.
market.rsiPeriodRSI lookback (default 14).
tipThe chart minimum window size is 360 × 260. Internal UI collapses progressively as the window narrows — price pill hides under 620 px, button labels go icon-only under 460 px.

sheet

Spreadsheet with live-data formulas, financial modelling, click-to-edit cells, and persistence to the unified file store.

Spreadsheet window with formulas and live price cells
Spreadsheet — formulas in the cells column, live PRICE() / STOCK() lookups in the price column.

What it does

Standard A1-style spreadsheet — type values or =FORMULAS in cells, drag column borders to resize. Persists to the unified file store with a 4-second auto-save debounce after the last keystroke; the status bar shows the dirty / saved state. Two-finger trackpad scrolling pans both axes; Shift+wheel scrolls the cross-axis on a notch wheel.

Live price formulas

Pull live ticks into cells. Crypto uses Binance (5-second cadence); equities go through Yahoo / Finnhub via the gateway (15-second cadence) — the source is governed by data.equityProvider in settings.

=PRICE("BTC")     # crypto last trade (auto-normalises to BTCUSDT)
=PRICE("ETHUSDT") # explicit pair
=STOCK("AAPL")    # live US equity quote

Financial modelling formulas

Closed-form scalar functions for the common quant primitives. They evaluate synchronously like any spreadsheet formula — drop them in alongside arithmetic and they recompute when their inputs change.

=BLACKSCHOLES(S, K, T, r, sigma, "call"|"put")  # option price
=VOL(A1:A60)         # annualised realised vol on log returns × √252
=TREND(A1:A60)       # OLS slope of y = i over the range
=ZSCORE(A1:A60)      # last value's z-score against the rest

Toolbar buttons

🌐 =PRICEInsert =PRICE("BTC") — crypto last-trade price.
$ =STOCKInsert =STOCK("AAPL") — live equity quote.
🔬 LabOpen the Lab window pointed at the current selection.
📈 ChartSpawn a Chart-from-selection window (line / bar / area, exports SVG / PNG / PDF, saves to the file store).

Selection

  • Click + drag selects multi-cell ranges; selection persists after you release the mouse.
  • Shift+arrow extends the selection from the anchor; the cursor side moves correctly past two cells.
  • Selection border + interior flash track the active theme accent — when you arrow into a new cell the box pulses for ~220 ms.

How to spawn

  • ⌘K → 'sheet' or 'spreadsheet' or 'sheets'.
  • From the FileBrowser: double-click any .sheet file.

lab

Off-thread financial modelling — regression, forecast, options pricing, Monte Carlo simulation. Reads ranges from the active spreadsheet, can chart its outputs.

infoAll four model kinds run inside a dedicated numerics worker, so the spreadsheet and the rest of the workspace stay responsive even on long Monte Carlo simulations.

Tabs

RegressionLinear fit on (X range, Y range). Reports slope, intercept, R²; can chart the fitted line.
ForecastLinear extrapolation N periods past the input. Reports slope, R², next/last forecast; charts historical + forecast as two series.
OptionsBlack-Scholes pricing. Manual numeric inputs OR pick a Yahoo options chain — ticker → expiry → strike → call|put auto-fills spot, time to expiry and implied vol. Compares the theoretical price to the chain's last trade.
Monte CarloGeometric Brownian motion paths. Reports terminal mean / stdev / P05 / P25 / P50 / P75 / P95 and charts a sample fan.

Reading the spreadsheet

The Lab passes range strings (A1:A20) over a CustomEvent bridge to whichever sheet is currently active in the workspace — no React refs cross window boundaries, so the Lab keeps working when the spreadsheet is in a popout.

How to spawn

  • From the spreadsheet: 🔬 toolbar button — passes the current selection's range as the default.

data chart

Chart from a spreadsheet selection. Line / bar / area, theme-coloured series, exports to SVG / PNG / PDF and the unified file store.

What it does

Takes a 2-or-more-column selection (header row + data) and renders the first column as the X axis and remaining columns as series. Series colours track the active theme — switching theme re-recolours the chart in place.

Export buttons

SVGSerialises the live SVG (Recharts native) and downloads. Theme `var(--…)` colours are inlined to hex so the file renders identically outside the app.
PNGRasterises the SVG to a canvas at devicePixelRatio with the paper background painted underneath, downloads as a blob.
PDFOpens a clean print window with the chart and fires window.print() — save to PDF via the OS dialog.
SaveStores the SVG as a `chart` file in the unified file store; the FileBrowser will list it next to your sheets and notes.

How to spawn

  • From the spreadsheet: select a range, click the 📈 toolbar button.
  • From the Lab: each tab has a 'Chart …' button after a run.

texteditor

Multi-tab plain-text editor with JS syntax highlighting, file persistence, and a 'linked to chart' mode for indicator scripting.

Text editor window with multiple tabs and JS syntax highlighting
Text editor — multiple files in tabs, JS code with token-coloured highlight.

Modes

StandaloneMulti-tab editor backed by the unified file store. ⌘T new, ⌘W close.
Linked-to-chartSingle buffer round-tripping to the chart's indicatorCode. Shows a ⚯ Linked badge.
Settings JSONSame UI, the auto-save path commits parsed + validated settings instead of files.

Syntax highlighting

Auto-on for filenames matching .js / .ts / .tsx / .jsx / .json / .mjs / .cjs or anything containing 'indicator'. The highlighter is a tiny tokenizer (comments, strings, numbers, keywords, identifiers) — not a full parser, but covers ~95% of code you'd write here.

Auto-save

4-second debounce after the last keystroke. The status bar shows dirty / saved / idle. Linked-mode commits every keystroke straight to the chart's indicatorCode (no debounce — the chart's sandbox throttles).

file-browser

Browse, search, and open files from the unified IndexedDB store. Click a file to spawn it in the appropriate editor.

File browser window listing text and sheet files
FileBrowser — files indexed by name, type, last-modified.

Routing

Double-click any file to spawn it in the right editor. Files are typed by extension and content sniff.

.txt / .md / no extension→ TextEditor
.sheet / .csv-ish→ Spreadsheet
.json→ TextEditor (highlighted as JSON)
.js / .ts→ TextEditor (JS highlighted)

Indexing

Files surface in the command palette too — ⌘K then type any part of the filename. The palette indexes lazily on first open and refreshes whenever it re-opens.

watchlist

Free-text symbol list with live last-trade + 24h percent for every line.

Watchlist with BTC ETH SOL and live prices
Watchlist — one symbol per line, live ticks.

The Watchlist is a textarea on the left and a price column on the right. Edit the textarea (one symbol per line, e.g. BTCUSDT, ETHUSDT, SOLUSDT) — the price column re-renders to match. Changes save back to the workspace immediately.

infoSymbols use the provider's native form (BTCUSDT for Binance, XBTUSD for BitMEX). The watchlist always queries the provider configured in market.defaultProvider.

alerts

Browser-notification alerts on price thresholds. Service-worker backed; needs notification permission once.

Alerts window with armed price thresholds
Alerts — symbol + above/below + price; armed rules show a green dot.

How it works

Each alert is a (symbol, direction, price) rule. The chart's tick stream feeds the alert checker; when a rule's threshold is crossed, the Finterm service worker fires a browser notification.

warnAlerts only fire when the dashboard tab is open in some browser window. There's no server-side alerting. For 24/7 coverage use your exchange's native alerts.

First-time setup

  1. Spawn the Alerts window.
  2. Add a rule (symbol, above/below, price).
  3. On first arm, the browser asks for notification permission. Grant it.
  4. Test by setting an above/below near the current price.

news

Crypto news aggregated from CoinDesk, CoinTelegraph, Decrypt, The Block, Bitcoin Magazine, and HN /best. Click a headline to open the in-app reader.

News feed with headlines from multiple sources
News feed — sorted newest first, source chip on the right.

The feed pulls from /api/data/news/crypto, edge-cached for 2 minutes. Click any headline to spawn (or focus) a Reader window with the article's body extracted in-app — no leaving the workspace.

reader

In-app article reader. Self-hosted extractor strips the chrome and shows just the body.

Article rendered in the reader
Reader — title, byline, body. Original layout / ads / nav stripped.

How extraction works

/api/extract fetches the URL with realistic browser headers, parses the HTML through htmlparser2 (a SAX streaming parser, no DOM), walks the tag tree picking up paragraphs / headings / lists / blockquotes / images, and returns a typed Block[] payload that this window renders.

infoIf the direct fetch fails (paywall, 403, etc.), the extractor falls through to a Wayback Machine snapshot. SSRF-guarded: only public http(s) URLs are accepted.

filings

SEC EDGAR filings per ticker — search, filter by form, click any row to open the document on sec.gov.

SEC filings list filtered to 10-K
Filings — ticker AAPL, 10-K filter on, recent filings descending.

The window calls /api/data/sec/submissions which proxies SEC EDGAR's submissions JSON, resolves your ticker to a CIK via the company-tickers manifest, and renders the recent submissions table.

Form filter chips

Toggle 10-K / 10-Q / 8-K / S-1 / 4 / DEF 14A / 13F-HR / 20-F. The text-search box filters by form code or document description on top of the chip selection.

infoClick any row → opens the primary document at sec.gov in a new tab. URL is built directly from the CIK + accession + document slug; no proxy in the path.

facts

us-gaap quarterly fundamentals pivoted from EDGAR companyfacts. 12 metrics × every reported quarter.

Earnings facts window with revenue bars per quarter
Facts — revenue + net income bars per quarter, FY toggle on.

Available metrics

  • Flow: revenue, netIncome, grossProfit, operatingIncome, rd, opex.
  • Per-share: eps, epsDiluted.
  • Stock: cash, equity, assets, liabilities.
warnSome filers (notably Apple) report cumulative YTD values in the same XBRL contexts as quarterly facts. Per-period accuracy is generally good but spot-check the bars against the source 10-Q for serious work.

backtester

JS strategy engine — runs your function bar-by-bar, returns trades + equity + max DD.

Backtester window with strategy code editor and equity curve
Backtester — SMA-crossover example, equity curve + trade list.

Loads OHLCV from any Binance symbol + interval, runs your strategy in the same Web Worker sandbox as indicators. Returns: trades + equity[] + P&L + max drawdown + win rate + buy-and-hold baseline.

infoSee the Backtester section for the full strategy signature. The code editor uses the same JS syntax highlighter as the TextEditor.

heatmap

Top USDT pairs by 24h percent change — coloured grid, sized by volume.

Heatmap of USDT pairs sized by volume coloured by 24h change
Heatmap — bigger tile = more volume; greener = more positive 24h change.

Snapshot of the entire Binance USDT spot market. Refreshes every 30 seconds via the data gateway. Click any tile to spawn a chart for that symbol.

funding

Binance perpetual funding rates — APR per symbol, sortable.

Funding rates table sorted descending
Funding — every BinanceUSDS-M perp with current rate annualised.

Pulls from /api/data/binance/funding (cached 30s). Sort by rate to find perp / spot dislocations.

liquidations

Live tape of every Binance perpetual force-order — long vs short, notional, symbol filter.

Streams from wss://fstream.binance.com/ws/!forceOrder@arr — every liquidation across all USDS-M perps in real time. Filter by symbol prefix to focus on one cohort, or set a minimum-notional cutoff to drop dust.

The 'side' column is the side that got liquidated (LONGs got hit when price dropped; SHORTs got hit when price ripped).

open interest

Binance perp open-interest history per symbol with sparkline + window stats.

Pick any USDT perp and a period (5m..1d). Pulls /futures/data/openInterestHist via /api/data/binance/oi-hist (edge-cached 30s). Shows current notional, contract count, window min/max/Δ%, plus a sparkline.

Useful for spotting positioning shifts: a sharp OI spike with flat price often precedes the move.

overview

One-symbol terminal: price + 24h stats + order book depth + WebSocket connection state.

Symbol overview window showing BTCUSDT
Overview — BTCUSDT price, 24h stats, depth heatmap, source URL preview.

Single-page summary for one symbol. Useful as a sidebar companion to the chart — pin it next to the chart for the same ticker and you have price + book + stats without the chart's interaction surface.

correlation

Rolling Pearson correlation matrix between any list of symbols.

Correlation matrix heat-coloured
Correlation matrix — green near 1, red near -1.

Paste a list of symbols, pick a window length, get a heat-coloured matrix of pairwise rolling Pearson correlation. Useful for hedge-construction or basket research.

portfolio

Manual position list with live mark prices. Tooling — no broker connection, you enter the positions.

Portfolio window with positions and unrealised P&L
Portfolio — symbol / side / size / avg / mark / unrealised.

You add positions; the window pulls live mark prices through the data gateway and renders unrealised P&L per row. Persisted to the workspace alongside everything else.

warnThere is no broker integration. Finterm doesn't know your positions unless you type them in. This is a tracking surface, not an OEMS.

calendar

Macro + crypto event calendar — earnings, central-bank meetings, on-chain unlocks.

Event calendar in week view
Calendar — events for the upcoming week, source chip per row.

Aggregates calendar items from the data gateway. Filter by category (earnings, macro, on-chain) and severity.

journal

Trading journal — date / symbol / side / P&L / notes per entry.

Trading journal with text entries and a P&L summary
Journal — daily entries, summary P&L footer.

Free-text entries with structured fields. Persisted to the workspace + exportable as a CSV for tax / accounting workflows.

risk

Sharpe / volatility / max-drawdown readouts over a configurable window.

Risk dashboard with sharpe, vol, max DD numbers
Risk dashboard — rolling 30-day stats.

Pairs naturally with the Portfolio window. Computes risk metrics over the position equity curve over a configurable lookback.

settings-gui

GUI panel for the settings spec — categorised side nav, every field rendered with the right control.

Settings GUI window with theme category open
Settings GUI — theme tab, accent hue picker visible.

Two ways to edit settings: this GUI, or the JSON editor (open with 'settings' in the palette). Both write through the same store, so changes round-trip across the two.

themePreset, accent hue, density, accent token overrides.
chromeTop-bar layout (A / B / C), clock visibility.
workspaceSnap-to-grid, grid size, autosave on/off, debounce.
marketDefault chart provider, timeframe, RSI period.
privacyAnonymous telemetry on/off, crash reports on/off.