QKA(快量化 / Quant Kit for A-shares)- 简洁易用的 A 股量化回测框架
Project description
QKA — 快量化
Quant Kit for A-shares
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 参考、示例代码:
下一步规划
- 分钟级数据支持
- 自适应参数优化
- 实盘交易(QMT 接口)
许可证
致谢
⚠️ 量化交易存在风险,请充分了解后再使用本框架。
Project details
Release history Release notifications | RSS feed
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.1.dev2.tar.gz
(68.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
qka-1.7.1.dev2-py3-none-any.whl
(53.5 kB
view details)
File details
Details for the file qka-1.7.1.dev2.tar.gz.
File metadata
- Download URL: qka-1.7.1.dev2.tar.gz
- Upload date:
- Size: 68.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
980761af6a45dbe77a7c0cccb883fb6c28024179d868125b10a26aa40e520cf6
|
|
| MD5 |
dc062f6d336b9b1ca5c69b1578bbdbd6
|
|
| BLAKE2b-256 |
7978345cf33d21809df43e0eb83325845cc9b4e4a3ed075464f1ed01fe7fd8cb
|
File details
Details for the file qka-1.7.1.dev2-py3-none-any.whl.
File metadata
- Download URL: qka-1.7.1.dev2-py3-none-any.whl
- Upload date:
- Size: 53.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36793e1d565f245a3b1b8b0cf6389545a92297ab7f389d9024c1ff86e8b3a476
|
|
| MD5 |
b052bccaa927e58968a75aaa79253b90
|
|
| BLAKE2b-256 |
0f51357218e32f6cde30764ad8c2b62d612f422ddfb14009793f351009e86026
|