Skip to content

sambazhu/ETF-Rotation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

资金驱动ETF轮动策略交易系统

基于PRD实现的三层ETF轮动系统(宏观→宽基→行业),集成:

  • Tushare数据接入(fund_daily / etf_share_size / index_daily / trade_cal
  • 动态因子权重(trending/choppy/transitional
  • 风格检测与切换缓冲(大盘/小盘)
  • 趋势择时与动态仓位
  • 回测、交易记录与绩效输出

目录结构

ETF_Rotation_Strategy/
├── README.md
├── requirements.txt
├── config/
│   ├── etf_pool.py
│   └── strategy_config.py
├── data/
│   ├── data_fetcher.py
│   ├── data_processor.py
│   └── data_sources.py
├── strategy/
│   ├── macro_signal.py
│   ├── broad_based_rotation.py
│   ├── sector_rotation.py
│   ├── style_detector.py
│   ├── timing_model.py
│   ├── dynamic_weights.py
│   └── signal_generator.py
├── backtest/
│   ├── backtest_engine.py
│   ├── portfolio_manager.py
│   ├── performance.py
│   └── trade_logger.py
└── main.py

运行方式

  1. 安装依赖:
pip install -r ETF_Rotation_Strategy/requirements.txt
  1. 确保根目录 .env 已包含:
TUSHARE_TOKEN=你的token
DATA_SOURCE=tushare
  1. 执行回测:
python -m ETF_Rotation_Strategy.main

输出结果

默认输出到 ETF_Rotation_Strategy/outputs/

  • metrics.txt:年化收益、最大回撤、夏普、胜率等
  • nav_history.csv:策略/基准净值
  • trades.csv:交易明细
  • signals.csv:每日信号
  • holdings.csv:期末持仓
  • report.html:可视化回测网页报告(指标卡片 + 净值/回撤/仓位图 + 表格)

参数调整

主要参数在 ETF_Rotation_Strategy/config/strategy_config.py

  • 回测区间、初始资金、交易成本
  • 动态权重配置
  • 仓位/调仓约束
  • 止损止盈阈值
  • 缓存开关:use_cache(默认True)和 force_refresh(默认False

数据缓存说明

  • 默认启用缓存,缓存目录为 ETF_Rotation_Strategy/outputs/cache/
  • 缓存按「接口+代码+起止日期」保存CSV
  • 首次会拉取并落盘,后续同区间优先读取本地缓存
  • 如需强制重拉,将 force_refresh=True

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages