st-ox
st-ox
Stock Portfolio Tracker

Sign in

No account? Register
Free · No credit card required

Know your portfolio.
Stay ahead of the market.

Track stocks across US and European markets, screen for quality across 12 exchanges, build with model portfolios, gauge whether the market is expensive, and monitor your returns in any currency — all in one private, secure app.

st-ox.com
Invested
€14,820
8 lots
Current Value
€17,340
live quotes
Total Return
+€2,520
+17.0%
Daily Change
−€84
−0.48%
Holdings
Ticker Shares Value Return Status
AAPL
Apple Inc.
10 €2,840 +12.4% Live
MSFT
Microsoft Corp.
5 €2,190 +8.7% Live
IBCH.DE
iShares Core MSCI World
20 €4,620 +22.1% Live

Everything you need. Nothing you don't.

Built for self-directed investors who want clarity without complexity.

New
Smart Screen
Find stocks across 12 markets — US, Europe, Tokyo, Hong Kong — ranked 0–100 on quality, growth, value and momentum, with Quality, Emerging Growth and Capital Preservation presets. Plus opt-in US day-trading scans.
Multi-market quotes
US, European, and global stocks. Prices fetched live from Yahoo Finance with automatic currency conversion.
Multi-currency portfolio
Buy in USD, EUR, GBP — view everything in your chosen display currency. FX rates updated daily.
Technical analysis
RSI, RVI, Relative Volatility, OBV, HV, 200-day MA, 52-week range — 7 signals summarised into a single actionable verdict.
Trailing stop monitor
15% trailing stop calculated from your buy date. Visual alert when a position drops below its rolling high.
Rebalancing tool
Set target allocations and instantly see how much to buy or sell to bring your portfolio back into balance.
New
Model portfolios & What-if
Seven ready-made allocations — All-Weather, Permanent, Income and more. Load one into Rebalance, or use the What-if tab to project a lump sum or monthly plan into pessimistic / expected / optimistic outcomes.
New
Market valuation
See whether the market is expensive vs. its own history — price-vs-trend across the US, Europe and Japan, plus the Buffett Indicator and Tobin's Q, rolled into one verdict.
Private and secure
Your data is stored securely in your account. No ads, no tracking, no third-party auth — just you and your portfolio.

Frequently asked questions

Everything you need to know before you start.

Yes, completely free. No credit card required, no ads, no hidden fees. Create an account and start tracking immediately.

st-ox uses Yahoo Finance ticker format and supports all major exchanges: US (Nasdaq, NYSE), Germany (Xetra), UK (London), Estonia (Nasdaq Tallinn), Latvia (Nasdaq Riga), Lithuania (Nasdaq Vilnius), Finland (OMX Helsinki), Sweden (OMX Stockholm), and many more worldwide.

Live quotes are fetched from Yahoo Finance. Prices are cached for a configurable window (5 minutes to 6 hours) and automatically refreshed when stale. You can also force a manual refresh at any time.

Smart Screen is a built-in stock screener that finds companies across 12 markets — the US, London, Paris, Frankfurt, Amsterdam, Milan, Switzerland, Stockholm, Copenhagen, Helsinki, Tokyo, and Hong Kong. Each stock must pass a set of hard gates, then the survivors are ranked 0–100 on four factors, capped so no single sector dominates. Three presets — Quality Compounder, Emerging Growth, and Capital Preservation (defensive, low-volatility dividend payers) — let you choose the style, and there are opt-in US day-trading scans too. It's an idea generator, not investment advice.

The Models page offers seven ready-made example allocations — Wealth Preservation, Growth, Ivy Portfolio, All-Weather, Income, Permanent Portfolio and EUR-Hedged Global — that you can load straight into the Rebalance tool. An EU / US investor toggle switches every model between euro-listed UCITS and the equivalent US-listed ETFs, so you can build the same strategy with whichever instruments you can buy. The What-if tab projects a lump sum (and optional monthly contributions) over a chosen horizon, showing pessimistic / expected / optimistic outcomes for each model with an inflation-adjustable view. These are hypothetical illustrations, not forecasts or advice.

The Valuation page shows long-horizon gauges of whether the market is expensive versus its own history: a price-vs-trend chart you can switch between the US, Europe, Germany, France, the UK and Japan, plus the US Buffett Indicator (market cap to GDP) and Tobin's Q ratio. Each is shown with standard-deviation bands and rolled into an overall verdict. They're useful for setting long-run return expectations, not for market timing.

Yes. Each lot stores its own cost currency — you can hold USD stocks, EUR ETFs, and GBP shares all in the same portfolio. Live FX rates convert everything into your chosen display currency automatically.

