Getting started

Installation

Install the base local package from the repository root:

python -m pip install -r requirements.txt
python -m pip install -e .

Install Kafka support:

python -m pip install -r requirements-kafka.txt

Because the package includes a Rust extension, local editable installs rebuild the compiled module. Restart notebooks after reinstalling.

Basic usage

from fincore.data import DataClient

client = DataClient()
client.search_instruments("apple", limit=5)

Market context

DataClient defaults to the US market:

client = DataClient()

Choose Australia or India:

au = DataClient(market="AU")
india = DataClient(market="IN")

au.search_instruments("bhp", limit=5)
india.search_instruments("reliance", limit=5)

Fetch daily bars:

bars = client.fetch_bars("Apple", "2024-01-01", "2024-01-10")
bars[:2]

Fetch Australian or Indian equities:

au_bars = DataClient(market="AU").fetch_bars("BHP", "2024-01-01", "2024-01-10")
in_bars = DataClient(market="IN").fetch_bars("Reliance", "2024-01-01", "2024-01-10")

Fetch intraday bars:

bars = client.fetch_bars(
    "AAPL",
    "2024-01-02 09:30",
    "2024-01-02 16:00",
    interval="5m",
)

Replay historical data as a stream:

async for event in client.replay_bars("Apple", "2024-01-01", "2024-01-05"):
    print(event)

Poll latest delayed bars:

async for event in client.stream_bars(["Apple"], interval="1m", lookback="1d"):
    print(event)