Skip to content

cloudinbanana/01.Asset_bot

Repository files navigation

项目说明

本项目提供 自动抓取资产市值数据多策略量化回测 以及 企业微信自动报告 的完整流程,支持常驻运行和多时点调度。

功能特性

  1. 数据抓取: 每日定时从 companiesmarketcap.com 抓取全球资产市值排名数据。
  2. 量化回测: 内置多因子轮动策略引擎,支持自定义策略扩展。
  3. 自动报告: 生成包含权益曲线、最大回撤、日收益分布及持仓明细的图表报告,并通过企业微信推送。

文件结构

.
├── fetch_assets_by_market_cap.py   # 数据抓取脚本
├── wechat_notify.py                # 抓取状态通知脚本
├── runner.py                       # 全流程调度器 (抓取 -> 通知 -> 回测 -> 报告)
├── data/                           # 存放抓取的原始 Excel 数据
└── backtest/                       # 回测模块
    ├── run_backtest.py             # 回测执行入口
    ├── send_report.py              # 回测报告发送入口
    ├── main/                       # 回测引擎核心
    ├── strategies/                 # 策略实现目录
    │   ├── momentum.py             # 长动量轮动策略
    │   └── medium_term_momentum.py # 中动量轮动策略
    └── results/                    # 回测产出结果 (CSV/PNG)

运行环境与依赖

  • Python 环境:xbxpy12
  • 依赖包:
    conda run -n xbxpy12 pip install requests beautifulsoup4 pandas openpyxl matplotlib pillow

快速开始

1. 数据抓取

手动触发一次数据抓取:

conda run -n xbxpy12 python fetch_assets_by_market_cap.py

数据将保存至 ./data/YYYY-MM-DD_assets_by_market_cap.xlsx

2. 策略回测

运行回测(默认使用 momentum_rotation 策略):

# 运行默认策略
conda run -n xbxpy12 python backtest/run_backtest.py

# 运行中动量策略
conda run -n xbxpy12 python backtest/run_backtest.py --strategy medium_term_momentum

回测结果(CSV数据表与PNG仪表盘)将生成在 backtest/results/ 目录下。

3. 发送报告

将最新的回测结果发送至企业微信:

# 发送默认策略报告
conda run -n xbxpy12 python backtest/send_report.py

# 发送指定策略报告
conda run -n xbxpy12 python backtest/send_report.py --strategy medium_term_momentum

需配置 WECHAT_WEBHOOK 环境变量或通过 --webhook 参数指定。

4. 全流程自动化 (Runner)

使用 runner.py 进行常驻调度,它会在指定时间点依次执行:抓取 -> 通知 -> 回测 -> 报告

# 环境变量配置
export RUN_TIMES="09:00,12:30,15:30"
export WECHAT_WEBHOOK="https://qyapi.weixin.qq.com/..."

# 启动调度器
conda run -n xbxpy12 python runner.py

内置策略

策略代码 名称 逻辑简述
momentum_rotation 长动量轮动 13日动量排序,20日均线择时,持有期3天
medium_term_momentum 中动量轮动 10日动量排序,0%阈值择时,持有期1天

服务器部署 (PM2)

使用 PM2 后台常驻运行:

pm2 start bash --name assets_runner -- -lc 'conda run -n xbxpy12 python runner.py'

查看日志与状态:

pm2 logs assets_runner
pm2 status

About

本项目提供自动抓取资产市值数据并通过企业微信机器人发送通知的完整流程,支持常驻运行和多时点调度。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors