Quant.Explorer (quant v0.1.0-alpha.1)
Quant.Explorer - High-performance standardized financial data API for Elixir.
Fetch financial and cryptocurrency data from multiple providers with universal parameters and identical output schemas for seamless analysis.
Key Features
- Universal Parameters: Same parameters work with ALL providers
- Identical Schemas: All DataFrames have consistent column structures
- High Performance: Built on Explorer's Polars backend
- Type Safety: Strong typing and validation throughout
- Multi-Provider: Yahoo Finance, Alpha Vantage, Binance, CoinGecko, Twelve Data
Quick Start
# Universal parameters work with any provider
{:ok, df} = Quant.Explorer.history("AAPL",
provider: :yahoo_finance, interval: "1d", period: "1y")
{:ok, df} = Quant.Explorer.history("BTCUSDT",
provider: :binance, interval: "1d", period: "1y")
# All DataFrames have identical schemas - combine seamlessly
DataFrame.concat_rows(df1, df2)Standardized Parameters
:provider- Data provider (:yahoo_finance, :alpha_vantage, :binance, :coin_gecko, :twelve_data):interval- Standard intervals: "1m", "5m", "15m", "30m", "1h", "1d", "1w", "1mo":period- Standard periods: "1d", "5d", "1mo", "3mo", "6mo", "1y", "2y", "5y", "10y", "max":limit- Number of data points (1-5000):start_date/:end_date- Date range (Date, DateTime, or ISO string):currency- Base currency: "usd", "eur", "btc", "eth":api_key- API key for authentication
Summary
Functions
Gets configuration information for the library.
Alias for history/2. Deprecated - use history/2 directly.
Fetches standardized historical data with universal parameters.
Fetches company/asset information. Note: Info structure varies between providers and is not fully standardized.
Lists all available providers and their status.
Fetches standardized real-time quotes with universal parameters.
Searches for symbols with standardized results.
Lists supported currencies for crypto providers.
Lists supported standard intervals.
Lists supported standard periods.
Types
Functions
@spec config() :: map()
Gets configuration information for the library.
@spec fetch(symbol() | symbols(), options()) :: {:ok, Explorer.DataFrame.t()} | {:error, term()}
Alias for history/2. Deprecated - use history/2 directly.
@spec history(symbol() | symbols(), options()) :: {:ok, Explorer.DataFrame.t()} | {:error, term()}
Fetches standardized historical data with universal parameters.
All providers return identical DataFrame schemas with these columns:
symbol,timestamp,open,high,low,close,volumeadj_close,market_cap,provider,currency,timezone
Examples
# Same parameters work with any provider
{:ok, df} = Quant.Explorer.history("AAPL", provider: :yahoo_finance, interval: "1d", period: "1y")
{:ok, df} = Quant.Explorer.history("BTCUSDT", provider: :binance, interval: "1d", period: "1y")
# Combine data from multiple providers seamlessly
DataFrame.concat_rows(df1, df2)
Fetches company/asset information. Note: Info structure varies between providers and is not fully standardized.
@spec providers() :: map()
Lists all available providers and their status.
@spec quote(symbol() | symbols(), options()) :: {:ok, Explorer.DataFrame.t()} | {:error, term()}
Fetches standardized real-time quotes with universal parameters.
All providers return identical DataFrame schemas with these columns:
symbol,price,change,change_percent,volume,high_24h,low_24hmarket_cap,timestamp,provider,currency,market_state
@spec search(String.t(), options()) :: {:ok, Explorer.DataFrame.t()} | {:error, term()}
Searches for symbols with standardized results.
All providers return identical DataFrame schemas with these columns:
symbol,name,type,exchange,currency,countrysector,industry,market_cap,provider,match_score
@spec supported_currencies() :: [String.t()]
Lists supported currencies for crypto providers.
@spec supported_intervals() :: [String.t()]
Lists supported standard intervals.
@spec supported_periods() :: [String.t()]
Lists supported standard periods.