2017 Intel Mac + macOS Ventura 搭建美股量化环境(Docker + Python + Backtrader + Jupyter 完整教程)
一、背景
我的电脑配置:
1 | 设备: |
目标:
搭建本地美股量化环境,实现:
- Docker 容器化开发
- Python 量化环境
- Jupyter Notebook
- 美股数据获取
- 策略开发
- 回测
- 后续接入自动交易
技术栈:
1 | Docker |
二、踩坑记录
直接下载最新版 Docker:
会报错:
1 | This version of Docker Desktop is not supported on your macOS |
或者:
1 | Current system unsupported |
原因:
新版 Docker 要求:
1 | macOS 14+ |
而我的系统:
1 | macOS Ventura 13.7.8 |
解决方案:
安装兼容版本:
1 | Docker Desktop 4.47.x (Intel) |
三、下载 Docker Desktop(兼容 Ventura)
打开:
https://docs.docker.com/desktop/release-notes/
找到:
1 | Docker Desktop 4.47.x |
下载:
1 | Docker.dmg |
注意:
一定要选择:
1 | Intel Chip |
不是:
1 | Apple Silicon |
四、清理旧 Docker(推荐)
如果安装失败过:
删除旧文件:
1 | sudo rm -rf /Applications/Docker.app |
重启:
1 | sudo reboot |
五、安装 Docker
双击:
1 | Docker.dmg |
拖入:
1 | Applications |
启动:
1 | Docker.app |
第一次:
系统会要求:
1 | 输入密码 |
允许即可。
六、验证 Docker 安装
打开终端:
查看版本:
1 | docker -v |
输出:
1 | Docker version xx.xx |
检查 compose:
1 | docker compose version |
输出:
1 | Docker Compose version xx |
测试:
1 | docker run hello-world |
成功:
1 | Hello from Docker! |
说明安装完成。
七、调整 Docker 配置(适合 8GB 内存)
打开:
1 | Docker Desktop |
建议:
CPU:
1 | 2 Core |
内存:
1 | 4GB |
Swap:
1 | 1GB |
Disk:
1 | 30GB |
否则:
Docker 很容易占满内存。
八、创建量化项目
创建目录:
1 | mkdir stock_quant |
目录:
1 | stock_quant/ |
九、创建 requirements.txt
新建:
1 | touch requirements.txt |
内容:
1 | pandas |
十、编写 Dockerfile
创建:
1 | touch Dockerfile |
内容:
1 | FROM python:3.11-slim |
十一、创建 docker-compose
创建:
1 | touch docker-compose.yml |
内容:
1 | version: "3" |
十二、启动容器
执行:
1 | docker compose up --build |
第一次:
需要等待:
1 | 5~20分钟 |
安装依赖。
成功:
出现:
1 | http://127.0.0.1:8888/lab?token=xxxx |
浏览器打开:
1 | localhost:8888 |
进入:
1 | Jupyter Lab |
十三、下载美股数据
进入 Notebook:
测试:
1 | import yfinance as yf |
保存:
1 | aapl.to_csv( |
生成:
1 | AAPL.csv |
十四、第一个量化策略:双均线
创建:
strategy.py
代码:
1 | import backtrader as bt |
十五、回测
创建:
backtest.py
代码:
1 | import yfinance as yf |
运行:
1 | python backtest.py |
生成收益曲线。
十六、下一步学习路线
建议:
1 | Python |
十七、总结
最终环境:
1 | MacBook Pro 2017 |
对于:
1 | 8GB RAM |
已经足够学习和开发中低频美股量化策略。
后续可扩展:
1 | ETF轮动 |
完成完整量化闭环。