| name | stock-quant-select |
| description | 量化选股模型;基于多技术指标筛选并每日推荐一只股票,支持自定义参数调整 |
| dependency | {"python":["pandas>=2.0.0","akshare>=1.10.0"],"system":[]} |
量化选股模型
运行:python scripts/stock_quant_select.py --date 2026-04-24
任务目标
本 Skill 用于执行量化选股策略,通过多技术指标筛选,每日从全市场A股中选出最符合策略的单一股票。
核心策略:买入缩量回调至10日线的股票,要求历史曾有放量大阳线或涨停板支撑,并在次日根据竞价和盘中信号灵活止盈止损。
能力包含:
- 多技术指标联合筛选(MA、成交量、K线形态)
- 严格的买入条件判断
- 次日卖出规则模拟
- 自动评分排序选出最优股票
触发条件:当用户需要进行量化选股、获取每日股票推荐或执行技术面筛选策略时使用。
前置准备
依赖说明
- pandas: 数据处理和技术指标计算
- akshare: A股数据获取
非标准文件/文件夹准备
无需要前置文件,脚本自动从网络获取数据。
操作步骤
标准流程
1. 执行选股脚本
脚本会自动完成以下步骤:
- 获取全市场A股列表
- 下载每只股票的历史日线数据
- 计算技术指标(MA5/MA10/MA20、成交量均线等)
- 筛选满足所有买入条件的股票
- 评分排序输出最强的一只
调用示例:
python scripts/stock_quant_select.py
python scripts/stock_quant_select.py --date 2024-01-15
python scripts/stock_quant_select.py --date 2024-01-15 --ma10-diff 0.03 --big-rise-threshold 0.07 --output my_result.json
2. 查看选股结果
脚本会生成 JSON 格式结果文件,包含:
- 股票代码和名称
- 建议买入价格和时间
- 满足的条件列表
- 技术指标数值
- 综合评分
3. 次日卖出管理(由智能体参考规则执行)
根据脚本输出的买入建议,次日执行以下卖出规则:
- 集合竞价止损:若次日开盘价 < MA10 → 立即卖出
- 盘中止盈:冲高 2% → 卖出;冲高回落破分时均线 → 卖出
- 强制离场:10:00 未触发卖出 → 强制卖出
- 特殊情况:早盘涨停或突破5日线 → 持有至尾盘卖出
可选参数
| 参数 | 说明 | 默认值 |
|---|
| --date | 选股日期(YYYY-MM-DD) | 最新交易日 |
| --output | 输出文件路径 | ./stock_select_result.json |
| --ma10-diff | 10日线回调阈值(±范围) | 0.02(±2%) |
| --big-rise-threshold | 大阳线涨幅阈值 | 0.06(6%) |
| --volume-multiple | 放量倍数 | 1.5 |
| --lookback-days | 历史回看天数 | 20 |
| --limit-up-threshold | 涨停板阈值 | 0.095(9.5%) |
使用示例
示例1:默认选股
- 场景:需要获取当日推荐的股票
- 预期产出:生成 stock_select_result.json,包含一只符合条件的股票
- 关键要点:使用默认参数,适用于大多数情况
示例2:历史回测
- 场景:验证策略在历史某日是否有效
- 预期产出:获取历史日期的选股结果,用于复盘
- 关键要点:指定历史日期,对比实际走势验证策略
示例3:参数优化
- 场景:调整策略参数适应不同市场环境
- 预期产出:用不同参数测试筛选结果
- 关键要点:调整阈值参数,观察结果变化
资源索引
注意事项
- 脚本执行需要网络连接(获取A股数据)
- 首次运行可能较慢(需要下载全市场数据)
- 选股结果仅供参考,不构成投资建议
- 实盘交易需结合市场环境和个人风险承受能力
- ST股票和停牌股票已自动过滤
- 若当日无符合所有条件的股票,结果中 score 为 0
策略逻辑说明
买入条件(必须全部满足)
- 当日收阴线:收盘价 < 开盘价
- 历史放量大阳线或涨停:过去20天内存在涨幅≥6%且放量≥1.5倍的交易日
- 当日缩量:成交量 < 昨日成交量
- 回调至10日线:股价在10日线±2%范围内
- MA10向上:10日线呈上升趋势
次日卖出规则
- 开盘:开盘价 < MA10 → 立即止损
- 盘中:冲高2%止盈;冲高回落破分时均线止盈;10:00强制卖出
- 特殊:早盘涨停持有至尾盘;突破5日线持有至尾盘