Institutional-grade async financial data pipeline with Parquet caching, multi-provider fallback, and WebSocket streaming.
- ⚡ Async Architecture - Non-blocking I/O with
asyncioandccxt.async_support - 💾 Parquet Caching - High-performance local cache with smart data merging
- 🔄 Smart Fallback - Auto-switch providers on failure with health tracking
- 📊 Pydantic Models - Type-safe Candle, Tick, and MarketMetadata schemas
- 🔌 WebSocket Streaming - Real-time tick and candle subscriptions
- 🌍 Multi-Provider - Dukascopy (Forex), Binance (Crypto), Alpaca (Stocks)
pip install findaWith Alpaca support:
pip install finda[alpaca]import asyncio
from finda import Finda
async def main():
f = Finda()
df = await f.get_candles("EUR/USD", "1m", "2024-01-01", "2024-01-02")
print(df)
asyncio.run(main())uvicorn main:app --reloadEndpoints:
GET /ohlcv- OHLCV candles with cachingGET /tick- Tick-level Bid/Ask dataGET /markets- Provider health & available symbolsGET /cache/stats- Cache hit/miss statistics
from finda import fetch_unified_ohclv
o, h, l, c, v, t = fetch_unified_ohclv("EUR/USD", "1m", "2024-01-01", "2024-01-02")Create .env file:
ALPACA_API_KEY=your_key
ALPACA_SECRET_KEY=your_secret
CACHE_DIR=.finda_cache
LOG_LEVEL=INFO| Provider | Asset Class | Data Types |
|---|---|---|
| Dukascopy | Forex | OHLCV, Bid/Ask Ticks |
| Binance | Crypto | OHLCV, Trades |
| Alpaca | Stocks | OHLCV, Trades |
MIT