# stock data **Repository Path**: shenxianbu4/stock-data ## Basic Information - **Project Name**: stock data - **Description**: 个功能完整的股票K线数据获取和技术指标分析系统,支持多种数据源和K线周期,使用TA-Lib计算技术指标。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-19 - **Last Updated**: 2025-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 股票K线数据分析系统 一个功能完整的股票K线数据获取和技术指标分析系统,支持多种数据源和K线周期,使用TA-Lib计算技术指标。 ## 🎯 主要功能 - **多数据源支持**: Yahoo Finance、AKShare、Tushare - **四种K线周期**: 60分钟线、日线、周线、月线 - **技术指标计算**: 使用TA-Lib计算MA、RSI、MACD、布林带、KDJ等指标 - **交易信号生成**: 自动生成多头和空头交易信号 - **数据验证清洗**: 自动处理异常值和缺失数据 - **结果导出**: 保存为CSV格式,支持Excel打开 ## 📊 支持的市场 | 市场 | 代码格式 | 示例 | |------|----------|------| | 美股 | 股票代码 | AAPL, MSFT, TSLA | | A股 | 代码.交易所 | 600000.SH, 000001.SZ | | 港股 | 代码.HK | 0700.HK, 9988.HK | | 期货 | 代码9999 | RB9999, AU9999 | ## 📊 支持的数据源 | 数据源 | 特点 | 支持市场 | 费用 | 推荐度 | |--------|------|----------|------|--------| | **Baostock** | 免费、稳定、专业A股数据 | A股 | 免费 | ⭐⭐⭐⭐⭐ | | **Yahoo Finance** | 国际股票数据 | 全球股票 | 免费 | ⭐⭐⭐⭐ | | **AKShare** | 中国金融数据 | A股、期货 | 免费 | ⭐⭐⭐ | | **Tushare** | 专业金融数据平台 | A股、基金等 | 需要token | ⭐⭐⭐⭐ | ## ⏰ 支持的K线周期 - **60分钟**: 60分钟K线数据 - **日线**: 日K线数据 - **周线**: 周K线数据 - **月线**: 月K线数据 ## 🚀 快速开始 ### 1. 安装依赖 ```bash pip install pandas numpy yfinance akshare tushare talib baostock ``` **推荐**: 使用Baostock获取A股数据,免费且稳定。 ### 2. 配置数据源 编辑 `config.py` 文件选择数据源: ```python # 推荐:使用Baostock获取A股数据(免费、稳定) DATA_SOURCE = 'baostock' # 其他选项: # DATA_SOURCE = 'yfinance' # 国际股票 # DATA_SOURCE = 'akshare' # 中国A股/期货 # DATA_SOURCE = 'tushare' # 专业金融数据(需要token) ``` ### 3. 基本使用 **A股数据分析**(推荐使用Baostock): ```bash # 分析平安银行的日线数据 python stock_analyzer.py 000001.SZ 日线 # 分析浦发银行的周线数据 python stock_analyzer.py 600000.SH 周线 # 支持多种股票代码格式 python stock_analyzer.py 000001 日线 # 简化格式 python stock_analyzer.py 600000 日线 # 简化格式 ``` **国际股票分析**(需要切换到yfinance): ```bash # 分析苹果股票的日线数据 python stock_analyzer.py AAPL 日线 # 分析腾讯的周线数据 python stock_analyzer.py 0700.HK 周线 ``` ### 3. 演示模式 ```bash # 运行演示,分析多个股票 python example_usage.py demo # 交互模式,手动输入股票代码 python example_usage.py interactive # 显示帮助信息 python example_usage.py help ``` ## 📁 文件结构 ``` stock01/ ├── config.py # 系统配置文件 ├── data_fetcher.py # 数据获取模块 ├── ta_calculator.py # 技术指标计算模块 ├── utils.py # 工具函数 ├── main.py # 原始主程序 ├── stock_analyzer.py # 简化版分析工具 ├── example_usage.py # 使用示例 └── README.md # 说明文档 ``` ## ⚙️ 配置说明 在 `config.py` 中可以配置: - **数据源选择**: `DATA_SOURCE = 'yfinance'` - **支持周期**: `SUPPORTED_PERIODS = ['60分钟', '日线', '周线', '月线']` - **技术指标参数**: MA周期、RSI周期、MACD参数等 - **缓存设置**: 启用缓存减少API调用 ## 📈 技术指标说明 ### 🎯 周期特定参数配置 **重要改进**: 系统现在根据不同K线周期自动选择合适的技术指标参数,确保分析结果的有效性。 #### 参数选择原理 不同时间框架需要不同的参数来获得有意义的分析结果: | K线周期 | 时间特点 | 参数调整原理 | 适用场景 | |---------|----------|--------------|----------| | **60分钟** | 短期波动 | 参数相对敏感,快速反应价格变化 | 日内交易、短期操作 | | **日线** | 经典周期 | 使用标准技术分析参数 | 中短期投资、波段操作 | | **周线** | 中期趋势 | 参数适中,过滤短期噪音 | 中期投资、趋势跟踪 | | **月线** | 长期趋势 | 参数较大,关注主要趋势 | 长期投资、大趋势分析 | #### 具体参数配置 **60分钟线参数**: - MA周期: [5, 10, 20, 48] → 5小时、10小时、20小时、2天 - RSI周期: 14 → 14小时 - MACD: (12, 26, 9) → 标准参数 - 布林带: (20, 2) → 20小时 - KDJ: (9, 3, 3) → 9小时 **日线参数**(经典配置): - MA周期: [5, 10, 20, 60] → 5天、10天、20天、60天 - RSI周期: 14 → 14天 - MACD: (12, 26, 9) → 经典参数 - 布林带: (20, 2) → 20天 - KDJ: (9, 3, 3) → 9天 **周线参数**: - MA周期: [4, 8, 13, 26] → 1月、2月、3月、6个月 - RSI周期: 14 → 14周(约3.5个月) - MACD: (12, 26, 9) → 标准参数 - 布林带: (20, 2) → 20周(约5个月) - KDJ: (9, 3, 3) → 9周(约2个月) **月线参数**: - MA周期: [3, 6, 12, 24] → 3月、6月、1年、2年 - RSI周期: 14 → 14月(约1年多) - MACD: (12, 26, 9) → 标准参数 - 布林带: (20, 2) → 20月(约1.7年) - KDJ: (9, 3, 3) → 9月 ### 📊 技术指标详解 ### 移动平均线 (MA) - **简单移动平均线 (SMA)**: 根据周期自动调整的均线系统 - **指数移动平均线 (EMA)**: 对近期价格赋予更高权重 - **多头排列**: 短期均线在长期均线之上,表示上升趋势 ### 相对强弱指数 (RSI) - **RSI值**: 衡量价格变动的强度和速度 - **超买信号**: RSI > 70,可能面临回调 - **超卖信号**: RSI < 30,可能出现反弹 - **中性区间**: 30-70之间为正常波动区间 ### MACD指标 - **MACD线**: 快线与慢线的差值 - **信号线**: MACD的移动平均线 - **柱状图**: MACD与信号线的差值 - **金叉**: MACD上穿信号线,看涨信号 - **死叉**: MACD下穿信号线,看跌信号 ### 布林带 (BOLL) - **上轨**: 中轨 + 2倍标准差 - **中轨**: 移动平均线 - **下轨**: 中轨 - 2倍标准差 - **带宽**: 衡量市场波动性 - **价格位置**: 价格在布林带中的相对位置 ### KDJ指标 - **K值**: 快速随机指标 - **D值**: K值的移动平均 - **J值**: 3K - 2D,更敏感的指标 - **金叉**: K线上穿D线,买入信号 - **死叉**: K线下穿D线,卖出信号 ### 复合交易信号 - **多头信号**: 价格突破中期均线 + MACD金叉 + RSI未超买 - **空头信号**: 价格跌破中期均线 + MACD死叉 + RSI未超卖 - **趋势强度**: 综合多个指标的评分系统 ## 📊 输出文件格式 生成的CSV文件包含以下列: - 基础数据: timestamp, open, high, low, close, volume - 技术指标: 各种MA、RSI、MACD、布林带、KDJ等 - 交易信号: 多头信号、空头信号、趋势强度等 - 分析时间: analysis_date ## 🔧 故障排除 ### 常见问题 1. **网络连接问题** - 检查网络连接 - 尝试更换数据源 2. **股票代码格式错误** - 美股直接使用代码: AAPL - A股使用: 600000.SH 或 000001.SZ - 港股使用: 0700.HK 3. **依赖包安装问题** ```bash # 如果TA-Lib安装失败,可以尝试 conda install -c conda-forge ta-lib ``` 4. **数据获取失败** - 检查股票代码是否正确 - 确认市场是否开放 - 查看日志了解详细错误 ### 日志查看 程序运行时会输出详细日志,包括: - 数据获取进度 - 指标计算状态 - 错误信息和警告 ## 🎯 使用建议 ### 📋 周期选择指南 1. **60分钟线**: 适合日内交易者 - 优势: 信号频繁,适合短期操作 - 注意: 噪音较多,需要严格止损 - 建议: 结合日线趋势方向操作 2. **日线**: 最常用的分析周期 - 优势: 信号稳定,经典技术分析 - 适用: 大多数投资者的首选 - 建议: 新手从日线开始学习 3. **周线**: 中期趋势分析 - 优势: 过滤短期噪音,趋势清晰 - 适用: 波段操作,中期投资 - 建议: 与日线结合使用 4. **月线**: 长期投资分析 - 优势: 大趋势明确,信号可靠 - 适用: 长期投资决策 - 建议: 用于确定大方向 ### 💡 实用技巧 1. **多周期分析**: ```bash # 先看月线确定大趋势 python stock_analyzer.py AAPL 月线 # 再看周线确定中期方向 python stock_analyzer.py AAPL 周线 # 最后看日线寻找具体入场点 python stock_analyzer.py AAPL 日线 ``` 2. **参数理解**: - 同样的MA5在不同周期含义完全不同 - 60分钟线的MA5 = 5小时均价 - 日线的MA5 = 5天均价 - 周线的MA5 = 5周均价 3. **信号确认**: - 不要单独依赖某个指标 - 多个指标共振时信号更可靠 - 注意背离现象的重要性 4. **风险控制**: - 短周期信号频繁但噪音多 - 长周期信号稳定但滞后 - 根据自己的交易风格选择合适周期 ### 🔍 数据分析建议 1. **首次使用**: 建议先运行演示模式熟悉系统 2. **数据分析**: 生成的CSV文件可以导入Excel进行进一步分析 3. **交易信号**: 关注LONG_SIGNAL和SHORT_SIGNAL列的信号 4. **趋势判断**: TREND_STRENGTH值越高表示趋势越强 5. **指标背离**: 注意价格与指标的背离现象 ## 📝 更新日志 ### v1.3 (当前版本) - Baostock数据源支持 - 🎯 **新增数据源**: 添加Baostock证券数据平台支持 - 📊 **A股数据优化**: 免费、稳定的A股数据获取 - 🔧 **代码格式支持**: 支持多种A股代码格式(000001.SZ, 600000.SH, 000001, 600000) - 📈 **周期支持**: 完整支持日线、周线、月线数据 - 🛠️ **错误修复**: 修复周线/月线数据字段兼容性问题 ### v1.2 - 智能参数配置 - 🎯 **重大改进**: 根据K线周期自动选择合适的技术指标参数 - 📊 添加周期特定参数配置系统 - 📖 完善技术指标参数选择原理说明 - 🔧 优化交易信号生成逻辑 - 📚 增加多周期分析使用指南 ### v1.1 - ✅ 修改K线周期为: 60分钟、日线、周线、月线 - ✅ 优化数据获取逻辑 - ✅ 添加简化版分析工具 - ✅ 增加使用示例和演示模式 - ✅ 完善文档说明 ### v1.0 - 初始版本,支持基础功能 ## 📞 技术支持 如有问题或建议,请: 1. 查看本文档的故障排除部分 2. 检查日志输出了解详细错误 3. 确认依赖包正确安装 --- **免责声明**: 本工具仅用于技术分析学习,不构成投资建议。投资有风险,决策需谨慎。