- 本工具99%的代码由Cursor自动生成,Coding模型Claude3.5,当然也可以用别的。对我来说,更像个赛博念经的,负责规划设计调试。
- 本工具的分析结果仅供参考,仅代表我不成熟的策略设计思路,所以不构成任何投资建议和风险控制依据。
- 本工具完全开源、免费、无论是Clone、再开发甚至商业化我都不反对,但必须遵守FSF的GPLv3许可证协议。
- 后续其他二次开发版本和我无关,我亦不承担任何责任,本代码仓库仅供学习研究。
- 市场有风险,投资需谨慎,成熟的交易者不会把决策简单归因于信息差或者技术操作,投资是修行。
- 我已经着手开始/dev分支的开发,所以/main分支可能会停留在当前版本,仅维护自选股列表,如果算法有改进的话,我会及时同步策略、模型和回测系统,让它更有用一点;
- /dev的基本架构如下:

如果你对新的架构感兴趣,可以Fork /dev,然后按照这个思路独立开发,🙏🙏
- 我已经把目前的/main主分支的程序Release了一个版本出来,可以直接下载部署使用,戳这里下载。
- 解决了MACD值显示错误的算法BUG,修复了KDJ算法错误,解决了一个不重要的告警提示;
- 重新优化了回测系统,显示回测结果,并且在报告的最后详细说明参数,策略和回测指标;
- 重新大幅度优化了K线形态特征的判定,优化了显示效果;
- 更新了股票决策的算法,目前操作结论偏积极,决策偏向布林带和RSI,这是我个人的偏好,大家可以根据自己偏好调整算法;
- 改进了HTML的显示方式,色彩搭配,采用紧凑型卡片显示更多的个股技术信息和操作指南,命令行分析完成之后,自动打开HTML报告,无需手动;
- 优化改进了其他问题,提高了分析速度;
⚠️ 项目目录中main.py是个更简单的快速遍历股票程序,我会重新思考Main程序的功能,架构和体现方式,目前不推荐使用该程序分析股票。主要推荐使用stock_analyzer.py。请在Shell下执行如下命令:(MacOS请开启Shell虚拟化:source venv/bin/activate)
python stock_analyzer.py
这是一个基于Python开发的股票纯技术面分析工具,目前主要用于美股市场分析。本工具通过分析多个技术指标,识别价格形态,结合成交量分析来生成交易信号,并以直观的HTML报告形式展示分析结果。

- RSI(相对强弱指标):判断股票是否超买或超卖
- MACD(移动平均线趋同散度):判断趋势变化和动量
- KDJ(随机指标):提供超买超卖信号
- 布林带:分析价格波动范围
- 成交量分析:确认价格趋势的有效性
- 吞没形态:预测趋势反转
- 十字星:表示市场犹豫不决
- 锤子线:潜在的底部反转信号
- 上吊线:潜在的顶部反转信号
- 多指标交叉验证,确保信号可靠
- 信号可信度评级评分
- 清晰的买入/卖出建议
- 使用Pandas + NumPy这个最简单的组合做回测框架;
- 回测系统支持多股票,多参数,多策略回测;
- 回测系统支持多种指标,如:RSI,MACD,KDJ,布林带,成交量等;
- 回测系统支持多种策略,如:金叉买入,死叉卖出,金叉买入,死叉卖出等;
- 回测系统支持多种参数,如:RSI,MACD,KDJ,布林带,成交量等;
- 自动生成HTML格式报告,未来会支持PDF格式;
- 包含图表和详细分析说明;
- 支持批量股票分析;





