- 🔌 开箱即用 — 一行代码获取A股数据、计算指标、运行回测
- 📊 数据获取 — 基于 akshare,覆盖沪深京全市场
- 📐 技术指标 — SMA, EMA, MACD, RSI, 布林带, KDJ 等
- ⚡ 向量化回测 — 毫秒级回测,自动计算收益率/最大回撤/夏普比率
- 📈 可视化 — 基于 Plotly 的交互式K线图与资金曲线
- 🎯 内置策略 — 双均线、MACD、布林带、RSI均值回归
pip install quantkit-cnfrom 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%
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")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) # 一键计算全部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())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 打造