一个基于Streamlit的ETF动量策略分析工具,支持多种ETF组合分析、技术指标分析和Excel报告生成功能。
- 动量策略分析: 基于价格变化的动量指标计算和排名
- Bias分析: 超买超卖状态分析,多周期偏离度计算(6日、12日、24日)
- RSI分析: 相对强弱指数分析,超买超卖区域判断
- 趋势分析: 移动平均线趋势过滤,趋势图表展示
- 风险控制: 28日均线止损回撤分析
- 多ETF池支持: 默认组合、科创创业、全球股市轮动、明总定制组合、期权标的组合
- 暗号验证: 系统访问保护,防止未授权访问
- Safari免认证: Safari浏览器用户无需输入密码即可访问
- 会话管理: 防会话劫持,安全登出功能
- 数据隔离: 不同用户数据相互隔离
- 自动水印: 所有图表自动添加"公众号:躺赚10研究员"水印
- 品牌保护: 确保图表来源可追溯,保护知识产权
- 位置自定义: 支持四个角落位置选择
- 完整报告: 包含所有分析内容的专业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日均线的回撤幅度
- 帮助评估止损风险
- Python 3.7+
- Windows系统(支持中文字体)
pip install -r requirements.txtstreamlit run app.py- 在浏览器中打开显示的地址
- 输入暗号进行身份验证
- 选择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组合分析
- 选择ETF池(默认组合、科创创业、全球股市轮动、明总定制组合、期权标的组合)
- 设置分析参数(动量周期、趋势过滤等)
- 执行分析,查看结果
- 生成Excel报告(可选)
- 完成动量分析后,页面底部会出现"📊 Excel报告下载"区域
- 点击"📥 生成Excel分析报告"按钮
- 系统自动生成Excel报告并提供下载链接
- 报告包含多个工作表:动量分析、Bias分析、RSI分析等
主要依赖包括:
streamlit: Web应用框架pandas: 数据处理numpy: 数值计算akshare: 金融数据获取(使用新浪财经接口)plotly: 图表绘制openpyxl: Excel文件处理yfinance: 股票数据获取
完整依赖列表请查看 requirements.txt 文件。
- 系统使用暗号验证保护访问
- 支持会话管理和防劫持保护
- 所有图表自动添加水印保护
- 用户数据相互隔离
如果在使用过程中遇到问题,请检查:
- 依赖安装: 确保已安装所有必需的Python包
- 系统字体: 确保系统中有可用的中文字体
- 网络连接: 确保能够访问金融数据API
- 浏览器支持: 使用现代浏览器以获得最佳体验
本项目采用MIT许可证,详见 LICENSE 文件。
- Python 3.8+
- 推荐使用虚拟环境
- 克隆项目
git clone <repository-url>
cd moment- 安装依赖
pip install -r requirements.txt- 启动应用
streamlit run app.py- AI分析功能: 点击表格上方的"🤖 AI分析"按钮,系统会自动复制分析数据到剪贴板
- 一键复制: 使用st-copy-to-clipboard包,自动复制数据
- 简单安装: 只需安装一个Python包
- 一键使用: 复制后直接粘贴到AI助手即可开始分析
- 智能缓存: 历史数据缓存提升性能,当天数据实时获取确保准确性
- 智能识别: 系统自动检测Safari浏览器
- 免密码访问: Safari用户无需输入暗号即可使用
- 安全保护: 其他浏览器仍需正常认证流程
- User Agent检测: 通过JavaScript检测浏览器标识
- 精确识别: 区分Safari与其他基于WebKit的浏览器
- 自动重定向: 检测到Safari后自动设置免认证状态
- Safari用户: 直接访问系统,无需任何操作
- 其他浏览器: 需要输入暗号"xldl"进行认证
- 测试模式: 可通过URL参数
?skip_auth=true跳过认证
- 历史数据缓存: 自动缓存历史数据,避免重复API调用
- 当天数据实时: 每次访问都获取当天最新数据,确保分析准确性
- 智能合并: 自动合并历史缓存和当天实时数据
- 容错机制: API失败时自动使用历史缓存数据
- 侧边栏显示: 实时显示缓存状态和统计信息
- 一键清除: 支持手动清除所有缓存数据
- 自动更新: 缓存数据自动更新,无需手动维护
- 首次访问: 从API获取完整数据并缓存
- 后续访问: 使用缓存历史数据 + 当天实时数据
- 网络优化: 减少API调用次数,提升响应速度
- 数据完整性: 确保分析数据的完整性和时效性
本系统仅供学习和研究使用,所有分析结果仅供参考,不构成投资建议。投资有风险,入市需谨慎。使用本系统进行投资决策的风险由用户自行承担。
开发团队: 躺赚10研究员
项目地址: [GitHub Repository]
联系方式: 通过公众号"躺赚10研究员"联系