- Python 3.8 或更高版本
- pip 包管理工具
- 稳定的网络连接(访问 Yahoo Finance)
-
安装 Python
- 访问 Python官网
- 下载并安装 Python 3.8 或更高版本
- 安装时勾选 "Add Python to PATH"
-
下载项目
- 克隆或下载本项目到本地
- 解压文件(如果是下载的 ZIP)
-
安装依赖包
- 打开命令提示符 (Win + R,输入 cmd)
- 进入项目目录:
cd 项目所在路径
- 安装所有依赖:
pip install -r requirements.txt
-
运行程序
- 在命令提示符中输入:
python stock_analyzer.py
- 在命令提示符中输入:
-
安装Python环境
- 打开终端
- 安装Homebrew(如果没有):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安装Python:
brew install python
- 安装虚拟化环境
python3 -m venv venv #创建虚拟化环境 source venv/bin/activate
-
下载项目代码
- 点击本页面右上角的绿色"Code"按钮
- 选择"Download ZIP"
- 解压下载的文件
-
安装依赖包
- 打开终端
- 进入项目目录:
cd 项目所在路径
- 安装依赖:
pip3 install -r requirements.txt
-
运行程序 #确保安装了Venv虚拟化环境之后,先激活虚拟化,再运行程序
- 在终端中输入:
source venv/bin/activate python stock_analyzer.py
- 在终端中输入:
- 或者在终端中输入,执行main.py,这是另一个快速分析结果:
source venv/bin/activate python main.py
- 用于处理操作系统中的文件路径 appdirs==1.4.4
- Python 的网页解析库,用于提取网页数据 beautifulsoup4==4.13.3
- 提供 SSL/TLS 证书验证功能 certifi==2025.1.31
- 字符编码检测库 charset-normalizer==3.4.1
- 事件驱动编程库 eventkit==1.0.3
- 不可变字典实现 frozendict==2.4.6
- HTML 和 XML 文件解析器 html5lib==1.1
- Interactive Brokers Python API 的异步封装库,用于股票交易 ib-insync==0.9.86
- 国际化域名支持库 idna==3.10
- XML 和 HTML 处理库,性能优秀 lxml==5.3.1
- Python 多任务处理库 multitasking==0.0.11
- 解决 Jupyter 中的异步嵌套问题 nest-asyncio==1.6.0
- 数值计算库,提供多维数组支持 numpy==2.0.2
- 数据分析处理库,提供 DataFrame 数据结构 pandas==2.2.3
- 基于 Pandas 的技术分析指标库,用于金融市场分析 pandas_ta==0.3.14b0
- 简单而小巧的 ORM 数据库框架 peewee==3.17.9
- 日期时间处理工具库 python-dateutil==2.9.0.post0
- 时区处理库 pytz==2025.1
- HTTP 请求库 requests==2.32.3
- 任务调度库 schedule==1.2.2
- 科学计算库 scipy==1.13.1
- Python 2 和 3 兼容性工具库 six==1.17.0
- beautifulsoup4 的依赖库 soupsieve==2.6
- 类型提示扩展库 typing_extensions==4.12.2
- HTTP 客户端库(2.X版本和yfinance0.2.54不兼容,所以只能用1.26.6) urllib3==1.26.6
- 处理 HTML 和 XML 编码的库 webencodings==0.5.1
- Yahoo Finance 数据获取库,用于获取股票市场数据 yfinance==0.2.54
- 进度条显示库,用于显示循环进度 tqdm==4.67.1
-
安装依赖失败
# 如果安装失败,可以尝试更新 pip # Windows: python -m pip install --upgrade pip # Mac: pip3 install --upgrade pip # 然后重新安装依赖 pip install -r requirements.txt
-
lxml 安装问题
- Windows: 可能需要安装 Visual C++ Build Tools
- Mac: 可能需要安装 Xcode Command Line Tools
xcode-select --install
-
数据获取超时
- 检查网络连接
- 确保能够访问 Yahoo Finance
- 考虑使用代理服务器
- 直接输入股票代码,如:AAPL, GOOGL
- 支持同时分析多个股票(最多10个)
- 股票代码之间用空格分隔
- 分析完成后会自动在reports文件夹下生成HTML报告,使用浏览器打开HTML文件即可查看详细分析
- 如果你对HTML报告形式,样式,色彩不满意,可以在stock_analyzer.py中修改,不会改代码就让Cursor帮你改
- 当然了,Cursor也可以帮你输出PDF格式的报告,也可以分目录分时间的输出,看你的想象力了
- 确保网络连接正常
- 检查股票代码是否正确
- 确认是否在美股交易时间运行
- 查看logs文件夹下的日志文件获取详细错误信息
- 检查依赖是否升级到合适版本
- 建议在美股交易时段运行,获取最新数据
- 定期更新Python和依赖包
- 分析结果仅供参考,请结合其他因素做出投资决策
- 建议定期更新依赖包,建议用下列指令更新:
- 安装 pur
pip install pur
- 更新 requirements.txt
pur -r requirements.txt
-
pur 是一个专门用于更新 requirements.txt 文件的 Python 工具。下面是用法:
-
只更新指定的包
pur django pytest -r requirements.txt
- 预览会更新什么(不实际更新)
pur --dry-run -r requirements.txt
- 强制更新到最新版本(忽略版本限制
pur --force -r requirements.txt
- 更新时保存备份
pur --backup -r requirements.txt
- 遇到出现依赖错误怎么办,比如如下提示:
245 - yfinance - ERROR - NVDA: No price data found, symbol may be delisted (period=1y)
- 解决方法,使用pip手动升级对应的依赖,一般即可解决问题,如果实在解决不了问题,把错误提示发给Cursor,按照引导Debug:
pip install --upgrade yfinance
- 关注项目更新,及时同步最新代码
- 首次运行可能需要较长时间下载依赖包
- 确保安装的 Python 版本兼容所有依赖
- 如遇到 SSL 证书问题,请确保系统时间正确
- 建议在虚拟环境中运行项目
如果使用中遇到问题,欢迎提交Issue或Pull Request。
本工具仅供学习和研究使用,不构成任何投资建议和风险控制依据。该工具可能会对行业研究员,公司研究员和注重价值投资的个人投资者提供价值。但是,无论如何,投资者应当对自己的投资决策独立负责。
最后强调:市场有风险,投资需谨慎,不要轻信任何信息,要有自己的独立价值体系和判断能力。
本项目采用 GPLv3 许可证 - 详情请参见 LICENSE 文件。下面是我的声明:
-
我本身是 理查德·斯托曼 的粉丝和 FSF 的资深赞助会员,在 MIT 许可证 和 GPLv3 许可证 的选择上,我希望采用自由软件基金会 (FSF) 的方式处理许可证问题。希望大家遵守 GPLv3 条款,开源你们的成果,并且沿用 GPLv3 协议,让更多的人从中受益。
-
我在标准 GPLv3 许可证的末尾追加了一段遵循协议的免责声明,全文如下:(本项目特指:TradeMind)
This project is licensed under the GNU General Public License v3.0 (GPL-3.0). This software is provided 'as-is' without any warranty of any kind, express or implied, including but not limited to the warranties of merchantability or fitness for a particular purpose. In no event will the authors or copyright holders be liable for any damages.
中文含义为:
本项目采用 GNU 通用公共许可证 v3.0 (GPL-3.0) 许可。本软件按“现状”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性或特定用途适用性的保证。在任何情况下,作者或版权持有者均不对任何损害负责。
- 我已经可以预感到很多大佬沿用这个思路,可以开发出更强更完善的系统造福散户,谢谢你们!🙏🙏🙏
“In this cybernetic realm, we shall ultimately ascend to digital rebirth,Long live the Free Software Movement!”
— Yagami
2025-02-11