Skip to content

DreamEnding/quant_trading_cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

quant-trading-cli

基于 同花顺问财 API 的量化分析命令行工具。

零第三方依赖,仅需 Python 3.8+。

功能一览

类别 命令 功能
数据查询 query 任意自然语言问财查询
stock A 股筛选
etf ETF 筛选
sector 板块筛选
basic 基本资料查询(上市日期、实控人、主营等)
quote 行情数据查询(价格、PE、PB、市值等)
搜索 news 财经新闻搜索
report 研究报告搜索(机构、评级、目标价)
策略选股 value 低估值好股筛选
growth 小盘成长股筛选
factor 量化因子分析(价值/质量/成长/规模/波动)
sentiment 市场情绪偏离分析(逆向投资机会)
综合分析 analyze 一键聚合全部数据源,生成完整分析报告
模拟交易 trade 模拟炒股(开户/买入/卖出/持仓/资金/收益)
参考指南 livermore 《股票大作手》利弗莫尔交易哲学
ai 人工智能就绪度评估框架

快速开始

1. 环境要求

2. 设置 API Key

# Linux / macOS
export IWENCAI_API_KEY="your-api-key"

# Windows(永久生效)
setx IWENCAI_API_KEY "your-api-key"

# 或每次命令指定
python -m qt quote 通宇通讯 --api-key "your-api-key"

3. 运行

# 进入项目目录
cd D:/quant_trading

# 查看帮助
python -m qt --help

# 一键分析一只股票
python -m qt analyze 通宇通讯

4. 安装到系统(可选)

pip install -e .

# 安装后可在任意目录直接使用
quant-trading-cli analyze 通宇通讯
qt analyze 通宇通讯                # 短命令别名

命令详解

数据查询类

query — 任意问财查询

直接传入自然语言,透传到问财 API。支持问财支持的所有查询语法。

python -m qt query "今日涨幅超过5%的A股"
python -m qt query "通宇通讯最新价" --json
python -m qt query "市盈率小于20 净利润大于1亿" --page 2 --limit 20
参数 说明 默认值
query 自然语言查询语句(必填) -
--page 页码 1
--limit 每页条数 10
--json 输出原始 JSON off
--api-key API 密钥 读环境变量

stock — A 股筛选

query 的快捷方式,专门用于 A 股筛选场景。

python -m qt stock "通信设备行业 市值大于100亿"
python -m qt stock "连续3天涨停"
python -m qt stock "今日涨停 非ST"

etf — ETF 筛选

python -m qt etf "规模大于10亿的沪深300ETF"
python -m qt etf "纳指ETF" --limit 5

sector — 板块筛选

python -m qt sector "今日涨幅前10的行业板块"
python -m qt sector "资金净流入前5的概念板块"

basic — 基本资料

查询股票的基本信息:上市日期、实控人、总股本、主营产品等。

python -m qt basic 通宇通讯
python -m qt basic 贵州茅台
python -m qt basic 002792          # 也支持股票代码

输出示例:

  ╔══ 通宇通讯 (002792.SZ) 基本资料 ══╗

    上市日期: 20160328
    上市地点: 深圳
    上市板块: 主板
    实控人: 时桂清
    总股本: 5.24亿股
    流通股本: 3.38亿股
    主营产品: 基站天线, 射频器件, 微波天线, 光通信, 卫星通讯 ...

quote — 行情数据

查询实时行情:最新价、涨跌幅、PE、PB、市值、换手率、成交额等。

python -m qt quote 通宇通讯
python -m qt quote 宁德时代 --json

输出示例:

  ╔══ 通宇通讯 (002792.SZ) 行情数据 ══╗

    最新价: 47.92 元  (+5.99%)
    成交量: 6881.46万股
    成交额: 31.76亿
    换手率: 20.36%
    PE(TTM): 1654.9 倍
    PB: 9.03 倍
    总市值: 251.07亿
    流通市值: 161.92亿

搜索类

news — 财经新闻搜索

python -m qt news 通宇通讯
python -m qt news "卫星互联网" --limit 5

输出包含标题、来源、日期和摘要。

report — 研报搜索

搜索主流投研机构发布的研究报告,含机构名称、投资评级、目标价等。

python -m qt report 通宇通讯
python -m qt report "新能源汽车" --limit 3

输出示例:

  [1] 通宇通讯(002792):5G-A带来传统业务新场景,卫星铸就第二增长曲线
      机构: 德邦证券  |  评级: 买入
  [2] 通宇通讯(002792):净利润率同比增长,低空、卫星东风将启
      机构: 德邦证券  |  评级: 买入

