global-stock-data is a comprehensive financial data pipeline designed for AI coding assistants to access US and Hong Kong market data. It implements a 13-layer architecture that fetches data from 11 diverse sources including exchanges (CBOE), regulatory bodies (SEC, FINRA), financial data providers (Eastmoney, Yahoo Finance), and macroeconomic sources (Treasury, CFTC). The system normalizes data from various formats (JSON, CSV, text) into consistent schemas for real-time quotes, historical prices, technical indicators, fundamentals, options data, SEC filings, short volume, and macroeconomic indicators. Unlike a traditional application, it functions as a reusable data toolkit where each layer can be independently accessed to solve specific financial data acquisition problems.
pandas_market_calendars is a Python library that provides market and exchange trading calendars for over 50 global financial exchanges, including equities, futures, and OTC markets. It generates accurate trading schedules (open/close times, holidays, early closes, late opens, and breaks) as pandas DatetimeIndex objects, enabling developers and quantitative analysts to align time series data, backtest strategies, and check market status. The library is a fork of Quantopian/Zipline's exchange_calendars module, extended with additional calendars, utility functions, and source documentation. Architecturally, the library uses a base MarketCalendar class with a metaclass-based registry pattern that automatically registers all calendar subclasses by name and alias. Individual exchange calendars (e.g., NYSE, CME, LSE, JPX) are implemented as subclasses in the `calendars/` directory, with holiday rules defined in separate `holidays/` modules. Market times are stored in a ProtectedDict (immutable dictionary) to prevent accidental modification. The library also provides a mirror module that wraps calendars from the external `exchange_calendars` package, ensuring backward compatibility. Key entry points include `get_calendar()` to retrieve a calendar instance, `date_range()` to generate intraday timestamps, `merge_schedules()` to combine multiple exchange schedules, and `mark_session()` to classify timestamps into pre-market, regular, and post-market sessions. The library depends on pandas for data structures and timezone handling via zoneinfo, and optionally on exchange-calendars for mirrored calendars. It is designed for production use with extensive test coverage, CI/CD pipelines, and semantic versioning. The library's primary data flow is static: holiday rules and market time definitions are hardcoded in Python code and updated via new releases. There is no runtime data fetching, which ensures reproducibility but requires manual updates when exchanges change their calendars. The changelog shows frequent updates for holiday corrections and new exchange support, indicating active maintenance.
This repository is a curated list (awesome-list) of open-source quantitative finance libraries, packages, and resources. It provides a structured README.md organized by category, with inline language tags, and a pipeline that parses the list, enriches it with GitHub metadata (stars, last commit dates), and generates a static website deployed to GitHub Pages. The repo also includes automated tooling for pull-request review: a validation script that checks entry format, section placement, URL security, duplicate detection, and a full CI-driven PR review workflow. The core logic resides in parse.py (multi-threaded GitHub API enrichment), site/generate.py (static site generator), scripts/validate_readme.py (entry validation), and scripts/review_pr.py (automated PR review with offline URL reachability checks and cross-PR duplicate detection). The project is primarily a reference list, not an application or data pipeline, but it includes high-quality supporting tooling for maintainers and contributors.
yfinance is a mature Python library that provides programmatic access to Yahoo Finance market data. It is primarily an application/library, not a data research project, though it includes data repair and cleaning utilities. The library exposes a high-level API (Ticker, download, Search, Lookup, Market, Screener) that fetches historical prices, fundamentals, financial statements, holders, analysis, and more from Yahoo's various JSON endpoints. It handles Yahoo's quirks (cookie/crumb authentication, timezone issues, data errors) and includes a sophisticated price repair pipeline that detects and corrects common data anomalies like 100x unit mixups, bad stock splits, zero values, and dividend double-counting. The architecture is monolithic with modular scrapers and utilities. It has extensive test coverage (though currently failing in CI), active maintenance, and a large user base (25k+ stars). The codebase is well-structured with reusable utility functions, but some legacy artifacts (Travis CI, disabled pytest workflow) and heavy reliance on heuristic repair logic introduce medium technical drift.
This repository powers the personal finance blog 'OfDollarsAndData.com'. It is primarily a data research collection, consisting of hundreds of R scripts that import, clean, and analyze financial and economic datasets to produce publication-ready charts, tables, and interactive calculators for blog posts. The data lineage is clear: raw data is downloaded or read from external sources (Shiller S&P 500, FRED, BLS, Survey of Consumer Finances, YCharts, etc.) in import/ scripts, transformed and saved as RDS files in build/ scripts, and then consumed by analysis/ scripts that generate plots with a consistent ggplot theme. The repository also includes a webdev folder containing a WordPress theme with custom widgets and calculator embedding logic. While the codebase is not a packaged application and lacks testing or CI, the analysis is thorough and well-structured for its purpose. The hybrid nature includes both data research R scripts and web development PHP/JS code, but the dominant character is data research.
This repository is a Python client library for the Alpha Vantage financial data API. It provides synchronous and asynchronous wrappers for accessing stock/cryptocurrency time series, technical indicators, foreign exchange rates, commodities, economic indicators, fundamental data, options, and news sentiment. The library is designed as a straightforward SDK with a decorator-based architecture that handles API key injection, URL construction, and output formatting (JSON, pandas DataFrame, CSV). The codebase includes a comprehensive test suite with mock data and integration tests. However, it exhibits technical drift: declared support for Python 2.7 (EOL), an outdated CI configuration (Travis on Ubuntu Xenial), a hardcoded version number in documentation that differs from the library version, and duplication of core logic between synchronous and async modules. The library is functional and widely used, but not exemplary in terms of modern Python practices or maintainability.
This repository is a multi-language collection of client libraries, code examples, and integration wrappers for the Trading Economics API — a service providing global economic indicators, financial market data, calendar events, forecasts, and specialized datasets (World Bank, Comtrade, Eurostat, Federal Reserve). The code spans 10+ programming languages (Python, R, Ruby, Go, Java, C#, PHP, Rust, TypeScript, Google Apps Script, Tableau WDC, MATLAB, MetaTrader) and demonstrates how to authenticate, request, parse, and display data from the API. The architecture is not a single application but a set of independent, language-specific examples and lightweight SDKs. Entry points include interactive CLIs (Ruby, Python), a Google Sheets add-on, a Tableau Web Data Connector, and standalone scripts for each data endpoint. The primary data flow is HTTP GET requests to api.tradingeconomics.com with an API key, parsing JSON or XML responses. External dependencies are minimal per language (e.g., httr for R, requests for Python, HTTParty for Ruby). The repository serves as both documentation and reusable boilerplate for integrating Trading Economics data into various platforms.