Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

ETF Analyzer

交互式 ETF/指数 历史数据分析与预测工具:多数据源兜底、可视化、CSV 导出、基础/高级预测。

功能特性

  • 数据获取:多 akshare API 自动兜底,智能处理 sz/sh 前缀
  • 统计展示:基础统计与最新数据预览
  • 可视化:价格趋势图(保存到 etf_png/
  • 导出:历史数据 CSV(保存到 etf_csv/
  • 预测:
    • 基础:线性回归 + ±10% 涨跌停限制
    • 高级:技术特征工程 + TimeSeriesSplit + GridSearchCV(RF/GBDT/ElasticNet)

目录与输出

  • 代码:etf_analyzer.py
  • 输出:
    • 图:etf_png/etf_<代码>_trend_<开始>_<结束>.png
    • 表:etf_csv/etf_<代码>_data_<开始>_<结束>.csv
  • .gitignore 已忽略虚拟环境与输出文件

环境与安装

  • Python 3.9+
  • 依赖:pandasnumpymatplotlibscikit-learnakshare

推荐(仓库内已有 venv 示例):

/Users/liuqingyi/test/py39_env/bin/pip install -U numpy pandas matplotlib scikit-learn akshare

或自建虚拟环境:

python -m venv .venv
source .venv/bin/activate
pip install -U numpy pandas matplotlib scikit-learn akshare

使用方法

python etf_analyzer.py

交互步骤:输入 ETF 代码/名称与开始/结束日期 → 可选绘图/导出/预测。 预测选项:1 基础预测;2 高级预测。

高级预测说明

  • 特征:收益/对数收益、均线/乖离、波动率、RSI、MACD、成交量特征(含滞后)
  • 选择:TimeSeriesSplit + GridSearchCV 在 RF/GBDT/ElasticNet 中择优
  • 评估:输出 CV MAE 与留出 MAE;预测下一交易日收盘价与涨幅(±10% 限制)

建议样本≥1年,且优选流动性较好的 ETF。

常见问题

  • 依赖缺失:请激活 venv 并安装依赖
  • 数据为空:
    • 避免未来日期,尝试更早开始日期(如 20230101
    • 尝试添加/去掉 sz/sh 前缀

许可证与信息

  • 许可证:MIT
  • 作者:Liu Qingyi
  • 版本:1.1.0(见 etf_analyzer.py 顶部)

贡献

欢迎 Issue/PR。可讨论新增特征、XGBoost/LightGBM、或改为方向分类任务等。

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages