# Markets & data

> The asset classes you can backtest (crypto, stocks, forex and metals) and how a symbol resolves to a data venue.

Source: https://docs.texttoquant.com/reference/markets

---

TextToQuant is not crypto-only. The same engine backtests crypto, equities, forex and precious
metals, you name the symbol in your query and the engine classifies it and routes it to the right
data venue automatically.

## Asset classes

| Class | How to name it | Notes |
| --- | --- | --- |
| Crypto (spot) | `BTC`, `ETH`, `SOL`, or a full pair `BTCUSDT` / `BTC/USDT` | A bare base resolves to its USDT pair on the first venue that lists it (Binance → Bybit → KuCoin → Bitget). Tokens with no major-exchange listing still resolve to TradingView's `CRYPTO:` aggregate index |
| Crypto (futures / perps) | the same symbol, run on the futures market | Funding, open interest and forced-liquidation modelling live here only; see below |
| Stocks | a ticker like `AAPL`, `TSLA`, `SPY`, or exchange-qualified `NASDAQ:AAPL` | 1-5 letter tickers, and dotted share classes like `BRK.B`, route to the equities data path |
| Forex | a 6-letter pair like `EURUSD`, `GBPJPY`, or `EUR/USD` | Both halves must be real currencies, that's what separates FX `EURUSD` from the crypto stablecoin pair `EURUSDT` |
| Metals | `XAU`, `XAG`, `XPT`, `XPD`, or plain `gold` / `silver` / `platinum` / `palladium` | Gold, silver, platinum and palladium against USD |

## Naming a symbol in a query

Write the symbol straight into the sentence. The parser and engine work out the asset class for you,
so a stock strategy reads exactly like a crypto one.

<RunInTerminal query="Buy AAPL when the 50 EMA crosses above the 200 EMA, exit on the opposite cross, 1d last 2 years" />

<RunInTerminal query="Buy gold when RSI(14) crosses above 30, SL 2%, TP 4%, 1d last 2 years" />

To force a specific venue or resolve an ambiguous ticker, qualify it with a prefix: `NASDAQ:AAPL`,
`BINANCE:BTCUSDT`, `FX:EURUSD`, `OANDA:XAUUSD`.

<Callout variant="info" title="Spot vs futures">
  Crypto runs on the spot market by default; ask for `futures` or a `perp` to run the derivatives
  book (and if a spot pair isn't listed, the engine falls back to futures automatically). The market
  you land on shows up in the parsed attributes before you run.
</Callout>

## What's crypto-only

<Callout variant="warning" title="Derivatives data is crypto-only">
  Funding rate, open interest, aggregated OI/funding and the forced-liquidation model apply to crypto
  (and crypto futures) only. A stock, forex or metals backtest has none of them, referencing them in
  such a query won't produce a signal.
</Callout>

## Data & history

- **Crypto candles** come from the major centralized venues (Binance, Bybit, KuCoin, Bitget); a coin
  registry lets even unlisted or DEX-only tokens classify as crypto.
- **Stocks, forex and metals** are served through the TradingView data oracle, on the same path (with
  session-gap tolerance and calendar-aware warm-up).
- **History depth varies** by symbol, timeframe and your [plan](/docs/concepts/plans-and-credits).
  Monthly bars use true calendar closes, and indicators are seeded with warm-up bars before your
  start date so a 200-period average is already correct on bar 1 (see the
  [execution model](/docs/concepts/execution-model)).

Related: [query shape](/docs/start/query-shape), [indicators](/docs/reference/indicators),
[plans & credits](/docs/concepts/plans-and-credits).
