Skip to main content

A unified financial data interface and analysis toolkit for CN/HK/US markets.

Project description

Yquoter

PyPI TestPyPI Yquoter CI Status: Alpha Join Discord License

Yquoter Social Banner

Yquoter: Your universal cross-market quote fetcher. Fetch A-shares, H-shares, and US stock prices easily via one interface.


๐ŸŒŸ Major Update: Object-Oriented API

From v0.3.0, all core operations are now methods of the Stock class.

๐Ÿ†• Object-Oriented Design

# e.g.
from yquoter import Stock

# New chained style
df = Stock("AAPL").get_history(start_date="2023-01-01")

โš ๏ธ Compatibility Notice

  • Old functions still work (get_stock_history, get_ma_n)
  • Deprecated - will be removed in v1.0.0

๐Ÿง  Project Info

  • Version: 0.3.0

Yquoter is developed by the Yquoter Team, co-founded by four students from SYSU and SCUT.

Project Lead: @Yodeesy
Core Contributors: @Sukice, @encounter666741, @Gaeulczy

The first version (v0.1.0) was completed collaboratively in 2025.


๐Ÿ“ฆ Installation

## Installation Options
# Minimal:
pip install yquoter
# With Tushare Module
pip install yquoter[tushare]
# With Plotting
pip install yquoter[plotting]
# Full install
pip install yquoter[all]

๐Ÿ“‚ Project Structure

This is a high-level overview of the Yquoter package structure:

Yquoter/
โ”œโ”€โ”€ src/ 
โ”‚   โ””โ”€โ”€ yquoter/
โ”‚       โ”œโ”€โ”€ __init__.py             # Exposes the main API interfaces (e.g., get_quotes)
โ”‚       โ”œโ”€โ”€ reporting.py            # Generate reports for stocks
โ”‚       โ”œโ”€โ”€ datasource.py           # Unified interface for all data fetching sources
โ”‚       โ”œโ”€โ”€ tushare_source.py       # A module for Tushare users, requiring activation
โ”‚       โ”œโ”€โ”€ spider_source.py        # Default data source using internal web scraping
โ”‚       โ”œโ”€โ”€ spider_core.py          # Core logic and mechanism for the internal spider
โ”‚       โ”œโ”€โ”€ config.py               # Manages configuration settings (tokens, paths)
โ”‚       โ”œโ”€โ”€ models.py               # Offer a type-safe and intuitive API
โ”‚       โ”œโ”€โ”€ indicators.py           # Utility for calculating technical indicators
โ”‚       โ”œโ”€โ”€ logger.py               # Logging configuration and utilities
โ”‚       โ”œโ”€โ”€ cache.py                # Manages local data caching mechanisms
โ”‚       โ”œโ”€โ”€ utils.py                # General-purpose utility functions
โ”‚       โ””โ”€โ”€ configs/
โ”‚           โ”œโ”€โ”€ mapping.yaml        # Mapping for Data & configs
โ”‚           โ”œโ”€โ”€ standard.yaml       # Yquoter's data standard
โ”‚           โ””โ”€โ”€ dictionary.yaml     # Report's standard words
โ”‚
โ”œโ”€โ”€ examples/
โ”‚   โ””โ”€โ”€ basic_usage.ipynb # Detailed usage examples in Jupyter Notebook
โ”‚
โ”œโ”€โ”€ assets/               # Non-code assets (e.g., logos, screenshots for README)
โ”œโ”€โ”€ temp/                 # Temporary files for test (ignored by Git)
โ”œโ”€โ”€ .cache/               # Cache files (ignored by Git)
โ”œโ”€โ”€ pyproject.toml        # Package configuration for distribution (PyPI)
โ”œโ”€โ”€ requirements.txt      # Declaration of project dependencies
โ”œโ”€โ”€ LICENSE               # Apache 2.0 Open Source License details
โ”œโ”€โ”€ README.md             # Project documentation (this file)
โ”œโ”€โ”€ .gitignore            # Files/directories to exclude from version control
โ””โ”€โ”€ .github/workflows/ci.yml  # GitHub Actions workflow for Continuous Integration

๐Ÿš€ Core API Reference

The Yquoter library exposes a set of standardized functions for data acquisition and technical analysis.

For detailed descriptions of all function parameters (e.g., market, klt, report_type), please refer to the dedicated Parameters Reference.

๐Ÿ“ Note: Yquoter internally integrates and standardizes external data sources like Tushare. This means Tushare users can leverage Yquoter's unified API and caching mechanisms without dealing with complex native interface calls. To learn more about the underlying data source, visit the Tushare GitHub repository.

Returns: pandas.DataFrame

Stock Class Methods Reference (Optimized for O-O)

