Home / Libraries / ML4T Data / Docs
ML4T Data
ML4T Data Documentation
Unified market data acquisition from 19+ providers
Skip to content

Quickstart

Get market data in under 5 minutes.

Basic Usage

from ml4t.data.providers import YahooFinanceProvider

# Create a provider
provider = YahooFinanceProvider()

# Fetch OHLCV data
df = provider.fetch_ohlcv(
    symbol="AAPL",
    start="2024-01-01",
    end="2024-12-31",
    frequency="daily"
)

print(df.head())

Multiple Symbols (Async)

For faster multi-symbol fetches, use async batch loading:

import asyncio
from ml4t.data.managers.async_batch import async_batch_load
from ml4t.data.providers import YahooFinanceProvider

async def main():
    async with YahooFinanceProvider() as provider:
        df = await async_batch_load(
            provider,
            symbols=["AAPL", "MSFT", "GOOGL", "AMZN", "META"],
            start="2024-01-01",
            end="2024-12-31",
        )
    return df

df = asyncio.run(main())
print(f"Fetched {len(df)} rows for {df['symbol'].n_unique()} symbols")

CLI Usage

# Fetch data via command line
ml4t-data fetch AAPL MSFT GOOGL \
    --start 2024-01-01 \
    --provider yahoo \
    --output ~/data

# Update all datasets from config
ml4t-data update-all -c ml4t-data.yaml

Configuration File

Create ml4t-data.yaml for automated updates:

storage:
  path: ~/ml4t-data

datasets:
  sp500:
    provider: yahoo
    symbols_file: sp500.txt
    frequency: daily
    start_date: 2020-01-01

Then run:

ml4t-data update-all -c ml4t-data.yaml

Next Steps