Skip to main content

jh finance data provider sdk

Project description

banner

jh_data

jh_data是一个免费,高性能,简洁易用的金融数据获取和回测框架。

亮点

  • 丰富的数据源:兼容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)

Uploaded Source

Built Distribution

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

jh_fin_data-0.1.1-py3-none-any.whl (846.2 kB view details)

Uploaded Python 3

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

Hashes for jh_fin_data-0.1.1.tar.gz
Algorithm Hash digest
SHA256 774ba209c20664793e0bdb894dd74357e1bc95e09126c08ebf37730dac1f76e6
MD5 e6b2324f53e42e941586130606946349
BLAKE2b-256 5b585a86f0e734fa04f27bb60f48e314601bc49464dfb08c44493525b0960032

See more details on using hashes here.

File details

Details for the file jh_fin_data-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for jh_fin_data-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ecf0d3954413f1ed1e737ee4834602336064dcdbb56403a4f59d39316ba15251
MD5 8f6850de25a1ce22c34b181207ee016a
BLAKE2b-256 50fcc8ee7fb52054d12e7cd0be56030218262769f6112336b08e534767e530cb

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