jh finance data provider sdk
Project description
jh_data
jh_data是一个免费,高性能,简洁易用的金融数据获取和回测框架。
- 官网&API申请: https://data.jiuhuang.xyz
- 文档地址: https://doc.jiuhuang.xyz
亮点
- 丰富的数据源:兼容akshare和tushare多种数据类型,支持获取A股、基金、宏观等数据
- 统一的数据接口:通过
DataTypes枚举类统一管理数据类型,输出字段名标准化为英文字段名 - 多时间颗粒度支持:支持日、周、月级别数据,以及分钟级实时数据
- 多数据接口兼容:支持 JHData、akshare、tushare 三种接口方式
- 多进程并行回测:内置多进程并行计算,回测速度极快
- 内置多种策略:提供海龟交易、均线交叉、RSI、布林带、动量等 11+ 种经典策略
- 可视化回测仪表盘:交互式图表展示回测结果,支持交易历史、策略分布、排名对比等
- 易于扩展:支持自定义策略
- MCP Server 支持:可作为 MCP 服务器运行,AI Agent 可通过标准协议调用
- Claude Code Skill 集成:提供 Skill 配置,Claude Code 可直接使用
快速开始
安装
uv安装(推荐)
uv add jh-fin-data
# 或者uv pip install -U jh-fin-data
pip安装
pip install -U jh-fin-data
数据获取
jh_data 支持三种数据获取方式:
方式一:JHData 直接获取
from jh_data.data import JHData, DataTypes
jh = JHData()
# 获取股票日线数据(前复权)
stock_price = jh.get_data(
DataTypes.AK_STOCK_ZH_A_HIST_QFQ,
symbol="000001",
start="2025-01-01",
end="2025-01-10",
)
print(stock_price)
方式二:akshare 兼容接口
from jh_data.data_providers import akshare as ak
# akshare 风格:使用 start_date/end_date/adjust 参数
stock_price = ak.stock_zh_a_hist(
symbol="000001",
start_date="20250101",
end_date="20250110",
adjust="qfq"
)
print(stock_price)
方式三:tushare 兼容接口
from jh_data.data_providers import tushare as ts
# tushare 风格:使用 ts_code/start_date/end_date 参数
daily_data = ts.daily(
ts_code="000001.SZ",
start_date="20250101",
end_date="20250110"
)
print(daily_data)
回测示例
from jh_data.data import JHData, DataTypes
from jh_data.strategy import *
from jh_data.backtest import backtest
from jh_data.dash import display_backtesting
import warnings
warnings.filterwarnings("ignore")
# 方式一:使用环境变量(推荐)
# 设置 API_URL 和 API_KEY 环境变量
# API_KEY申请地址:https://jiuhuang.xyz
jh = JHData()
# 方式二:直接传入参数
jh = JHData(api_url="https://data.jiuhuang.xyz", api_key="你的API KEY")
# 定义策略(可使用内置策略或自定义策略)
strategies = {
"海龟": StrategyTurtle(entry_window=20, exit_window=10),
"移动均线交叉": StrategyMovingAverageCrossover(12, 24),
"买入持有": StrategyBuyAndHold(),
}
# 获取数据
symbols = ["000001", "600036", "600519", "000858", "601318", "000002"]
stock_price = jh.get_data(
DataTypes.AK_STOCK_ZH_A_HIST_QFQ,
start="2024-12-25",
end="2026-03-11",
symbol=",".join(symbols),
)
stock_info = jh.get_data(DataTypes.AK_STOCK_INDIVIDUAL_INFO_EM)
# 执行回测
trading_history, backtest_perf = backtest(
strategies,
stock_price,
stock_info,
)
# 展示回测仪表盘
display_backtesting(trading_history, backtest_perf)
回测仪表盘预览
| 策略对比 | 策略分布 |
|---|---|
| 交易历史 | 策略排名 |
|---|---|
License
This project is licensed under the BSD 3-Clause License - see the LICENSE file for 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
jh_fin_data-0.1.1.tar.gz
(842.8 kB
view details)
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
jh_fin_data-0.1.1-py3-none-any.whl
(846.2 kB
view details)
File details
Details for the file jh_fin_data-0.1.1.tar.gz.
File metadata
- Download URL: jh_fin_data-0.1.1.tar.gz
- Upload date:
- Size: 842.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
774ba209c20664793e0bdb894dd74357e1bc95e09126c08ebf37730dac1f76e6
|
|
| MD5 |
e6b2324f53e42e941586130606946349
|
|
| BLAKE2b-256 |
5b585a86f0e734fa04f27bb60f48e314601bc49464dfb08c44493525b0960032
|
File details
Details for the file jh_fin_data-0.1.1-py3-none-any.whl.
File metadata
- Download URL: jh_fin_data-0.1.1-py3-none-any.whl
- Upload date:
- Size: 846.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecf0d3954413f1ed1e737ee4834602336064dcdbb56403a4f59d39316ba15251
|
|
| MD5 |
8f6850de25a1ce22c34b181207ee016a
|
|
| BLAKE2b-256 |
50fcc8ee7fb52054d12e7cd0be56030218262769f6112336b08e534767e530cb
|