策略选股类

value — 低估值好股筛选

基于估值+基本面多条件筛选:PE < 30、PB < 3、营收正增长、负债率 < 60%、ROE > 5%。

python -m qt value
python -m qt value --limit 20

筛选条件(内置):

条件 阈值
市盈率 PE < 30
市净率 PB < 3
营收同比增长 > 0
资产负债率 < 60%
ROE > 5%
排除 ST、停牌股
上市时间 > 2 年

growth — 小盘成长股筛选

筛选市值 20-200 亿、3 年营收复合增长率 > 20%、负债率 < 50% 的高成长小盘股。

python -m qt growth
python -m qt growth --limit 20

筛选条件(内置):

条件 阈值
总市值 20 亿 ~ 200 亿
营收 3 年 CAGR > 20%
资产负债率 < 50%
净利润 > 0
排除 ST、停牌、新股

factor — 量化因子分析

对单只股票进行五因子维度分析:价值、质量、成长、规模、波动。

python -m qt factor 通宇通讯

输出示例:

  ══════════════════════════════════════════════════════
  量化因子分析: 通宇通讯
  ══════════════════════════════════════════════════════

  ── 价值因子 ──
    PE: 1655.2
    PB: 9.01
    EPS: 0.048
    每股净资产: 5.31

  ── 质量因子 ──
    ROE: 0.91%
    ROA: 0.49%
    毛利率: 22.39%
    净利率: 3.10%
    负债率: 19.75%

  ── 成长因子 ──
    营收增速: -3.34%
    利润增速: -50.91%
    营业收入: 8.15亿

  ── 规模因子 ──
    总市值: 251.07亿
    流通市值: 161.92亿

  ── 波动因子 ──
    换手率: 20.36%
    振幅: 11.30%

sentiment — 市场情绪偏离分析

识别被市场过度抛售但基本面依然稳健的逆向投资机会。

python -m qt sentiment 通宇通讯

输出维度:

  • 情绪指标 — 近期涨跌幅、换手率
  • 资金面情绪 — 主力资金流向、大单净额
  • 基本面验证 — 营收、净利润、毛利率、ROE、负债率
  • 估值位置 — PE、PB、总市值
  • 机构观点 — 研报评级汇总

综合分析

analyze — 一键全维度分析

聚合 7 个数据源,一次调用生成完整分析报告:基本资料 + 行情 + 财务 + 区间涨跌 + 资金流向 + 研报 + 新闻。

python -m qt analyze 通宇通讯

输出示例:

  ============================================================
  综合分析: 通宇通讯
  ============================================================

  ── 基本资料 ──
    通宇通讯 (002792.SZ)
    上市日期: 20160328
    总股本: 5.24亿股
    实控人: 时桂清
    主营: 基站天线, 射频器件, 微波天线, 卫星通讯 ...

  ── 行情数据 ──
    最新价: 47.92 元  (+5.99%)
    成交额: 31.71亿
    换手率: 20.34%
    PE: 1654.9 倍
    PB: 9.03 倍
    总市值: 251.07亿

  ── 财务指标(最新报告期) ──
    营业收入: 8.15亿
    净利润: 2527.46万
    毛利率: 22.39%
    ROE: 0.91%
    资产负债率: 19.75%
    营收同比: -3.34%
    净利同比: -50.91%

  ── 区间涨跌 ──
    20260408-20260414: +0.84%
    20260331-20260414: +12.30%
    20260317-20260414: +17.54%
    20260112-20260414: -21.16%

  ── 资金流向 ──
    主力净流入: 7135.87万
    大单净额: 5885.37万

  ── 研究报告 ──
    [1] 5G-A带来传统业务新场景,卫星铸就第二增长曲线
        德邦证券 | 评级: 买入

  ── 最新新闻 ──
    [1] 通宇通讯中标中国移动成渝中线高铁天线采购项目
        市场资讯 | 2026-04-08

模拟交易

trade — 模拟炒股

基于同花顺模拟交易平台,支持完整交易流程。

# 开户(首次使用必须先开户)
python -m qt trade open

# 买入(支持股票名称或6位代码)
python -m qt trade buy 通宇通讯 47.91 100
python -m qt trade buy 002792 47.91 100

# 卖出
python -m qt trade sell 通宇通讯 47.91 100

# 查询持仓
python -m qt trade positions

# 查询资金
python -m qt trade fund

# 查询盈利
python -m qt trade profit

# 查询当日成交
python -m qt trade today

# 查询30天收益
python -m qt trade 30day

操作说明

