A股量化选股系统 (a-share-quant-selector) 部署教程
本项目是一个基于Python和akshare的A股量化选股系统,核心策略是”碗口反弹”,并提供Web界面和钉钉通知功能。本教程将指导你在Linux服务器(或具备Python环境的本地机器)上,从零开始完成部署和配置。
系统架构与核心功能概览
在开始部署前,先了解系统的核心组成部分,有助于后续配置。
- 核心策略:碗口反弹策略,结合KDJ指标、趋势线和成交量异动进行选股。系统会自动过滤ST、退市等风险股票。
- B1完美图形匹配:一个特色功能,通过将当前股票走势与10个历史成功案例进行三维相似度匹配,为选股结果排序。
- 两大模块:
- 数据与策略引擎:负责获取股票数据、计算技术指标、执行选股逻辑。主要由Python脚本和
strategy/、utils/目录下的模块构成。 - Web展示端:基于Flask的Web界面,用于可视化查看数据和选股结果。
- 数据与策略引擎:负责获取股票数据、计算技术指标、执行选股逻辑。主要由Python脚本和
- 通知与自动化:通过钉钉机器人发送选股结果和K线图,并支持通过
crontab设置定时任务。
第一步:环境准备与项目获取
基础环境要求:
- 操作系统:Linux (推荐Ubuntu 20.04+)、macOS或Windows (需支持Python)。
- Python版本:Python 3.8或更高版本。
- 关键依赖:
pip(Python包管理工具)、git(用于克隆项目)。
克隆项目仓库:
1
2git clone https://github.com/Dzy-HW-XD/a-share-quant-selector.git
cd a-share-quant-selector安装Python依赖包:
项目所需依赖已定义在requirements.txt中。建议在虚拟环境中进行安装,以避免包冲突。1
2
3
4
5
6
7# 创建并激活虚拟环境 (可选但强烈推荐)
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
# 安装依赖
pip3 install -r requirements.txt
第二步:数据初始化与首次抓取
系统需要历史数据才能进行选股分析。首次运行必须执行数据初始化。
1 | # 首次全量抓取6年历史数据 (耗时较长,建议后台运行) |
- 数据存储:抓取的数据会以CSV格式保存在项目根目录下的
data/文件夹中。 - 网络要求:此过程需要稳定的网络连接以访问akshare的数据源。
第三步:配置钉钉通知 (可选但推荐)
如果你希望选股结果自动推送到钉钉群,需要进行此配置。否则,可以跳过此步,仅通过Web界面查看结果。
获取钉钉机器人Webhook和Secret:
- 在你的钉钉群中添加一个”自定义机器人”。
- 安全设置选择”加签”,并获取Secret。
- 获取机器人的Webhook地址。
编辑配置文件:
- 项目中的配置文件位于
config/config.yaml。 - 使用文本编辑器(如
vim或nano)打开该文件,找到钉钉相关配置项,填写你获取的webhook和secret。
1
2
3
4# config/config.yaml (示例)
dingtalk:
webhook: "https://oapi.dingtalk.com/robot/send?access_token=你的token"
secret: "你的加签secret"- 项目中的配置文件位于
第四步:执行选股与运行Web界面
完成配置后,即可运行选股程序并启动Web界面。
执行选股:
1
2
3
4
5
6
7
8# 完整流程:更新数据 -> 选股 -> 发送钉钉通知 (如果配置了)
python3 main.py run
# 快速测试 (只处理前500只股票,用于验证)
python3 main.py run --max-stocks 500
# 启用B1完美图形匹配
python3 main.py run --b1-match启动Web管理界面:
1
2# 默认监听5000端口
python3 main.py web- 启动后,在浏览器中访问
http://你的服务器IP:5000即可看到Web界面,可以在此查看股票列表、K线图和选股结果。
- 启动后,在浏览器中访问
第五步:设置定时任务 (实现自动化)
为了每日自动运行选股,可以将main.py run命令添加到crontab定时任务中。
1 | # 编辑当前用户的crontab |
重要提醒:请务必将/path/to/your/a-share-quant-selector替换为你的实际项目路径,并确保python3命令路径正确(可通过which python3查看)。
常见问题与故障排查
Q1: 数据更新或选股时出现网络错误?
- 原因:akshare数据源或网络不稳定。
- 解决:这是常见问题,可以稍后重试。系统本身有基本的重试机制,但若持续失败,可考虑手动重新运行
python3 main.py update。
Q2: 钉钉没有收到通知?
- 检查:确认
config/config.yaml中的webhook和secret配置完全正确。检查项目日志输出,看是否有钉钉API返回的错误信息(如限流错误)。系统内置了限流保护,如果消息过多,发送可能会有延迟。
Q3: Web界面无法访问?
- 检查:确认Flask服务是否正常运行,以及服务器的防火墙是否开放了5000端口。如果在云服务器上,需在安全组规则中放行该端口。
Q4: 如何调整选股策略参数?
- 方法:直接编辑
config/strategy_params.yaml文件。例如,可以调整J_VAL(KDJ超卖阈值)、N(成交量倍数)等参数。修改后重新运行python3 main.py run即可生效。
至此,你已经完成了A股量化选股系统的部署。这个系统为你提供了一个可扩展的量化研究和自动化选股框架。请牢记,本项目仅供学习研究使用,所有选股结果均不构成投资建议,股市有风险,投资需谨慎。你可以基于此框架,探索和调整属于自己的策略。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 极客的赛博空间 | 专注 AI 与技术分享!
评论