Yes. Dividends paid since your buy date are fetched automatically from Yahoo Finance, shown per position in the holdings table, and folded into your Total Return (with the capital-only and dividend portions broken out in the card's sub-text).

The ticker detail chart computes RSI (14), RVI (10), Relative Volatility (14), OBV, Historical Volatility, 200-day moving average, and 52-week range position — combined into a single Buy / Hold / Caution signal.

Your portfolio data is stored in a private cloud database tied to your account. Passwords are hashed with PBKDF2 (100,000 iterations). No third-party login, no ads, no data sharing.

Yes. st-ox is fully responsive and works in any modern mobile browser — no app download required.

For each position, st-ox tracks the rolling price high since your buy date and alerts you (red left border on the row) if the current price drops more than 15% below that high — a classic risk management signal.

Yes. You can import holdings from a CSV file in the format: ticker, shares, avgPrice, buyDate, currency. Missing price or date fields are filled in automatically from Yahoo Finance where possible.

Ready to take control?

Create your free account in 30 seconds.

st-ox — Free Stock Portfolio Tracker
Home Guides Contact Privacy Policy Terms of Use
© 2026 st-ox.com

Welcome! Import existing data?

We found portfolio data saved in this browser. Would you like to import it into your account so it syncs across devices?

st-ox
Dashboard
Holdings
Watchlist
Analyse
Screener
Models
Valuation
Options
Closed
Settings
Theme
Pro soon
Feedback
Admin
User Guide
Sign Out
Collapse

Dashboard

Invested
-
Current Value
-
Total Return
-
Daily Change
-
Data Quality
-
Quotes
-
FX
-
Display Currency
-
Transaction-Aware Portfolio Value
Each lot is held flat at its purchase cost until its buy date, then tracks market price — so buying a lot doesn't look like a gain. Cash and undated lots are held constant across the range.
Allocation
Market Sentiment
Loading…

Holdings

Cash
No balance
Holdings
Quotes include source currency, last update, and missing data state.
Ticker Shares Cost Price Value Daily Return Ann. Div. Status
Search
Add Holding
A new ticker creates a holding; an existing ticker adds another lot to it. Cost currency is saved per lot so mixed-market portfolios calculate correctly.
Auto-fill uses the quote currency returned by the data source.
Used for the Dashboard's By type allocation view. Auto-detect classifies from market data; set it only to override a wrong bucket.
CSV Import
Format: ticker, shares[, avgPrice, buyDate, currency, note] — only ticker and shares are required.
Drop CSV here or click to browse

Watchlist

Tracked Tickers
Loading watchlist…
Search

Analyse

Symbol:
Technical Analysis
Fundamental Data
Profile

Model Portfolios

⚠ Hypothetical illustration only — not a forecast, guarantee, or investment advice. It simulates returns from simplified long-run return and volatility assumptions; actual results will differ and you can lose money. Amounts are shown in your display currency.

Market Valuation

Long-horizon valuation gauges answering "is the market expensive vs. its own history?" — useful for setting expectations, not for timing. The price-vs-trend gauge is switchable across regions; the Buffett Indicator and Q Ratio are US-only (no comparable free data exists for other markets).

Loading valuation data…

⚠ Equity valuation metrics don't map directly to bond-heavy or hedged models, and the Buffett Indicator / Q Ratio are US-only. They are notoriously poor market-timing tools (valuations can stay stretched for years); treat them as context for long-run return expectations and drawdown risk, not buy/sell signals. Not investment advice.

σ (sigma) = standard deviation — how far a reading sits from its own historical average. +2σ means well above the norm (expensive); −2σ well below (cheap). Roughly 95% of history falls within ±2σ, so beyond it is genuinely extreme.

Smart Screen

A multi-factor screen that ranks US stocks on quality, growth, value and momentum — then caps any single sector so the list stays diversified.

⚡ Day trading — high risk. These scans surface today's unusual-volume movers on the market selected above, to help you build a watchlist. The data is delayed (~15 min) and for idea generation only — not a real-time trading signal, and there's no Level 2, VWAP or news here. Most day traders lose money; never trade a name you haven't checked on a live platform first.

Options Strategy Builder

Build a multi-leg position and see what it pays at expiry — breakevens, max profit and loss, probability of profit and the Greeks. Start from a preset or add legs by hand. Prices come from the live option chain where available; anything you type overrides them.

⚠ Options can lose more than you put in. Short calls and naked legs carry theoretically unlimited loss, and every number here is a model estimate — Black-Scholes with one volatility per leg, ignoring early assignment on American options, dividends, commissions, margin and slippage. This is an educational calculator, not trade advice or an execution tool. Positions are not saved to your portfolio.

Underlying

Strategy

Legs

On Action Type Strike Premium Qty IV % Cash flow

st-ox — Free Stock Portfolio Tracker
Home Guides Contact Privacy Policy Terms of Use
© 2026 st-ox.com
Settings
Display
Account
Danger zone
Permanently erases your account and everything tied to it — holdings, cash, trade history, watchlists, saved settings and any feedback you've sent. This cannot be undone and there is no backup.
Edit Lot
Applies to every lot of this ticker in the By type allocation view.
-
-
Admin
Loading…
Loading…
Send Feedback
Bug report, feature request, or anything on your mind.
st-ox Pro is coming
st-ox stays free. I'm exploring an optional Pro tier — tell me what would make it worth it and you'll be first to know. Nothing to pay, no commitment.
Which would you actually use?
What feels fair per month?
You're on the early list
Thanks — this genuinely shapes what gets built. I'll reach out before Pro launches.
User Guide

What is this?

st-ox is a web app for tracking a multi-currency stock portfolio. Your data is stored in a secure cloud database tied to your account — sign in from any device and your portfolio is there.

Navigation

The app is organised into eight pages accessible from the left sidebar:

  • Dashboard — summary cards, portfolio value chart, allocation donut, and a market sentiment gauge.
  • Holdings — holdings table, cash panel, search, add lot, and CSV import.
  • Watchlist — a saved list of tickers with live price and daily change.
  • Analyse — TradingView Advanced Chart, Technical Analysis, and Fundamental Data for any symbol.
  • Screener — Smart Screen: a multi-factor screen across 12 markets with Quality Compounder, Emerging Growth, and Capital Preservation presets, plus opt-in US day-trading scans (momentum / gappers / low-float).
  • Models — a library of example model portfolios (Wealth Preservation, Growth, Ivy Portfolio, All-Weather, Income, Permanent Portfolio, EUR-Hedged Global) you can load into the Rebalance tool, plus a 🎲 What-if tab for hypothetical projections.
  • Valuation — long-horizon market-valuation gauges (price-vs-trend across regions, plus the US Buffett Indicator and Q Ratio) with an overall verdict.
  • Options — a strategy builder for evaluating multi-leg option positions: payoff at expiry, breakevens, max profit and loss, probability of profit and the Greeks.

The bottom of the sidebar holds a market open/closed indicator (US hours), a Theme toggle (light / dark), Settings, Feedback (or Admin for admin accounts), User Guide, and Sign Out. On desktop, Collapse shrinks the sidebar to an icon-only rail (click again to expand); on mobile the sidebar becomes a hamburger overlay.

Account & sign-in

  • Register with an email and password. No third-party login required.
  • Your session is remembered securely via a cookie — you stay signed in across page reloads.
  • Use Sign Out at the bottom of the sidebar to end your session. Signing out clears this device's locally cached portfolio data; signing in as a different account also clears the previous account's cache, so nothing leaks between accounts on a shared browser.
  • When signing in for the first time on a new browser, the app offers to import data previously saved in that browser's local storage (if any).
  • To change your email address or password, open Settings → Account. Both changes require your current password.

Dashboard

  • Summary cards — Invested, Current Value, Total Return, Daily Change — all converted to your display currency. Invested is the cost basis of your current holdings plus any cash held; Current Value is their market value plus cash. Total Return is the price-based capital gain/loss on the holdings (cash nets out) plus dividends received since each lot's buy date; the card's sub-text breaks out the capital-only figure and the dividend portion, and per-ticker dividends also appear in the Holdings table.
  • Status strip — Data Quality, Quotes freshness, FX status, Display Currency.
  • Portfolio Value chart — range buttons 1M / 3M / 6M / 1Y. Each lot is valued from its buy date forward (forward-filled across non-trading days), and the latest point uses live quotes so the chart's right edge matches the Current Value card. Cash is included at its current balance and undated lots span the full range — both estimated as constant, since no per-day cash history is stored. The vs benchmark… selector overlays a comparison line rebased to your portfolio's starting value: a cash / deposit baseline — a EUR or USD money-market line (tracking the euro overnight rate or short-dated US T-bills), i.e. roughly what the money would have earned in a bank deposit at the risk-free rate or an equity index (S&P 500, Nasdaq 100, MSCI World). The overlay is total-return (dividends reinvested), so it's a fair "what if I'd parked it instead" comparison.

    Green or red here means something different from Total Return. The line is coloured by comparing its right edge to its left edge — i.e. movement across the range you've selected — and the small label above the chart states it outright, e.g. +0.6% over 1M. Total Return instead compares today's value against what you actually paid, over your whole holding history. So a portfolio still below its cost basis can show a green line after a good month: it's up over the window, but not yet back to break-even. Switching the range button changes the label and can flip the colour, while Total Return never moves — that's expected, not a glitch.
  • Allocation donut — current weight of each holding including cash positions. Use the By holding / By type toggle to switch between per-ticker weights and a breakdown by asset class (Stocks, Fixed income, Real estate, Commodities, Crypto, Cash). Types are detected automatically from market data; you can override a holding's class in its Edit Lot form (or when adding it) if it lands in the wrong bucket.
  • Market Sentiment — a VIX-based gauge (below the allocation donut) showing the broad market mood. See Market Sentiment below.
  • Journal (top right of the page) opens your Trading Journal — ledger, realised P&L and analytics. See Trading Journal below.
  • Use Refresh (top right of the page) to force an immediate quote update.

Holdings page

  • Cost — total invested, converted to display currency.
  • Daily — change since previous close.
  • Return — total gain/loss since purchase.
  • Ann. — annualised return (requires a buy date on each lot).
  • Div. — dividends received since your buy date (Yahoo Finance data).
  • Analyse button — opens the Analyse page with that ticker pre-loaded (chart, technicals and fundamentals).
  • Signal dots — two coloured dots next to each ticker name. The first dot is the technical signal (green = Buy, yellow = Hold, red = Caution) computed from 7 indicators; it loads automatically on page load, after adding a lot, and after Refresh. The second dot is the analyst consensus (requires a Finnhub API key in Settings); it loads in the background after the technical dot — if it hasn't appeared yet, opening the ticker detail modal forces it immediately. Hover either dot for a tooltip.
  • Red left border — price is below the 15% trailing stop (rolling high × 0.85 from your buy date).
  • Click ▶ on a multi-lot row to expand and see individual lots.
  • Journal — opens your Trading Journal (ledger, realised P&L and analytics). See Trading Journal below.
  • Rebalance — set a target % per ticker; the app calculates whole shares to buy or sell.
  • Analyse with AI — copies a structured portfolio summary prompt to your clipboard for pasting into any AI assistant.
  • Cash panel (above the table) — track cash balances per currency; deposit with + Add Cash, or withdraw / clear per row. See Selling & cash below.

Adding holdings

  • Use the Add Holding form on the Holdings page (a new ticker creates a holding, an existing one adds another lot). Enter a ticker (e.g. AAPL, BMW.DE, EFT1T.TL), shares, and optionally a buy date.
  • Leave buy price empty — the app auto-fetches the historical price from Yahoo Finance for that date. Clearing the ticker field also clears the prefilled price and date.
  • Each purchase is stored as a separate lot so the portfolio chart reflects your actual entry dates.
  • Cost Currency — records what currency you paid in. Defaults to the quote currency (e.g. USD for US stocks). Change it only if you actually paid in a different currency.
  • Automatic cash deduction — if your cash balances cover the purchase cost, the amount is deducted when you click Add Lot. Same-currency cash is used first; if that's insufficient the remainder is converted from your other currency balances using live FX rates. A green hint shows exactly what will be deducted; if cash is insufficient the hint turns red and no cash is touched. Untick Deduct cost from cash balance to record the purchase without touching cash (e.g. bought with money not tracked in the app).

Selling & cash

  • Click Sell on a holdings row, enter shares, sell price, and proceeds currency. The proceeds are added to your cash balance automatically. Lots are reduced FIFO (oldest first).
  • Cash lives in its own Cash panel above the holdings table — one row per currency, showing the native amount (e.g. $900.00) with the display-currency equivalent as a small hint, and a running total in the panel header.
  • Click + Add Cash in the Cash panel header to deposit without a sale. Pick any currency (including one you don't hold yet); each deposit adds to the existing balance rather than overwriting it.
  • On each currency row, use − Withdraw to take an amount out, or ✕ to clear that balance entirely.
  • Cash is included in total portfolio value and the allocation donut. Deposited cash is tracked separately so it does not inflate Total Return; withdrawing realised gains correctly reduces it.

Trading Journal

Open the Journal from the button in the Dashboard page header or the top of the Holdings panel. It's a full record of your trading, in three tabs (all amounts in your display currency at current FX):

  • Ledger — a dated blotter of every buy and sell, newest first: date, action, ticker, shares, native price, and the display-currency amount. Purchases carry a Held / Partly sold / Sold tag; sells show the realised profit or loss, the holding period, and the % return. A strip at the top totals how much you've Invested, Sold for, and your overall Realised P&L. A position you bought once and sold in pieces still shows as a single purchase row at its full original size.
  • Realized — the detailed closed-trade log, one row per lot consumed on each sell (FIFO cost basis), with native buy/sell prices, cost, proceeds, realised P&L, holding period, and a per-year breakdown.
  • Analytics — how your trading is doing overall: win rate, total and average realised (expectancy), profit factor, average holding period, average win/loss, your best and worst trades, and realised P&L by year.

Entries appear automatically — a purchase is logged when you add a lot, and its outcome when you sell. Use Export CSV to download the current tab (the Ledger or the Realized log) as a spreadsheet.

The Journal reflects your current holdings and sell history — editing a lot updates its ledger entry, and Clear All Data (in Settings) erases it along with everything else.

CSV import

On the Holdings page, paste or drop a CSV: ticker, shares[, avgPrice, buyDate, currency, note]. Only ticker and shares are required; rows with no resolvable price are skipped. The note is the last field, so it may contain commas. Example:

AAPL,10,145.50,2023-06-01,USD,Initial purchase

Ticker detail chart

Click any ticker name in the holdings, watchlist or Screener table to open its detail modal. Shows price history (3M / 6M / 1Y / 2Y), 200-day MA, and (for holdings only) a 15% trailing stop line. Indicators:

  • RSI (14) — below 30 = oversold, above 70 = overbought.
  • RVI (10) — bullish when RVI line is above its signal line.
  • Rel. Volatility (14) — Dorsey Relative Volatility Index; above 50 = volatility concentrated in up moves.
  • OBV — rising = buying pressure dominates.
  • HV — 30-day annualised historical volatility.
  • vs 200 MA — price position relative to the 200-day moving average, coloured for dip-buy entry quality: green inside the entry band (−10% to +5% of the MA), amber just outside (moderately extended above, or a deeper dip), red when far extended (>+20%) or in falling-knife territory (<−20%).
  • 52-Week — price within its 52-week high/low range. Bar is green when in the lower 40% of its range (potential value), amber in the middle, red near the top (extended).

The 15% trailing stop is only shown when the ticker is in your holdings — it is anchored to your earliest buy date and has no meaning for watchlist-only tickers.

The Buy / Hold / Caution verdict

The verdict is a mean-reversion ("buy the dip") checklist in two parts. First it looks for a genuine pullback (RSI < 40, price within 0.90–1.05 × 200 MA, and in the lower 40% of the 52-week range); then it requires early stabilization (RVI bullish, relative volatility ≥ 50, OBV rising, or 30-day volatility contracting below its 90-day baseline). A Buy needs both a real dip (at least two pullback signals) and at least one stabilization signal — a falling stock with no sign of steadying is never labeled Buy, and if stabilization can't be measured at all (e.g. a non-US ticker with no volume data) the verdict is capped at Hold.

Two gates sit on top. A regime gate caps the verdict at Hold when the 200-day MA is falling, so dips in broken downtrends are never labeled Buy. A falling-knife gate blocks Buy while price is more than 10% below the 200-day MA; if a stock is below that line and in a falling 200-day trend it is marked Caution rather than Hold, because that combination is not neutral.

Downside levels

On a Buy or Hold the panel shows two reference points below the current price — the prices at which this setup would stop making sense — listed nearest to the current price first, so the one that would be reached first reads first:

  • Suggested stop — a volatility buffer (½·ATR) below the recent 20-day swing low, kept at least 3% and at most your trailing-stop % away from price so a shallow dip doesn't produce a hair-trigger stop. This is a risk-management level: where a position would be cut.
  • Dip setup breaks below — the 0.90 × 200 MA line. This is a signal-validity level: under it the pullback counts as a falling knife and the verdict itself flips.

These two measure different things, so their order is not fixed. Usually the stop is nearer and the 200 MA line is the deeper backstop. On a deep dip the 200 MA line rises above the stop, and the panel flags this as a Fragile setup: the setup stops qualifying as a dip before the stop is ever reached. A Buy carrying that flag passed the checklist only barely — it can sit a fraction of a percent inside the price band, where an ordinary day's move pushes it out. The app deliberately flags rather than downgrades these, because the trend gate and stabilization checks may all still be passing; read it as a marginal Buy rather than a comfortable one, and note that the checklist scores the price band pass/fail, so being just inside the band counts the same as sitting comfortably in the middle of it.

Inverse and leveraged funds get no verdict

These products get no Buy / Hold / Caution at all — the panel shows n/a and names which kind it is. There are three, and the app distinguishes them because they fail the dip thesis for different reasons:

  • Inverse (−1x) — e.g. ProShares Short QQQ. Carries no multiplier; it simply rises when its index falls.
  • Leveraged (2x / 3x long) — e.g. ProShares Ultra S&P500, Direxion Daily … Bull 3X.
  • Leveraged inverse (−2x / −3x) — e.g. UltraShort, UltraPro Short, Daily Bear 3X.

All of them reset daily. They are built to deliver their multiple of the index move over a single day, and each day's result compounds on the last. Over longer periods the outcome is therefore path-dependent: it depends on the order the moves arrived in, not just where the index ended up. A choppy sideways market erodes them even when the index finishes flat — this is usually called volatility decay.

For inverse funds that produces structurally negative drift in a rising market, so sitting near the bottom of the 52-week range is their normal state, not a discount — a mean-reversion signal has nothing to revert to. For leveraged long funds the opposite framing applies: they rise in a bull market, but every drawdown arrives amplified and the decay still bites, so a dip-buy checklist understates the risk being taken. Either way these are short-term tactical instruments, not vehicles for averaging into a drawdown. The raw indicators (RSI, OBV, and so on) are still shown, since they describe recent price action regardless.

Watchlist

  • Navigate to Watchlist in the sidebar.
  • Multiple watchlists — the tab bar above the table shows your lists (up to 10). Click a tab to switch, + to create a new list, and on the active tab use ✎ to rename or ✕ to delete it (the last remaining list can't be deleted). The same ticker may appear in several lists.
  • Type a ticker directly and click + Add, or use the Search panel on the right to find stocks by name and add them with one click — tickers are added to the currently active list.
  • Lists are stored per user in the cloud and persist across devices; your last active list is remembered on each device.
  • Each row shows live price, daily change, and a technical signal dot (green/yellow/red) that loads automatically when you open the Watchlist page — no manual step needed.
  • Click any ticker name to open its detail chart (indicators, 200 MA). The analyst consensus dot also appears in the row after opening the modal.
  • Click Buy to jump to the Holdings page with the Add Holding form pre-filled for that ticker, so you can turn a watched stock into a position in a couple of clicks.
  • Click Analyse to open the ticker in the Analyse page with the Advanced Chart, Technical Analysis, and Fundamental Data widgets loaded.
  • Click ✕ to remove a ticker from the watchlist.

Analyse page

  • Enter a symbol in TradingView format (e.g. NASDAQ:AAPL, XETR:BMW) and click Load.
  • The Analyse button in Holdings and Watchlist navigates here automatically with the correct symbol pre-filled.
  • Chart — for US stocks, the full interactive TradingView candlestick chart. For other markets (London, Paris, Xetra, Tokyo, Hong Kong, …), where TradingView's embedded chart has no data, st-ox shows its own price chart with a 200-day moving average and 3M–2Y range buttons instead.
  • Technical Analysis — buy/sell/neutral gauge across multiple timeframes.
  • Fundamental Data — key financials (valuation, income statement, margins).

Models page — Model Portfolios

The Models page (in the sidebar, below Screener) is a small library of example allocations. An EU / US investor toggle in the top-right switches every model between euro-listed UCITS (for a EUR investor) and the equivalent US-listed ETFs (for a US investor) — the same strategy, expressed with whichever instruments you can actually buy. In US mode the EUR-hedging language is dropped and the hedged model is renamed Global Balanced; your choice is remembered per device. (The Ivy Portfolio always uses its original US ETFs in both modes.) Pick a model from the tabs:

  • Wealth Preservation — a capital-preservation mix (short & intermediate govt bonds, inflation-linked, quality & min-vol equity, gold, and a cash/money-market sleeve). Built for low drawdown and protecting real purchasing power, not maximum return.
  • Growth — a more aggressive, equity-led mix with a small gold and short-bond ballast. The developed-market equity sleeves are EUR-hedged; emerging markets stays unhedged.
  • Ivy Portfolio — Mebane Faber's five-asset-class mix held in equal 20% weight using the original US ETFs (VTI, VEU, IEF, VNQ, DBC); quotes are in USD and carry currency risk, and EUR retail investors generally can't buy US-domiciled ETFs directly. The original adds a 10-month moving-average timing rule (hold a sleeve only while it's above its 10-month average); the app loads the buy-and-hold equal-weight version, so check the monthly AdvisorPerspectives update if you want to apply the timing overlay yourself.
  • All-Weather — Ray Dalio's risk-balanced mix (30% equity, 55% government bonds split long/intermediate, 7.5% gold, 7.5% commodities), adapted to euro-listed UCITS. Designed to hold up across all economic regimes with shallow drawdowns rather than chase maximum return.
  • Income — a yield-oriented UCITS mix: global high-dividend and dividend-growth equity, listed real estate, and investment-grade euro bonds. Built for cash flow and relative stability rather than growth; the distributing sleeves feed regular income into your Total Return.
  • Permanent Portfolio — Harry Browne's four-way split, 25% each in stocks, long-term government bonds, gold and cash, adapted to euro-listed UCITS. Extremely simple and robust — each sleeve is built to shine in one economic environment.
  • EUR-Hedged Global (Global Balanced in US mode) — a globally diversified ~60/40 balanced mix where every sleeve is EUR-hedged or natively euro-denominated, so USD/EUR swings don't drive returns: EUR-hedged developed-world equity, euro bonds, and a gold-and-commodities allocation split between gold (crisis hedge) and a EUR-hedged broad commodity ETF (inflation hedge). Being fully hedged means no emerging-markets sleeve (EM can't be practically hedged); real estate is euro-denominated European property for the same reason. Note hedging carries an ongoing cost (roughly the EUR–USD rate differential).

Each sleeve shows its target %, your current weight, and the drift between them (current − target, in percentage points) — shown green when you're close to target and amber when it's worth rebalancing. Where a model groups sleeves (e.g. a combined equity allocation), a subtotal line shows the group's target, current and drift. Click any ticker to open its detail chart (price history, indicators). A Phasing note suggests how to deploy. Load into Rebalance copies the model's targets into the Rebalance tool — which then tells you the exact whole shares to buy at live prices, even for instruments you don't own yet. Add all to watchlist seeds a watchlist named after the model.

Switch to the 🎲 What-if tab (after the model tabs) to project how an investment might grow under each model. Enter a lump sum, an optional monthly top-up, and a time horizon; the table then shows every model's pessimistic, expected and optimistic ending value side by side, with a Risk rating (Low / Medium / High) that explains how wide that range is — higher risk means a bigger gap between the pessimistic and optimistic outcomes (hover the rating for the exact figures). Tick Show in today's money to adjust the results for inflation at a rate you set. The outcomes come from simulating thousands of return paths from each model's long-run return and volatility assumptions, so they are hypothetical illustrations — not forecasts or guarantees.

These are example allocations, not personalised investment advice. If a ticker doesn't resolve on your venue, use the same fund's ISIN on another exchange.

Screener page — Smart Screen

A multi-factor screen that finds stocks and ranks them with a single 0–100 score. Use the market dropdown to screen any of 12 exchanges — US, London, Paris, Frankfurt (Xetra), Amsterdam, Milan, Switzerland, Stockholm, Copenhagen, Helsinki, Tokyo, or Hong Kong. Then pick a preset: Quality Compounder (profitable, cash-generative businesses growing at a reasonable price), Emerging Growth (faster mid & small caps with durable margins), or Capital Preservation (defensive, low-volatility dividend payers ranked on Quality, Stability, Value and Income — not growth).

Smaller markets (e.g. Helsinki) naturally return short lists — there are simply fewer companies that clear every gate.

Each stock must pass a set of hard gates (e.g. ROIC/margins, free cash flow, an uptrend filter; the defensive preset adds low beta, low volatility and a dividend), then the survivors are scored on the four factors shown — the four bars in each row show the breakdown, and the labels change per preset. No more than four stocks per sector are shown, so one hot industry can't dominate the list. Click How this screen works for the full criteria.

Click any ticker symbol to open its detail chart (price history, indicators, analyst consensus) without leaving the page — the same modal you get from Holdings and Watchlist. Use the Analyse icon (the same waveform used by the Analyse tab) to open a stock on the Analyse page instead, or + to add it to your watchlist. Open the full TradingView screener at the bottom to build your own custom filters.

Each symbol also carries the dip-buy signal dot described under Ticker detail chart above — green = entry setup, yellow = mixed, red = extended or breaking down, and a hollow dot when there isn't enough price history to judge. It answers a different question from the score beside it: the score rates the business, the dot rates the timing. Because the screen already requires price to be at or above its 200-day average, most rows are legitimately yellow or red — a great company is often red simply because it has run up. The green dots are the interesting ones: quality names that have pulled back without the trend breaking. The dots fill in a moment after the table, as each stock's price history loads.

Data freshness: results are cached for 30 minutes per market and preset (the line above the table shows "as of HH:MM"). The underlying numbers are fundamentals that update only when companies report (roughly quarterly), so a 30-minute cache is plenty — the list is effectively current as of the latest earnings.

This is an idea generator, not investment advice — a screen is the start of research, not a buy list. Always verify the numbers and the story before buying.

⚡ Day trading scans (high risk)

At the bottom of the Screener page, expand ⚡ Day trading scans for a separate set of intraday screens that surface today's unusual-volume movers — for building a short-term watchlist, not for long-term investing. They follow the same market selector at the top of the page, so switching to Tokyo or London re-runs them there:

  • Momentum — up on the day with heavy relative volume and enough dollar-volume to trade.
  • Gap & Go — names that gapped from the prior close on strong volume (the pre-open / opening-range setup).
  • Low-Float Runners — small-float stocks running hard on huge relative volume; the fastest movers and by far the riskiest.

Each row shows the score, factor bars, and the day-trading metrics that matter: Chg (today's move), Gap, RVol (relative volume), Turnover (liquidity), Float, and daily Volatility. Prices and turnover are shown in each stock's own currency. Clicking the ticker symbol, the Analyse icon and + all work the same as above. There is deliberately no signal dot here: that dot is a buy-the-dip signal built on a 200-day trend, which is the opposite premise to an intraday momentum scan. The line above the table shows which market is being scanned, when the scan was pulled ("as of HH:MM"), and a warning if that market is currently closed — day scans use a short 3-minute cache.

The cash thresholds behind each scan are set for the US market and converted to the selected market's currency, with the two liquidity floors scaled down for how much thinner that market is — applying a US dollar-volume bar literally returns nothing outside the biggest exchanges. Smaller markets still clear these gates far less often than the US does, so a short list (or an empty one) outside US hours is normal rather than a fault.

Day trading is high risk and most participants lose money. These scans run on delayed (~15 min) data with no real-time tape, Level 2, VWAP or news — strictly an idea generator. Always confirm on a live broker platform before trading.

Valuation page — is the market expensive?

The Valuation page shows long-horizon gauges that answer "is the market expensive vs. its own history?" — useful for setting expectations (stretched valuations historically mean lower long-run returns and bigger drawdowns), not for market timing. At the top, an overall verdict blends the indicators into a single read (Undervalued → Significantly overvalued).

  • Price vs. long-term trend — an index plotted (log scale) against an exponential regression of its own history, with ±1σ / ±2σ bands; the readout shows how far above/below trend prices sit. A region dropdown switches it between the US (S&P 500), Europe (Euro STOXX 50), Germany (DAX), France (CAC 40), UK (FTSE 100) and Japan (Nikkei 225). Non-US indices have shorter histories, so their trend is less robust.
  • Buffett Indicator — total US corporate equities as a % of GDP; Buffett's "best single measure" of overall valuation. US-only.
  • Q Ratio (Tobin's Q) — market value of US corporate equities ÷ their net worth at replacement cost; above ~1 means stocks cost more than the assets behind them. US-only.

Each gauge shows a σ (sigma = standard deviation) figure — how far the current reading is from its own historical average. Beyond ±2σ is genuinely extreme (≈95% of history sits inside that range). When the US is selected the verdict blends all three gauges; for other regions it uses the price-vs-trend gauge alone, because the Buffett Indicator and Q Ratio only exist for the US.

A contextual note ties the reading back to the Models page — e.g. when valuations look stretched it suggests phasing money in and leaning toward lower-risk models. The valuation data refreshes daily.

These are notoriously poor market-timing tools — valuations can stay stretched for years. Treat them as context for long-run expectations, not buy/sell signals. The macro gauges are US-equity metrics and don't map directly to euro-hedged or bond-heavy models. Not investment advice.

Options page — strategy builder

The Options page evaluates a multi-leg option position before you place it: what it pays at expiry, where it breaks even, the most you can make or lose, and how it reacts to price, time and volatility. Nothing here touches your portfolio — it's a scratchpad, saved only on this device.

  • Underlying — type a ticker and press Load. That fetches the spot price and, where Yahoo lists them, the real option chain: the strikes that actually exist for each expiry, and what they're quoted at. With no chain the page still works — set a spot, an expiry and a volatility, and every premium is calculated instead. Loading a different ticker also re-centres your strikes on the new price, so a collar built on a $300 stock becomes the same shape of collar on a $15 one rather than strikes that don't exist there.
  • Strategy presets — 14 common structures (long call/put, covered call, cash-secured put, protective put, collar, the four vertical spreads, straddle, strangle, iron condor, call butterfly). Each is tagged with the outlook it expresses — bullish, bearish, neutral, volatile or range-bound — and builds itself around the current price, snapping to real chain strikes when one is loaded. The highlighted tab always names what's on the table rather than what you last clicked: build a call and a put on the same strike by hand and Long Straddle lights up on its own, move a strike and the tab stays lit because it's still that strategy, and cross a bull call spread's two strikes and it relabels itself Bear Call Spread — which is what you'd have made. Something with no name in the list, like a naked short call or a ratio spread, simply lights nothing.
  • Legs — every row is editable, and you can add or remove legs freely to build something the presets don't cover. Qty is in contracts (or lots of Multiplier shares for a stock leg), so a covered call is 1 stock + 1 short call. Untick On to see what a leg contributes without deleting it. The Cash flow column shows money moving for that leg: negative means you pay (buying costs you a debit), positive means you receive (selling pays you a credit).
  • Premiums come from the first of these that's available: the midpoint of the chain's bid and ask, then that strike's last traded price, then a Black-Scholes calculation. Type your own to override — it's kept and labelled "your price"; clear the field to hand the leg back. ↻ Re-price resets every leg from the chain already loaded; to pull fresh prices, press Load again.
  • Starting over — Clear legs empties the legs but keeps the ticker and its loaded chain, so you can try a different structure on the same underlying. Reset (next to Load) clears everything back to an empty builder. Emptying the Ticker box by itself does nothing: that field is what Load reads, not a live setting, so the page keeps showing the underlying you last loaded until you load another one or press Reset.
  • When a leg needs a second look, the caption under its premium turns amber:
    • not on chain — nobody quotes that strike for this expiry, so the price is calculated rather than real. Usually a mistyped strike, or one left over from another underlying.
    • no premium — the calculation values the leg at zero. It's so far from the current price that it's worth nothing.
    • last · 96d ago — there was no live bid or ask, so the price is whatever that contract last actually traded at, 96 days ago. Outside market hours nearly every strike prices this way, and an old trade can be worth very different money today.
    A note above the results appears when two premiums can't both be true — a lower-strike put priced above a higher-strike one, say. That check makes no assumption about volatility, so when it fires the prices really are inconsistent, not merely unusual (see the example below).
  • Volatility (IV %) — implied volatility is how much movement a price implies, as an annual percentage. It's the only input you can't look up, so the page derives it: a leg priced from the chain shows the volatility implied by its own premium, marked implied, which keeps the Greeks describing the price in the same row. Default IV at the top is the fallback for strikes the chain doesn't price, taken from the loaded chain's at-the-money strike. Type your own volatility on a leg and that leg is priced from it instead — clear the field to go back to the market price.
  • Payoff at expiry — the stat strip gives net debit/credit, max profit, max loss, breakevens, probability of profit and risk/reward; the chart plots profit and loss against the underlying price, with a dashed line at today's spot. If the position can't lose money in the model, the third card reads Min profit instead of Max loss — which is nearly always a sign that a leg is priced where no market would fill you, not a free lunch.
  • Greeks — per leg and for the net position, already scaled by size and direction. Delta is your share-equivalent exposure, gamma how fast delta moves, theta what a day of decay costs (or earns, if you're short), vega the hit from a 1-point move in implied volatility, and rho the sensitivity to interest rates.

A worked example — a result that was too good. A QQQ spread with the stock at $661.73: buy the 662 put, sell the 640 put. The page reported a $19 credit, $2,219 maximum profit and a 100% chance of profit — money for nothing. The giveaway was in the legs: the 640 put was priced at $12.72 and the 662 put at $12.53. A put at a lower strike can never be worth more than one at a higher strike, so those two prices could not both be real, and the $19 "credit" was exactly the size of that impossibility. Both legs were captioned last, meaning no live quotes — the market was shut, and the two trades happened at different times of the previous day. Priced properly the same spread costs about $440–840, and the most it can lose is what you pay.

Max loss "Unlimited" is not a display quirk — a naked short call really does have uncapped downside, and the page says so rather than showing a comfortable-looking number. Probability of profit is the model's own estimate; real markets have fatter tails than it assumes, and a high chance of a small gain can still be a bad trade, so always read it beside max loss.

The How these numbers are calculated link at the bottom of the page spells out the method and its limits — in particular that this is European-style, at-expiry maths that ignores early assignment, dividends, commissions, margin and the volatility smile.

Options can lose more than you put in, and short legs can lose far more. This is an educational calculator, not trade advice and not an order ticket — verify every strike, premium and expiry on your broker's platform before trading. Chain data here can be delayed or thin.

Market Sentiment

Found on the Dashboard (below the allocation donut). Derived from the VIX (CBOE Volatility Index) — shows the raw VIX reading, a status label (Calm → Neutral → Fear → Extreme Fear), and the change vs the previous VIX reading. The VIX is an inverse gauge: a low value (under 15) signals market calm; a high value (35+) signals fear/panic.

Rebalancing

Click Rebalance in the Holdings panel header. Set a target % per ticker — the app shows how many whole shares to buy or sell to reach those weights. Buy counts are floored, sell counts are ceiled. Targets persist between sessions. Tickers you've targeted but don't yet hold (e.g. loaded from a Model Portfolio on the Models page) appear too, so you can see the buys needed to build the position from scratch.

Currencies & FX

Each lot stores its own cost currency. Live FX rates are fetched and cached for 12 hours. Set your display currency in Settings.

Analyst consensus

Register free at finnhub.io, copy your API key, and paste it into Settings → Finnhub API Key. Once set, analyst ratings are fetched automatically on page load, after adding a new lot, and after Refresh — appearing as a second coloured dot in the holdings table and a consensus bar in the ticker detail modal. Ratings are re-fetched fresh each time you open the site (and reused for the rest of that session). Only US-listed tickers are covered by Finnhub's free tier; tickers with exchange suffixes (e.g. .DE, .L) are skipped automatically.

Data freshness

Quotes auto-refresh when stale. Use Refresh on the Dashboard to force an immediate update. Quote Freshness Window in Settings controls cache duration (5 min / 15 min / 1 h / 6 h).

App version. The footer shows the build st-ox is running, e.g. build 2026-07-25T11:05Z. If you leave a tab open for a long time it keeps running the version it loaded, so a new release won't reach you until you reload. When a newer one is available that footer text turns amber and reads new version — reload; click it to pick up the latest. It's checked when you come back to the tab, so there's nothing to do otherwise.

Settings

Display

  • Display Currency — all values converted to this currency.
  • Default Cost Currency — pre-filled in the Add Lot form.
  • Quote Freshness Window — cache duration before a quote is re-fetched.
  • Appearance — switch between Dark (default) and Light theme; also toggleable from the sidebar. Saved on this device.
  • Finnhub API Key — enables analyst consensus (free at finnhub.io).
  • Import from this browser — migrate old localStorage data into your account.
  • Clear All Data — permanently deletes your holdings, cash, realized trades, watchlists and cached price history from the server, while keeping your account and preferences so you can start again from empty.
  • Danger zone → Delete account — erases your account and everything tied to it, including your email address, settings and any feedback you've sent. Requires your password, takes effect immediately, and cannot be undone.

Account

  • Change email — requires current password.
  • Change password — minimum 8 characters, requires current password.

Supported exchanges & tickers

Use Yahoo Finance ticker format for adding holdings. Common formats:

  • AAPL — US (Nasdaq/NYSE)
  • BMW.DE — Germany (Xetra)
  • BARC.L — UK (London, GBp)
  • EFT1T.TL — Estonia (Nasdaq Tallinn)
  • GRD1R.RI — Latvia (Nasdaq Riga)
  • TEO1L.VS — Lithuania (Nasdaq Vilnius)
  • NOKIA.HE — Finland (OMX Helsinki)
  • ERIC-B.ST — Sweden (OMX Stockholm)

The Analyse button converts Yahoo Finance tickers to TradingView exchange format automatically. Note that some European tickers use different symbols on TradingView — if the chart shows "symbol not found", search within the TradingView chart widget directly.

Sell Position
Buy Position
Rebalance Portfolio
Set target allocations — app shows how many shares to buy or sell.
Base = portfolio total (incl. cash), fixed for this session so trades don't shift the targets. after adding cash.
Ticker Current Current % Target % Diff Action
Trading Journal
When and in what you invested, what each sale produced, and how your trading is doing overall. Display-currency amounts use current FX.
Deposit Cash