操作 命令 说明
开户 trade open 自动生成用户名,账户保存到 ~/.qt_trade_account.json
买入 trade buy <股票> <价格> <数量> 数量须为 100 整数倍
卖出 trade sell <股票> <价格> <数量> 同上
持仓 trade positions 显示持仓股票、成本、现价、盈亏
资金 trade fund 显示总资产、可用、冻结
盈利 trade profit 显示盈利详情
当日成交 trade today 显示当日成交记录
30天收益 trade 30day 显示30日收益率

支持的股票:内置常见股票名称映射,也可直接输入6位代码(0/3开头为深圳,6开头为上海)。


参考指南

livermore — 《股票大作手》交易哲学

输出利弗莫尔五大核心交易原则:最小阻力线、试探-确认-金字塔加仓、坐稳、风险管理铁律、A股实战适配。

python -m qt livermore

ai — 人工智能就绪度评估框架

输出 AI 就绪度五步评估流程参考:连接数据 → 按公司扫描 → 跨公司排名 → 发现模式 → 输出路线图。

python -m qt ai

全局选项

以下选项适用于大部分命令:

选项 说明
--api-key <KEY> 问财 API 密钥,优先于环境变量
--json 输出原始 JSON(适用于 query/stock/etf/sector/basic/quote/news/report/value/growth)
--page <N> 分页页码,默认 1
--limit <N> 每页条数,默认 10(value/growth 默认 15)

命令缩写

所有命令都有短别名:

全称 缩写 全称 缩写
query q news n
stock s report r
etf e analyze a
basic b trade t
quote qu value v
growth g
factor f
# 缩写示例
python -m qt q "今日涨停"
python -m qt qu 通宇通讯
python -m qt a 通宇通讯
python -m qt v

项目结构

D:/quant_trading/
├── README.md                       # 本文件
├── pyproject.toml                  # 项目配置(pip install -e .)
├── qt/                             # 主包
│   ├── __init__.py                 # 包定义
│   ├── __main__.py                 # python -m qt 入口
│   ├── api.py                      # API 层(query2data + comprehensive_search)
│   ├── cli.py                      # argparse 子命令定义与调度
│   ├── output.py                   # 输出格式化(表格/数字/文章)
│   └── commands/
│       ├── query.py                # query / stock / etf / sector
│       ├── data.py                 # basic / quote
│       ├── search.py               # news / report
│       ├── analyze.py              # analyze(7维度聚合分析)
│       ├── trade.py                # trade(模拟炒股全套操作)
│       ├── screen.py               # value / growth / factor / sentiment
│       └── guide.py                # livermore / ai(方法论参考)
└── skills/                         # 原始技能模块(SKILL.md + 参考文档)
    ├── 问财选A股/
    ├── 问财选ETF/
    ├── 问财选板块/
    ├── 基本资料查询/
    ├── 行情数据查询/
    ├── 研报搜索/
    ├── 新闻搜索/
    ├── 模拟炒股/
    ├── 量化因子选股/
    ├── 低估值好股搜寻/
    ├── 小盘成长股挖掘/
    ├── 市场情绪偏离分析/
    ├── 《股票大作手》交易哲学/
    └── 人工智能就绪度评估/

API 说明

本项目使用两个问财 API 端点:

端点 用途 使用命令
POST /v1/query2data 自然语言数据查询 query, stock, etf, sector, basic, quote, analyze, value, growth, factor, sentiment
POST /v1/comprehensive/search 新闻/研报搜索 news, report

另外模拟炒股使用独立的同花顺模拟交易 API(http://trade.10jqka.com.cn:8088),无需问财 API Key。

常见问题

Q: 提示"API 密钥未设置"

设置环境变量 IWENCAI_API_KEY,或每次使用 --api-key 参数指定。

Q: 查询返回空数据

问财 API 对自然语言的表达方式有一定要求。建议:

  • 使用标准金融术语(如"市盈率"而非"估值")
  • 逐步添加条件缩小范围
  • 问财网页版 先测试查询语句

Q: 模拟炒股开户失败

模拟交易 API 依赖同花顺模拟交易平台,可能存在网络限制或平台维护。

Q: --json 模式输出什么?

返回问财 API 的原始 JSON 响应,包含完整字段名(含时间戳后缀如 [20260414]),适合程序化处理。

数据来源

所有金融数据来源于 同花顺问财https://www.iwencai.com)。

模拟交易数据来源于 同花顺模拟交易平台

免责声明

本工具仅供学习研究使用,不构成任何投资建议。投资有风险,入市需谨慎。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages