安装

bash
pip install quantmindoss

要求 Python >= 3.10,唯一依赖 httpx(自动安装)。源码与更新日志见 PyPI quantmindoss。

获取 AK / SK

  1. 打开前端 模拟交易设置 页 → 接入凭证 / API 密钥 选项卡。
  2. permissions 填写 ["news.read", "inference.read", "paper.read"](留空则默认全开)。
  3. Access Key(qm_live_ 开头)直接展示可复制;Secret Key(sk_ 开头)点击重新生成,仅展示一次,请立即保存。

快速开始

python
from quantmindoss import QuantMindClient

qm = QuantMindClient(
    "http://<服务器IP>:8000",
    access_key="qm_live_xxx",
    secret_key="sk_xxx",
)

# 1. 新闻情绪
qm.news.get_sentiment(tickers="600036.SH", sentiment="bearish", since="2026-09-01")
qm.news.get_stats(tickers="600036.SH")

# 2. 模型推理结果(最新批次 + 信号排名)
qm.inference.get_latest()
qm.inference.get_latest_signals()   # 已按分数降序,含 display_rank
qm.inference.get_stock_history("600036.SH", days=180)

# 3. 模拟盘持仓
qm.paper.get_positions(market="CN")  # CN/HK/US/FUTURES/CRYPTO

接口一览

资源 方法 说明
news get_sentiment(...) 新闻情绪分页(tickers / sentiment / strong_only / since / until / sort / page)
news get_stats(...) 情绪标签频次统计
news iter_sentiment(...) 自动翻页迭代全部文章
inference get_latest(model_id) 当前生效推理批次
inference list_models() 用户训练模型列表(含 model_id)
inference list_batches(...) 批量推理历史
inference get_run(run_id) 批次明细,信号在 items 中
inference get_latest_signals(model_id) 当前信号列表(两次请求合并,已排序)
inference get_stock_history(...) 个股历史推理分数
paper get_positions(market) 模拟盘账户与持仓(cash / total_asset / positions)
排名口径

信号列表已按 fusion_score 降序排列,顺序即排名;SDK 额外附带 display_rank(从 1 开始)。注意服务端 score_rank 字段恒为 null(训练脚本未写入),请勿依赖该字段。

鉴权与安全

  • 首次调用自动用 AK / SK 兑换 12 小时访问令牌并缓存;遇到 401 自动刷新一次后重试。
  • GET 请求对 429 / 5xx 自动指数退避,最多重试 3 次(max_retries 可调)。
  • Key 被禁用/删除后,已发令牌立即失效;权限不足返回 403(缺对应 scope)。
  • 股票代码统一用后缀式(如 600036.SH);推理与持仓数据按该 AK 所属用户隔离。
  • 建议内网使用;公网暴露请前置 HTTPS 反向代理。

异常对照

SDK 异常 场景
AuthError 401:AK / SK 无效、令牌过期且刷新失败
PermissionError 403:API Key 缺少对应 scope
NotFoundError 404:资源不存在(如推理批次号错误)
RateLimitError 429:请求超限
ServerError 5xx:服务端异常

以上异常均继承自 QuantMindError,可统一捕获。相关链接:PyPI · GitHub · API 文档