# StockPulse **Repository Path**: 461827813/StockPulse ## Basic Information - **Project Name**: StockPulse - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-10 - **Last Updated**: 2025-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 1. 项目名称 股票脉搏监测系统 ### 2. 项目概述 该项目是一个功能强大的桌面应用程序,专注于实时股票行情监控与语音播报。程序通过连接通达信行情服务器,获取实时行情数据,并运用多种技术手段,包括技术指标分析、多线程/异步处理、窗口自动化控制以及系统资源监控等,实现对特定股票和指数的实时关注与及时提醒。系统集成了多周期的MACD监测、股票跳转以及语音播报功能,能够准确识别MACD金叉、死叉交易信号,为用户提供全面且及时的股票市场信息。 ### 3. 项目职责 1. **数据加载与处理** - 编写`loader.py`模块,从`监测股票列表.xlsx`文件中加载股票和指数数据。处理未知数据时,使用默认值(如“未知股票”“未知指数”)确保数据的完整性。 - 对数据进行清洗和格式化,将股票和指数信息整理为包含(类型,市场,代码,名称)的元组列表,为后续分析提供准确的数据基础。 2. **行情数据获取** - 在`tdxip.py`中,利用`pytdx.hq.TdxHq_API`模块实现通达信行情服务器的连接。支持从默认IP地址(如`122.51.232.182`)开始连接,若失败则尝试从通达信客户端的网络连接中获取可用IP地址。 - 实现IP自动切换机制,确保在网络不稳定或服务器连接异常时,系统能够自动尝试连接其他可用的服务器IP,保证数据获取的稳定性。 3. **技术指标计算** - 在`mytt.py`中实现常见技术指标(如MACD)的计算。通过`EMA`函数计算指数移动平均线,进而计算出MACD指标的DIF、DEA和MACD值,并对结果进行四舍五入处理。 - 可通过`config`参数调整MACD计算的默认参数(如SHORT=12, LONG=26, M=9),方便根据不同需求进行灵活配置。 4. **多线程并发处理** - 使用`concurrent.futures`和`threading`模块,在`macd_1m.py`、`macd_15m.py`和`macd_15s.py`中实现并发数据拉取与处理。每个监测周期(15秒钟、1分钟、15分钟)都独立运行一个线程,提高系统的处理效率。 - 为每个线程设置独立的socket超时时间(如10秒),避免因网络问题导致线程长时间阻塞。同时,使用线程池并行处理多个股票代码,支持同时监控多个股票和指数。 5. **语音播报功能** - 运用`edge_tts`实现中文文本转语音,在`spoken.py`中配置语音合成参数(如语速、音量、语音类型),生成清晰自然的语音提示。 - 使用`pygame`播放提示音或合成的音频文件,通过异步方式处理语音播放任务,确保语音播报的及时性。同时,实现语音播放队列和文件监控机制,当监测到`temp.txt`文件有新内容时,及时进行语音播报。 6. **图形界面开发** - 使用`tkinter`构建GUI界面,在`tk_tdx.py`中创建一个包含股票和指数列表的窗口。窗口置顶显示,方便用户随时查看。 - 为每个股票和指数创建按钮,点击按钮可通过`pygetwindow`和`pyautogui`实现快速跳转至通达信客户端,查看详细行情信息。同时,支持窗口滚动条功能,方便浏览大量股票代码。 ### 4. 项目成果 1. **实时监测功能**:实现了对股票和指数的多周期(15秒钟、1分钟、15分钟)MACD监测,能够实时捕捉MACD金叉、死叉交易信号,并在控制台以不同颜色文本显示,方便用户直观识别。 2. **语音提醒服务**:通过语音播报功能,及时提醒用户关注的交易信号,确保用户不会错过重要的市场变化。语音播报延迟 ≤ 1 秒,保证信息传递的及时性。 3. **用户交互体验**:图形界面方便用户快速访问关注的股票和指数,支持一键跳转至通达信客户端,提升了用户的操作便捷性和使用体验。 4. **系统稳定性和性能**:系统具备较高的响应性和可靠性,行情刷新频率 ≤ 5 秒,确保用户获取到最新的市场行情。同时,支持通达信IP自动切换机制,有效应对网络不稳定或服务器故障等问题。 ### 5. 技术亮点 1. **多线程与异步处理**:采用多线程和异步编程技术,提高系统的并发处理能力。通过线程池并行处理多个股票代码的行情数据,减少数据处理时间,确保系统在监控大量股票和指数时仍能保持高效稳定。 2. **数据处理与分析**:使用`pandas`和`numpy`对行情数据进行结构化处理和数值运算,提高数据处理效率。通过技术指标分析,为用户提供准确的交易信号判断依据。 3. **语音合成与播放**:利用`edge_tts`和`pygame`实现中文文本转语音和音频播放功能,支持自定义语音参数(如语速、音量),增强用户交互体验。 4. **窗口自动化控制**:通过`pygetwindow`和`pyautogui`实现窗口自动化控制,方便用户快速跳转至通达信客户端查看详情,提高操作效率。 ### 6. 项目挑战与解决方案 1. **网络连接稳定性**:在网络不稳定的情况下,通达信服务器连接可能中断。通过实现IP自动切换机制,系统能够自动尝试连接其他可用的服务器IP,确保数据获取的连续性。 2. **数据处理效率**:监控多个股票代码时,数据处理量较大,可能导致系统响应变慢。采用多线程和并发处理技术,将不同监测周期的任务分配到独立线程中执行,并使用线程池并行处理多个股票代码,提高数据处理效率,确保系统能够实时响应。 3. **语音播报延迟**:为了减少语音播报的延迟,采用异步处理和队列机制,将语音合成和播放任务异步执行,确保语音播报能够及时准确地进行。同时,优化文件监控和读取机制,减少文件操作时间。 ### 7. 环境依赖 #### 7.1 硬件要求 - **CPU**:≥ 双核处理器,确保系统能够处理多线程并发任务,提高数据处理速度。 - **内存**:≥ 4GB,为程序运行和数据处理提供足够的内存空间,避免因内存不足导致系统性能下降。 - **网络**:稳定的互联网连接,用于获取通达信行情服务器的实时行情数据,确保数据的及时性和准确性。 #### 7.2 软件环境 - **Python**:≥ 3.8,项目使用了Python的一些新特性和库,确保Python版本的兼容性。 ```bash pip install pytdx pandas numpy concurrent.futures edge-tts pygame psutil pygetwindow pyautogui tkinter mytt ``` - **第三方库**: - `pytdx`:用于连接通达信行情服务器,获取实时行情数据。 - `pandas`和`numpy`:用于数据处理和数值运算,提高数据处理效率。 - `concurrent.futures`和`threading`:用于实现多线程和并发处理,提高系统性能。 - `edge_tts`:实现中文文本转语音功能,提供清晰自然的语音提示。 - `pygame`:用于播放提示音或合成的音频文件。 - `psutil`:用于获取系统进程和网络连接信息,实现通达信服务器IP的自动切换。 - `pygetwindow`和`pyautogui`:用于实现窗口自动化控制,方便用户快速跳转至通达信客户端。 - `tkinter`:用于构建图形用户界面,提供直观的用户交互体验。 - `mytt`:自定义模块,实现技术指标(如MACD)的计算。 ### 8. 未来规划 1. **Web前端展示**:支持Web前端展示,使用Flask或FastAPI提供后端服务,方便用户通过网页访问系统,实现跨平台使用。 2. **机器学习预测模型**:加入机器学习预测模型,结合历史行情数据和技术指标,提高交易信号的准确性和可靠性,为用户提供更智能的投资建议。