A unified financial data interface and analysis toolkit for CN/HK/US markets.
Project description
Yquoter
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, @GaeulczyThe 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1c5da77632acfa102120523a8470ba70e019d96aace6b315f83e3cc9b2a4cc9
|
|
| MD5 |
1effb7691eb7615e29e53e2494ef872d
|
|
| BLAKE2b-256 |
99c33342a11a415c81f765555c4a2d68d32db4bbc720f3888b86c246cf692613
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6eddf3b2724f77f1e590b9232b1ca09f506983e0cd2d9efe2350cca22548d63
|
|
| MD5 |
f063ccba00f13bd26ea436ed27e3792f
|
|
| BLAKE2b-256 |
893a7bee632df5ca4e59d8d368208ef749a612c391c2c00d0c5830ec162cf62a
|