Skip to main content

Jiuhuang quant python sdk

Project description

JH_QUANT

banner

量化交易研究与执行平台。支持:免费数据获取回测因子计算模拟交易组合优化可视化仪表盘

快速开始

安装

pip install jh_quant

数据获取

import os
from jh_quant.data import JHData, DataTypes

jh = JHData(api_key=os.getenv("JIUHUANG_API_KEY"))
stock_price = jh.get_data(
    DataTypes.AK_STOCK_ZH_A_HIST_QFQ,  # akshare A 股日线前复权
    symbol="000001",
    start="2025-01-01",
    end="2025-12-10",
)

数据兼容

兼容 akshare 调用风格:

from jh_quant.data.data_providers import akshare as ak

df = ak.stock_zh_a_hist(
    symbol="000001",
    period="daily",
    start_date="20240101",
    end_date="20241231",
    adjust="qfq",
)

兼容 tushare 调用风格:

from jh_quant.data.data_providers import tushare as ts

df = ts.daily(
    ts_code="000001.SZ",
    start_date="20240101",
    end_date="20241231",
)

pro_df = ts.pro.pro_bar(
    ts_code="000001.SZ",
    start_date="20240101",
    end_date="20241231",
    asset="E",
    freq="D",
)

策略回测

from jh_quant.data import JHData, DataTypes
from jh_quant.backtest import (
    backtest,
    StrategyTurtle,
    StrategyMovingAverageCrossover,
    StrategyBuyAndHold,
)
from jh_quant.dashboard import display_backtesting

# 1. 准备数据
jh = JHData()
stock_price = jh.get_data(
    DataTypes.AK_STOCK_ZH_A_HIST_QFQ,
    symbol="000001,600519,300750",
    start="2025-01-01",
    end="2026-05-07",
)
stock_info = jh.get_data(DataTypes.AK_STOCK_INDIVIDUAL_INFO_EM)

# 2. 定义策略
strategies = {
    "海龟策略": StrategyTurtle(entry_window=20, exit_window=10),
    "均线交叉": StrategyMovingAverageCrossover(short_window=12, long_window=24),
    "买入持有": StrategyBuyAndHold(),
}

# 3. 执行回测
trading_hist, backtest_perf = backtest(
    strategies=strategies,
    price_data=stock_price,
    stock_info=stock_info,
)

display_backtesting(trading_hist, backtest_perf)

回测仪表盘预览

策略对比 策略分布
策略对比 策略分布
交易历史 策略排名
交易历史 策略排名

交易Trading

TODO: 介绍trading模块的两种模式

模拟交易

jh_quant 支持同时开启多个模拟交易会话,每个会话对应一个模拟账户。下面是示例运行方式:

python run_paper.py

run_paper.py 的完整代码见仓库根目录的 run_paper.py

在回填模式下(可通过 enable_backfill=False 关闭),系统会先完成历史交易回放,并在本地启动服务,默认端口为 8000

实盘交易

TODO

控制台仪表盘

本地服务启动后,可以通过如下代码打开控制台仪表盘:

from jh_quant.dashboard import display_trading

# 如果你修改了 run_paper.py 中的端口,需要显式传入 port 参数
display_trading()

JH_QUANT Dashboard Demo

License

This project is licensed under the AGPL-3.0 License. See LICENSE 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_quant-0.2.0.tar.gz (12.1 MB view details)

Uploaded Source

Built Distribution

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

jh_quant-0.2.0-py3-none-any.whl (2.6 MB view details)

Uploaded Python 3

File details

Details for the file jh_quant-0.2.0.tar.gz.

File metadata

  • Download URL: jh_quant-0.2.0.tar.gz
  • Upload date:
  • Size: 12.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for jh_quant-0.2.0.tar.gz
Algorithm Hash digest
SHA256 67cbf168a7677cff124aff73b4ee13a88e206901f1101bf98ea8fdbc0f3147a9
MD5 2b860aeb81e7828dfde4c4af644d8363
BLAKE2b-256 61010826b8b069279106e0df315e25af9dbfff45865fe9339f9eacb336524e38

See more details on using hashes here.

File details

Details for the file jh_quant-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: jh_quant-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for jh_quant-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e19ee9408360d2c4cb1a807da626f016a8d542d54b59d178fd6112cdbd15fd6
MD5 fc9485764f5daf0cd73849a40de371d8
BLAKE2b-256 075e981a9c46e3dbf2d7c27cf9cd783769f9c0a766282f23c94d8612f399ec38

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