unction Description Primary Parameters Returns Notes
get_history Fetch historical OHLCV (K-line) data for a date range. start_date, end_date, klt, fqt, fields('basic' or 'full') DataFrame (OHLCV) These parameters define the data range and frequency.
get_realtime Fetch the latest trading snapshot (real-time quotes). fields (optional) DataFrame (Realtime Quotes) The stock is determined by the instance's code.
get_factors Fetch historical valuation/market factors (e.g., PE, PB). trade_date DataFrame (Factors) trade_date specifies the day for the factor data.
get_profile Fetch basic profile information (company name, listing date, industry). None DataFrame (Profile) Requires no parameters; uses the object's stored code.
get_financials Fetch fundamental financial statements (e.g., Income Statement, Balance Sheet). end_day, report_type, limit DataFrame (Financials) end_day is the cutoff date for the report.
get_ma Calculate N-period Moving Average (MA). n (default 5) DataFrame (MA column) The calculation is run on the instance's latest history data.
get_boll Calculate N-period Bollinger Bands (BOLL). n (default 20) DataFrame (BOLL, Upper/Lower bands) -
get_rsi Calculate N-period Relative Strength Index (RSI). n (default 5) DataFrame (RSI column) -
get_rv Calculate N-period Rolling Volatility (RV). n (default 5) DataFrame (RV column) -
get_max_drawdown Calculate Maximum Drawdown and Recovery over a period. n (default 5) Dict (Max Drawdown) Runs on the instance's history or an optionally provided df.
get_vol_ratio Calculate Volume Ratio (Volume to its N-period average). n (default 20) DataFrame (Volume Ratio) -
get_report Generate a visualized report of history, realtime, and profile. start_date, end_date, language str (report file path) A powerful new feature that consolidates multiple data points.

Data Acquisition Functions

Function Description Primary Parameters Returns
get_stock_history Fetch historical OHLCV (K-line) data for a date range. market, code, start, end DataFrame (OHLCV)
get_stock_realtime Fetch the latest trading snapshot (real-time quotes). market, code DataFrame (Realtime Quotes)
get_stock_factors Fetch historical valuation/market factors (e.g., PE, PB). market, code, trade_day DataFrame (Factors)
get_stock_profile Fetch basic profile information (e.g., company name, listing date, industry). market, code DataFrame (Profile)
get_stock_financials Fetch fundamental financial statements (e.g., Income Statement, Balance Sheet). market, code, end_day, report_type DataFrame (Financials)

Technical Analysis Functions

These functions primarily take an existing DataFrame (df) or data request parameters (market, code, start, end) and calculate indicators.

Function Description Primary Parameters Returns
get_ma_n Calculate N-period Moving Average (MA). df, n (default 5) DataFrame (MA column)
get_boll_n Calculate N-period Bollinger Bands (BOLL). df, n (default 20) DataFrame (BOLL, Upper/Lower bands)
get_rsi_n Calculate N-period Relative Strength Index (RSI). df, n (default 14) DataFrame (RSI column)
get_rv_n Calculate N-period Rolling Volatility (RV). df, n (default 5) DataFrame (RV column)
get_max_drawdown Calculate Maximum Drawdown and Recovery over a period. df Dict (Max Drawdown)
get_vol_ratio Calculate Volume Ratio (Volume to its N-period average). df, n (default 5) DataFrame (Volume Ratio)

Utility Functions

Function Description Primary Parameters
init_cache_manager Initialize the cache manager with a maximum LRU entry count. max_entries
generate_stock_report Generate a visualized report of history, realtime, profile of a stock. market, code, start_date, end_date, language('cn' or 'en')
register_source Register a new custom data source plugin. source_name, func_type (e.g., "realtime")
set_default_source Set a new default data source. name
init_tushare Initialize TuShare connection with your API token and registerTuShare data interfaces. token (or None)
get_newest_df_path Get the path of the newest cached data file. None

๐Ÿ› ๏ธ Usage Example

๐Ÿ“˜ View the Basic Usage Tutorial (Jupyter Notebook)


๐Ÿค Contribution Guide

We welcome contributions of all forms, including bug reports, documentation improvements, feature requests, and code contributions.

Before submitting a Pull Request, please ensure that you:

Adhere to the project's coding standards.

Add necessary test cases to cover new or modified logic.

Update relevant documentation (docstrings, README, or examples).

For major feature changes, please open an Issue first to discuss the idea with the community.


๐Ÿ“œ License

This project is licensed under the Apache License 2.0. See the LICENSE file for more details.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yquoter-0.3.0.tar.gz (162.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yquoter-0.3.0-py3-none-any.whl (53.1 kB view details)

Uploaded Python 3

File details

Details for the file yquoter-0.3.0.tar.gz.

File metadata

  • Download URL: yquoter-0.3.0.tar.gz
  • Upload date:
  • Size: 162.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.16

File hashes

Hashes for yquoter-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e1c5da77632acfa102120523a8470ba70e019d96aace6b315f83e3cc9b2a4cc9
MD5 1effb7691eb7615e29e53e2494ef872d
BLAKE2b-256 99c33342a11a415c81f765555c4a2d68d32db4bbc720f3888b86c246cf692613

See more details on using hashes here.

File details

Details for the file yquoter-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: yquoter-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 53.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.16

File hashes

Hashes for yquoter-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e6eddf3b2724f77f1e590b9232b1ca09f506983e0cd2d9efe2350cca22548d63
MD5 f063ccba00f13bd26ea436ed27e3792f
BLAKE2b-256 893a7bee632df5ca4e59d8d368208ef749a612c391c2c00d0c5830ec162cf62a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page