Skip to content

yuzhichenai/quantkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

version python license market

📈 QuantKit

Python量化交易工具包 — 专为中国A股市场打造


✨ 特性

  • 🔌 开箱即用 — 一行代码获取A股数据、计算指标、运行回测
  • 📊 数据获取 — 基于 akshare,覆盖沪深京全市场
  • 📐 技术指标 — SMA, EMA, MACD, RSI, 布林带, KDJ 等
  • 向量化回测 — 毫秒级回测,自动计算收益率/最大回撤/夏普比率
  • 📈 可视化 — 基于 Plotly 的交互式K线图与资金曲线
  • 🎯 内置策略 — 双均线、MACD、布林带、RSI均值回归

📦 安装

pip install quantkit-cn

🚀 5分钟上手

from quantkit import get_stock_data
from quantkit.indicators import compute_all
from quantkit.backtest import run_backtest
from quantkit.strategy import ma_cross_strategy

# 1. 获取数据
df = get_stock_data("000001", start_date="2023-01-01")

# 2. 计算技术指标
df = compute_all(df)

# 3. 运行回测
result = run_backtest(df, ma_cross_strategy, initial_capital=100_000)

# 4. 查看结果
print(result.stats())

输出:

初始资金: 100,000
最终权益: 108,234
总收益率: 8.23%
年化收益: 4.12%
最大回撤: -5.67%
夏普比率: 0.89
交易次数: 45
胜率: 52.3%

📖 核心模块

数据获取 (quantkit.data)

from quantkit import get_stock_data, get_realtime_quote, get_market_index

# 历史K线(支持日/周/月,前复权/后复权)
df = get_stock_data("600519", period="daily", adjust="qfq")

# 实时行情
quote = get_realtime_quote(["000001", "600519"])

# 大盘指数
sh = get_market_index("sh000001")

技术指标 (quantkit.indicators)

from quantkit.indicators import MACD, RSI, BOLL, KDJ, compute_all

df = MACD(df)          # MACD 金叉死叉
df = RSI(df, 14)       # RSI 超买超卖
df = BOLL(df)          # 布林带通道
df = KDJ(df)           # KDJ 随机指标
df = compute_all(df)   # 一键计算全部

策略回测 (quantkit.backtest)

from quantkit.backtest import BacktestEngine

engine = BacktestEngine(df, initial_capital=100_000)

@engine.on_bar
def my_strategy(engine, i, bar):
    if bar["RSI_14"] < 30:    # 超卖 → 买入
        engine.buy(100)
    elif bar["RSI_14"] > 70:  # 超买 → 卖出
        engine.sell(100)

result = engine.run()
print(result.stats())

可视化 (quantkit.viz)

from quantkit.viz import plot_kline, plot_equity_curve

# K线图 + 指标叠加
fig = plot_kline(df, title="贵州茅台", indicators=["SMA_5", "SMA_20", "BOLL_UP", "BOLL_DN"])
fig.show()  # 或 fig.write_html("kline.html")

# 资金曲线
fig = plot_equity_curve(result)
fig.show()

🗺️ 路线图

  • 数据获取(东方财富、新浪)
  • 技术指标(SMA/EMA/MACD/RSI/BOLL/KDJ)
  • 向量化回测引擎
  • 内置策略模板
  • K线可视化
  • 多标的组合回测
  • 参数优化/网格搜索
  • 实盘对接(QMT/PTrade)
  • Web Dashboard

🤝 贡献

欢迎提交 Issue 和 PR!详见 CONTRIBUTING.md

📄 许可证

MIT License © 2024 yuzhichenai


用 ❤️ 和 Python 打造

About

Python??????? - A?????/????/????

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages