Skip to content

yingxincui/moment

Repository files navigation

ETF动量策略分析系统

一个基于Streamlit的ETF动量策略分析工具,支持多种ETF组合分析、技术指标分析和Excel报告生成功能。

✨ 主要功能

🎯 核心分析功能

  • 动量策略分析: 基于价格变化的动量指标计算和排名
  • Bias分析: 超买超卖状态分析,多周期偏离度计算(6日、12日、24日)
  • RSI分析: 相对强弱指数分析,超买超卖区域判断
  • 趋势分析: 移动平均线趋势过滤,趋势图表展示
  • 风险控制: 28日均线止损回撤分析
  • 多ETF池支持: 默认组合、科创创业、全球股市轮动、明总定制组合、期权标的组合

🔒 安全特性

  • 暗号验证: 系统访问保护,防止未授权访问
  • Safari免认证: Safari浏览器用户无需输入密码即可访问
  • 会话管理: 防会话劫持,安全登出功能
  • 数据隔离: 不同用户数据相互隔离

🎨 水印功能

  • 自动水印: 所有图表自动添加"公众号:躺赚10研究员"水印
  • 品牌保护: 确保图表来源可追溯,保护知识产权
  • 位置自定义: 支持四个角落位置选择

📊 Excel报告功能

  • 完整报告: 包含所有分析内容的专业Excel格式报告
  • 中文字体支持: 完全支持中文显示,无乱码问题
  • 多工作表: 包含动量分析、Bias分析、RSI分析等多个工作表
  • 一键下载: 所有分析页面都提供Excel报告下载
  • 数据透视: 支持数据筛选和排序功能

📈 技术指标分析

  • Bias分析: 多周期偏离度分析(6日、12日、24日)
    • 中长线超买/超卖:24日BIAS > +9% / < -9%
    • 中线超买/超卖:12日BIAS > +5% / < -5%
    • 短线超买/超卖:6日BIAS > +3.5% / < -3.5%
  • RSI分析: 相对强弱指数分析
    • 超买区:RSI > 70(可考虑卖出)
    • 超卖区:RSI < 30(可考虑买入)
    • 多空分界线:RSI = 50
  • 风险控制: 28日均线止损回撤分析
    • 显示当前价格相对于28日均线的回撤幅度
    • 帮助评估止损风险

🚀 快速开始

1. 环境要求

  • Python 3.7+
  • Windows系统(支持中文字体)

2. 安装依赖

pip install -r requirements.txt

3. 运行应用

streamlit run app.py

4. 访问系统

  • 在浏览器中打开显示的地址
  • 输入暗号进行身份验证
  • 选择ETF池进行分析

📁 项目结构

etf-momentum-strategy/
├── app.py                          # 主应用入口和暗号验证
├── auth_utils.py                   # 认证工具模块
├── watermark_utils.py              # 水印工具模块
├── pdf_report_utils.py             # PDF报告生成工具模块
├── core_strategy.py                # 核心策略逻辑和渲染函数
├── etf_pools.py                    # ETF池配置
├── requirements.txt                # 项目依赖
├── README.md                       # 项目说明文档
├── LICENSE                         # MIT许可证
├── .gitignore                      # Git忽略文件
├── pages/                          # Streamlit页面目录
│   ├── 1_📊_默认组合.py           # 默认ETF组合分析页面
│   ├── 2_🚀_科创创业.py           # 科创创业ETF分析页面
│   ├── 3_🌍_全球股市轮动.py       # 全球股市轮动策略页面
│   ├── 4_👑_明总定制组合.py       # 明总定制组合分析页面
│   ├── 5_📈_期权标的组合.py       # 期权标的组合分析页面
├── etf_cache/                      # ETF数据缓存目录
│   ├── *.csv                       # 缓存的ETF历史数据文件
│   └── cache_meta.json             # 缓存元数据文件

🔧 核心模块说明

主要应用文件

  • app.py: 系统入口点,包含暗号验证和页面重定向逻辑
  • auth_utils.py: 统一的认证工具模块,提供暗号验证和安全检查功能
  • watermark_utils.py: 水印工具模块,为所有图表添加品牌水印
  • excel_report_utils.py: Excel报告生成工具模块,提供完整的分析报告生成功能
  • core_strategy.py: 核心策略实现,包含动量计算、Bias分析、趋势图表、智能缓存管理等所有核心功能
  • etf_pools.py: 定义各种ETF组合配置

页面文件

  • pages/1_📊_默认组合.py: 基础ETF组合分析
  • pages/2_🚀_科创创业.py: 科创相关ETF分析
  • pages/3_🌍_全球股市轮动.py: 全球ETF轮动策略
  • pages/4_👑_明总定制组合.py: 定制ETF组合分析
  • pages/5_📈_期权标的组合.py: 期权标的ETF组合分析

📊 使用方法

1. 基本分析流程

  1. 选择ETF池(默认组合、科创创业、全球股市轮动、明总定制组合、期权标的组合)
  2. 设置分析参数(动量周期、趋势过滤等)
  3. 执行分析,查看结果
  4. 生成Excel报告(可选)

2. Excel报告生成

  1. 完成动量分析后,页面底部会出现"📊 Excel报告下载"区域
  2. 点击"📥 生成Excel分析报告"按钮
  3. 系统自动生成Excel报告并提供下载链接
  4. 报告包含多个工作表:动量分析、Bias分析、RSI分析等

📋 依赖包

主要依赖包括:

  • streamlit: Web应用框架
  • pandas: 数据处理
  • numpy: 数值计算
  • akshare: 金融数据获取(使用新浪财经接口)
  • plotly: 图表绘制
  • openpyxl: Excel文件处理
  • yfinance: 股票数据获取

完整依赖列表请查看 requirements.txt 文件。

🔒 安全说明

  • 系统使用暗号验证保护访问
  • 支持会话管理和防劫持保护
  • 所有图表自动添加水印保护
  • 用户数据相互隔离

📞 技术支持

如果在使用过程中遇到问题,请检查:

  1. 依赖安装: 确保已安装所有必需的Python包
  2. 系统字体: 确保系统中有可用的中文字体
  3. 网络连接: 确保能够访问金融数据API
  4. 浏览器支持: 使用现代浏览器以获得最佳体验

📄 许可证

本项目采用MIT许可证,详见 LICENSE 文件。

🚀 快速开始

环境要求

  • Python 3.8+
  • 推荐使用虚拟环境

安装步骤

  1. 克隆项目
git clone <repository-url>
cd moment
  1. 安装依赖
pip install -r requirements.txt
  1. 启动应用
streamlit run app.py

功能说明

  • AI分析功能: 点击表格上方的"🤖 AI分析"按钮,系统会自动复制分析数据到剪贴板
  • 一键复制: 使用st-copy-to-clipboard包,自动复制数据
  • 简单安装: 只需安装一个Python包
  • 一键使用: 复制后直接粘贴到AI助手即可开始分析
  • 智能缓存: 历史数据缓存提升性能,当天数据实时获取确保准确性

🦁 Safari浏览器免认证

自动检测机制

  • 智能识别: 系统自动检测Safari浏览器
  • 免密码访问: Safari用户无需输入暗号即可使用
  • 安全保护: 其他浏览器仍需正常认证流程

检测原理

  • User Agent检测: 通过JavaScript检测浏览器标识
  • 精确识别: 区分Safari与其他基于WebKit的浏览器
  • 自动重定向: 检测到Safari后自动设置免认证状态

使用说明

  1. Safari用户: 直接访问系统,无需任何操作
  2. 其他浏览器: 需要输入暗号"xldl"进行认证
  3. 测试模式: 可通过URL参数?skip_auth=true跳过认证

缓存策略

  • 历史数据缓存: 自动缓存历史数据,避免重复API调用
  • 当天数据实时: 每次访问都获取当天最新数据,确保分析准确性
  • 智能合并: 自动合并历史缓存和当天实时数据
  • 容错机制: API失败时自动使用历史缓存数据

缓存管理

  • 侧边栏显示: 实时显示缓存状态和统计信息
  • 一键清除: 支持手动清除所有缓存数据
  • 自动更新: 缓存数据自动更新,无需手动维护

性能优势

  • 首次访问: 从API获取完整数据并缓存
  • 后续访问: 使用缓存历史数据 + 当天实时数据
  • 网络优化: 减少API调用次数,提升响应速度
  • 数据完整性: 确保分析数据的完整性和时效性

⚠️ 免责声明

本系统仅供学习和研究使用,所有分析结果仅供参考,不构成投资建议。投资有风险,入市需谨慎。使用本系统进行投资决策的风险由用户自行承担。


开发团队: 躺赚10研究员
项目地址: [GitHub Repository]
联系方式: 通过公众号"躺赚10研究员"联系

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages