Markets & Data

This page describes the markets available in Quantlens, how the price data is structured, and how to choose the right timeframe for your strategy.



Available markets

Quantlens provides access to 8 markets on all plans. The universe is drawn from liquid, exchange-listed instruments across three asset classes:

Asset class

Markets

Notes

Equities

NASDAQ stocks

Large and mid-cap US-listed equities. Universe filtered by liquidity.

Crypto

BTC/USD, ETH/USD, SOL/USD, BNB/USD

Spot prices from major exchanges.

ETFs / Indices

SPY, QQQ, GLD

Broad market and sector ETFs. Useful for single-asset strategy testing.

Note

All prices are adjusted for splits and dividends (for equities) and represent the spot price (for crypto). No futures or leverage data is included.


Data coverage

Market

Data from

Notes

NASDAQ stocks

1998

~3,000 liquid symbols at peak. Older periods have fewer symbols.

SPY

1993

Full history since inception.

QQQ

1999

Full history since inception.

GLD

2004

Full history since inception.

BTC/USD

2013

From first reliable exchange data.

ETH/USD

2015

From first reliable exchange data.

SOL/USD

2020

Limited history — use with caution.

BNB/USD

2017

From Binance listing.

Warning

Strategies tested on crypto assets have less than 10 years of history. Statistical conclusions drawn from short periods are less reliable. See Avoiding Overfitting for guidance.


OHLCV data structure

Every bar (candle) in the dataset contains five values:

Field

Description

Open

First traded price of the bar period.

High

Highest traded price during the bar period.

Low

Lowest traded price during the bar period.

Close

Last traded price of the bar period. Used by most indicators.

Volume

Total shares (equities) or coins (crypto) traded during the bar period.

Most indicators in Quantlens compute on the Close price by default. Volume-based indicators (OBV — On Balance Volume, MFI — Money Flow Index, CMF — Chaikin Money Flow, ADOSC — Accumulation/Distribution Oscillator, VWMA — Volume-Weighted Moving Average) use both Close and Volume. Volatility indicators (ATR — Average True Range, NATR — Normalized ATR) use High, Low, and Close.


Choosing a timeframe

The timeframe (candle interval) determines how much historical data is visible and how frequently your strategy can act.

Timeframe

Bars/year

Characteristics

1 min

~120,000

Very noisy. Requires fast execution. Not suited for daily-rebalance strategies.

5 min

~24,000

Still noisy. Intraday only.

15 min

~8,000

Better signal-to-noise than 1m/5m.

1 hour

~2,000

Good for intraday swing strategies.

4 hour

~500

Bridges intraday and daily.

1 day

~252

Most widely used for systematic strategies. Clean signal, good data availability.

Recommendations for beginners: Start with the 1-day timeframe. It has the most data history, the lowest noise, and the lowest transaction costs.


Equity universe filtering

Not all NASDAQ-listed stocks are included in the backtest universe. The data provider applies liquidity filters to avoid micro-cap and illiquid stocks:

  • Minimum average daily volume

  • Minimum market capitalisation

  • Listed on a major exchange (NASDAQ / NYSE)

This means the universe includes roughly 500–1,500 tradeable symbols at any given time, growing as more companies listed over the years.

Note

Stocks that were delisted (due to bankruptcy, merger, or going private) are included in the data up to their delisting date. This partially mitigates survivorship bias. See Backtest Limitations for a full discussion.


Index data

The Index Value, Index Weekly Close, and Index Weekly Quantile blocks draw from one of two benchmark indices, configurable in the Config Block block:

Index

Description

NASDAQ

NASDAQ Composite — broad measure of all NASDAQ-listed stocks. Good benchmark for tech-heavy strategies.

SPY

S&P 500 ETF — 500 largest US companies by market cap. Better benchmark for diversified US equity strategies.

Use the index as a market filter to avoid holding positions during broad market downtrends. A common rule: only hold positions when Index Value > SMA(200).