Skip to main content

QKA(快量化 / Quant Kit for A-shares)- 简洁易用的 A 股量化回测框架

Project description

QKA — 快量化

Quant Kit for A-shares

文档站 PyPI Python License

QKA(快量化 / Quant Kit for A-shares) — 简洁易用的 A 股量化回测框架。

from qka import Data, Strategy, Backtest

class MyStrategy(Strategy):
    def on_bar(self, date):
        close = self.get('close')
        for sym in close.index:
            if sym not in self.broker.positions:
                price = float(close[sym])
                if price > 0:
                    size = self.sizing.percent(0.1, price)
                    if size >= 100:
                        self.broker.buy(sym, price, size)

bt = Backtest(Data(['000001.SZ']), MyStrategy(cash=100_000))
bt.run(benchmark='000300.SH')
bt.report()

安装

pip install qka

需要 Python 3.10+。

快速上手

数据

from qka import Data

data = Data(
    symbols=['000001.SZ', '600000.SH'],
    indicators={'sma_5': ('sma', 5), 'rsi_14': ('rsi', 14)},
)
df = data.get()  # 触发下载,返回宽表 DataFrame

策略

from qka import Strategy

class MyStrategy(Strategy):
    def __init__(self, cash=100_000):
        super().__init__(cash=cash)
        # 自定义状态放这里

    def on_bar(self, date):
        close = self.get('close')
        hist = self.history('close', 20)
        # 写你的交易逻辑

回测

from qka import Backtest

bt = Backtest(data, MyStrategy(cash=100_000))
bt.run(benchmark='000300.SH')
print(bt.summary())    # 输出绩效指标
bt.report()            # 生成 HTML 报告

更多示例

策略 说明
买入持有与定投 买入不动 + 每月定投
均线交叉 5日线上穿/下穿20日线
RSI + ATR 风控 RSI 超卖买入,ATR 止损
动量排序选股 月度动量排序,Top 5 等权
多因子打分 PE/ROE/动量/波动率打分选股

核心能力

  • 多数据源 — baostock(默认)、akshare、QMT,自动缓存
  • 预计算指标 — sma/ema/macd/rsi/bbands/atr + 自定义因子
  • 事件驱动回测 — 按日推进,self.get() 横截面 + self.history() 窗口序列
  • 仓位管理self.sizing.percent() / self.sizing.fixed_amount() / self.sizing.fixed_shares() / self.sizing.atr_risk()
  • 交易模拟 — 佣金万2.5、印花税万5、滑点0.1%,最低佣金5元
  • HTML 报告 — Plotly 交互图表,累计收益、回撤、月度热力图、交易明细
  • 基准对比 — 自动下载沪深300(或指定指数)做对比

文档

完整教程、API 参考、示例代码:

👉 qka.quantai.chat

下一步规划

  • 分钟级数据支持
  • 自适应参数优化
  • 实盘交易(QMT 接口)

许可证

MIT

致谢


⚠️ 量化交易存在风险,请充分了解后再使用本框架。

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

qka-1.7.0.tar.gz (67.7 kB view details)

Uploaded Source

Built Distribution

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

qka-1.7.0-py3-none-any.whl (52.9 kB view details)

Uploaded Python 3

File details

Details for the file qka-1.7.0.tar.gz.

File metadata

  • Download URL: qka-1.7.0.tar.gz
  • Upload date:
  • Size: 67.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for qka-1.7.0.tar.gz
Algorithm Hash digest
SHA256 9d609f00b64c423009d9d5ba6aab561df65df9d9132d6e9b446aa606d1af1120
MD5 6b20494dcc36c6316320fc18e722c890
BLAKE2b-256 ff7a6cb8e0a758812ec55287174c9bdc1cd53efd99416618121171bb2374da0a

See more details on using hashes here.

File details

Details for the file qka-1.7.0-py3-none-any.whl.

File metadata

  • Download URL: qka-1.7.0-py3-none-any.whl
  • Upload date:
  • Size: 52.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for qka-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4132e1785f2e90d4c0d062847259240742319c380f802f80c3e2a73f84b0f572
MD5 0ce0f4defb4c83f66d27ec3e6a6dc100
BLAKE2b-256 7b1e33723427341bba75403ac1d676a1bbdf1cf3abab5feb92214f39e05b9ce3

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