T+1 短线选股技能
依赖 westock-data 获取实时行情数据,按两类策略完成选股评分,输出标准化 Markdown 报告。
westock-data 依赖说明
westock-data 是独立的 A股行情数据 skill,提供命令行接口获取实时行情数据。
前置条件:
- Node.js 14+ 环境(验证:
node --version) - westock-data skill 已安装并在 Skills 目录中可用
路径解析:node <westock-data>/scripts/index.js
安装验证(执行以下命令确认可用):
node <westock-data>/scripts/index.js --version
错误处理:若命令执行失败,检查:
- Node.js 是否已安装
- westock-data skill 是否存在于 Skills 目录
常用命令:
| 命令 | 说明 |
|------|------|
| changedist hs | 大盘涨跌分布 |
| hot board <N> | 热门板块(取前 N) |
| hot stock | 热搜股票 |
| quote <代码> | 实时行情(含 PE/PB/市值/换手率/量比) |
| technical <代码> <指标> | 技术指标 |
| asfund <代码> | 资金流向 |
| finance <代码> --type lrb --num 1 | 利润表(营收/净利润/扣非净利润) |
| finance <代码> --type zcfz --num 1 | 资产负债表(总资产/负债/商誉/净资产) |
| finance <代码> --type xjll --num 1 | 现金流量表(经营性现金流) |
| shareholder <代码> | 股东研究(十大股东/股东户数/质押比) |
| profile <代码> | 股票简况(行业/板块/上市日期) |
执行流程
Step 1:采集市场数据(并行执行)
# 大盘涨跌分布
node <westock-data>/scripts/index.js changedist hs
# 热门板块(取前15)
node <westock-data>/scripts/index.js hot board 15
# 热搜股票(取前50)
node <westock-data>/scripts/index.js hot stock
⚠️ changedist 容错:若
changedist hs返回失败或无数据,执行以下降级方案:
- 获取上证指数行情:
quote sh000001(取当日涨跌幅)- 从
hot board 15结果统计板块涨跌家数近似替代- 仅依赖指数表现维度判定市场环境,在报告中标注"⚠️ 涨跌分布数据不可用,仅依据指数表现判定"
Step 2:判断市场环境(双重条件取更严者)
采用两维度综合判定,以等级更弱为准:
| 维度 | 数据来源 | 判定方法 | 降级方案(changedist 不可用时) |
|------|---------|---------|-------------------------------|
| 涨跌分布 | changedist hs 上涨家数占比 | 见下表 | 仅用指数维度判定,报告中标注数据缺失 |
| 指数表现 | 上证指数 quote sh000001 | 当日跌幅 / 连续下跌天数 | — |
市场状态与策略调整:
| 条件 | 市场状态 | 策略调整 | |------|---------|---------| | 上涨家数 > 50% 且 上证未大跌 | 正常偏强(strong) | 全策略标准仓位 | | 上涨家数 30–50% 或 指数偏弱 | 中性(normal) | A类仓位×0.75,B类仓位×0.8 | | 上涨家数 < 30% 或 跌幅>1.5% 或 连跌3日 | 弱势普跌(weak) | A类×0.6,B类×0.5 | | 上涨家数 < 15% 且 指数极弱 | 极弱/崩跌(extreme_weak) | 所有策略暂停;若有逆势强势板块仅A类≤20% |
详细判定标准见 references/strategy-rules.md「通用风控规则」章节。
Step 3:识别强势板块
从热门板块数据中,筛选当日涨幅为正、主力资金净流入为正的板块作为候选池。
Step 4:按策略筛选候选股
详见 references/strategy-rules.md
B类策略包含三种反弹模式:
| 模式 | 触发时间 | 基本面要求 | 核心信号 | |------|---------|-----------|---------| | 温反弹 | 14:30–14:50 | 严格(全检) | 止跌后反弹已启动(当日涨≥1%+量能回暖) | | 急跌反弹 | 14:30后 | 严格(全检) | 急跌后有力反弹动作(当日涨≥2%或V型止跌) | | 强势反弹 | 13:30–14:40 | 宽松(仅安全垫) | 超跌+强势V型反转(当日涨≥3%+量比≥2) |
核心原则:止跌 ≠ 反弹。所有B类模式都必须看到明确的反弹动作才能入场,拒绝"还在跌但跌得慢了"的伪信号。
对每只候选股执行以下数据查询:
# 实时行情(可批量,含 PE/PB/市值/换手率/量比)
node <westock-data>/scripts/index.js quote sh600000,sz000001
# 技术指标
node <westock-data>/scripts/index.js technical sh600000,sz000001 macd,rsi,ma
# 资金流向
node <westock-data>/scripts/index.js asfund sh600000,sz000001
# ===== 基本面数据(B类温反弹/急跌反弹必查,A类可选) =====
# 利润表(营收/净利润/扣非净利润 → 计算营收同比、利润同比)
node <westock-data>/scripts/index.js finance sh600000 --type lrb --num 2
# 资产负债表(总资产/总负债/商誉/净资产 → 计算负债率、商誉/净资产比)
node <westock-data>/scripts/index.js finance sh600000 --type zcfz --num 1
# 现金流量表(经营性现金流)
node <westock-data>/scripts/index.js finance sh600000 --type xjll --num 1
# 股东研究(质押比、十大股东变动)
node <westock-data>/scripts/index.js shareholder sh600000
# 股票简况(行业/板块/上市日期 → 判断行业地位、次新股排除)
node <westock-data>/scripts/index.js profile sh600000
基本面数据与硬性条件对照表:
| 硬性条件 | 数据来源 | 取值字段 | 判定方法 | |---------|---------|---------|---------| | ROE ≥ 5% | finance(lrb) + quote | NPParentCompanyOwnersTTM / TotalShareholderEquity(zcfz) | 年化净利润/净资产 | | 净利润为正 | finance(lrb) | NPParentCompanyOwners | > 0 | | 营收同比 ≥ -5% | finance(lrb) --num 2 | OperatingRevenue_Q 当期 vs 上期 | 同比计算 | | 扣非净利润同比 ≥ -10% | finance(lrb) --num 2 | NPDeductNonRecurringPL_Q | 同比计算 | | PE(TTM) ≤ 60 | quote | pe_ratio / pe_lyr | 直接取值 | | PB ≥ 0.5 | quote | pb_ratio | 直接取值 | | 资产负债率 ≤ 70% | finance(zcfz) | TotalLiability / TotalAssets | 比值计算 | | 商誉/净资产 ≤ 20% | finance(zcfz) | GoodWill / SEWithoutMI | 比值计算 | | 经营性现金流为正 | finance(xjll) | NetOperateCashFlow | > 0 | | 大股东质押比 ≤ 50% | shareholder | 十大股东质押信息 | 需人工判断 | | 近30日无减持 | shareholder | holdChange < 0 | 十大股东持股变动 | | 行业地位 | profile | industry/sector | 细分行业前3需结合常识判断 | | 次新股排除 | profile | listedDate | 上市不足60个交易日排除 |
⚠️ 基本面容错:若
finance命令返回失败(如新股/次新股无季报),该标的不满足温反弹/急跌反弹条件,应自动排除或降级为强势反弹模式(仅安全垫)。
Step 5:综合评分
按 references/scoring-model.md 中的五维加权模型对每只候选股打分:
- A 类:≥ 7.5 分优先 / 6.0–7.4 备选 / < 6.0 排除
- B 类·温反弹/急跌反弹(技术面天然偏低):≥ 6.5 分优先 / 6.0–6.4 备选 / < 6.0 排除
- B 类·强势反弹(超跌起点低但反转可补偿):≥ 7.0 分优先 / 6.0–6.9 备选 / < 6.0 排除
Step 6:生成报告
按 references/report-template.md 模板输出完整报告,保存至工作区:
${WORKSPACE}/trading-T1-report-YYYYMMDD.md
风险提示(必须附于报告末尾)
⚠️ 本报告为策略演示,不构成任何投资建议。请严格执行止损纪律,单日亏损触达账户总值 2% 时全面暂停操作。
微信扫一扫