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_data
# 或者uv pip install -U jh_data

pip安装

pip install -U jh_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://jh_data.xyz
jh = JHData()
# 方式二:直接传入参数
jh = JHData(api_url="https://data.jh_data.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.0.tar.gz (842.9 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.0-py3-none-any.whl (846.2 kB view details)

Uploaded Python 3

File details

Details for the file jh_fin_data-0.1.0.tar.gz.

File metadata

  • Download URL: jh_fin_data-0.1.0.tar.gz
  • Upload date:
  • Size: 842.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for jh_fin_data-0.1.0.tar.gz
Algorithm Hash digest
SHA256 66cabd8f5f51085846758c686590c595adb74b69f56942a35cd39f74173484af
MD5 0d3e3c8a15ecc2e872653f959f489733
BLAKE2b-256 7551b3c33bb6de09a6bad6420bf5222bbc840fbca7e3d7d57c694ba465fbf86f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jh_fin_data-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c91707506b2c205ac81aac31032ae60e9129364133a823b7b476f4ed29e5a447
MD5 9ea9235d98fb56d91a2de757cf34202f
BLAKE2b-256 d1776360afe24fab6ccfa53bbe701d1c7ab277cea347df1a91eb321f669994bc

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