API Reference¶
High-Level APIs¶
These are the primary interfaces you'll use for most tasks:
- Sources - Fetch data from Yahoo Finance, Intrinio, Interactive Brokers, ArcticDB, and Datasets
- Storage - Persist data to ArcticDB, Datasets, and file Store
- Analysis Drivers - Analysis calculations with Hamilton DAGs
- Settings - Configuration management
Low-Level APIs¶
For advanced use cases requiring fine-grained control:
- Interactive Brokers - Direct IB TWS/Gateway operations for streaming data
- ArcticDB Wrapper - Direct ArcticDB operations
- Intrinio Wrapper - Direct Intrinio SDK access
- Dataset Management - Direct dataset storage and retrieval
- AWS Integration - AWS utilities for SSM, Secrets Manager, S3, DynamoDB
Module Overview¶
chronos_lab.analysis.driver¶
High-level driver for composable time series analysis:
AnalysisDriver- Hamilton Driver wrapper for analysis calculationsdetect_anomalies()- Anomaly detection with Isolation Forest
chronos_lab.arcdb¶
Low-level ArcticDB wrapper (advanced use):
ArcDB- Class for direct ArcticDB operationsbatch_store()- Store multiple symbolsbatch_read()- Read multiple symbolsbatch_update()- Update existing symbols
chronos_lab.aws¶
Low-level AWS integration utilities (advanced use):
aws_get_parameters_by_path()- Fetch SSM parameters by pathaws_get_parameters()- Fetch specific SSM parametersaws_get_secret()- Retrieve Secrets Manager secretparse_arn()- Parse AWS ARN into componentsaws_get_resources()- Query resources by tagsaws_s3_list_objects()- List S3 bucket objectsDynamoDBDatabase- Class for DynamoDB operations
chronos_lab.dataset¶
Low-level dataset management (advanced use):
Dataset- Class for direct dataset operationsget_dataset()- Retrieve dataset as dictionaryget_datasetDF()- Retrieve dataset as DataFramesave_dataset()- Save dataset to local or DynamoDBdelete_dataset_items()- Remove items from dataset
chronos_lab.ib¶
Low-level Interactive Brokers wrapper (advanced use):
get_ib()- Get IBMarketData singleton instanceIBMarketData- Singleton class for IB TWS/Gateway operationsconnect()/disconnect()- Connection managementsubscribe_bars()/subscribe_bars_async()- Subscribe to streaming barsget_bars()- Retrieve subscribed bar datasub_ticks()/unsub_ticks()- Manage tick subscriptionsget_ticks()- Retrieve tick dataget_hist_data()/get_hist_data_async()- Historical data retrievalsymbols_to_contracts()/symbols_to_contracts_async()- Contract qualificationlookup_cds()/lookup_cds_async()- Contract details lookupmap_interval_to_barsize()- Convert interval to IB bar sizecalculate_ib_params()- Calculate IB API parametershist_to_ohlcv()- Convert historical data to OHLCV format
chronos_lab.intrinio¶
Low-level Intrinio SDK wrapper (advanced use):
Intrinio- Class for direct Intrinio SDK accessget_all_securities()- Fetch securities listsget_security_stock_prices()- Fetch price data
chronos_lab.settings¶
Configuration management:
Settings- Pydantic model for application configurationget_settings()- Get cached settings instance
chronos_lab.sources¶
High-level functions for fetching OHLCV time series data:
ohlcv_from_yfinance()- Fetch data from Yahoo Financeohlcv_from_intrinio()- Fetch data from Intrinio APIohlcv_from_ib()- Fetch historical data from Interactive Brokersohlcv_from_ib_async()- Fetch historical data from IB asynchronouslyohlcv_from_arcticdb()- Retrieve stored data from ArcticDBsecurities_from_intrinio()- Fetch securities lists from Intrinio
chronos_lab.storage¶
High-level functions for persisting data:
ohlcv_to_arcticdb()- Store OHLCV data in ArcticDBto_dataset()- Save datasets to local JSON or DynamoDBto_store()- Store files to local filesystem and/or S3
Data Format Conventions¶
All OHLCV data in chronos-lab follows these conventions:
Column Names¶
date: UTC timezone-aware datetimesymbol: Ticker symbolopen: Opening pricehigh: High pricelow: Low priceclose: Closing pricevolume: Trading volume
Index Structure¶
MultiIndex DataFrame (default):
# (date, symbol) MultiIndex
open high low close volume
date symbol
2024-01-17 05:00:00+00:00 AAPL 182.16 183.09 180.89 182.68 52242800
MSFT 388.39 397.11 385.17 396.95 34049200
Dictionary Format (when output_dict=True):
Wide/Pivoted Format (when pivot=True):