服务器选型与初始化:云服务器选择、操作系统配置、基础环境安装
做量化策略实盘部署,第一步就是选服务器。这事我踩过不少坑,今天跟你聊聊我的经验。
一、云服务器怎么选?
国内主流就三家:AWS、阿里云、腾讯云。说实话,选哪家主要看你的交易标的和网络延迟要求。
| 云厂商 | 优势 | 适合场景 | 我个人的偏好 |
|---|---|---|---|
| AWS | 全球节点多,API稳定 | 做美股、全球市场 | 美股首选,但国内访问有时慢 |
| 阿里云 | 国内节点多,延迟低 | A股、期货、国内量化 | 我大部分项目用阿里云 |
| 腾讯云 | 性价比高,轻量服务器便宜 | 个人策略、小资金实盘 | 适合新手入门 |
配置建议:实盘策略,我建议至少 4核8G。为什么?因为策略跑起来,回测、数据同步、监控脚本都在抢资源。我曾经用 2核4G 的机器跑一个多因子策略,结果行情一波动,CPU 直接飙到 100%,订单都发不出去。嗯,那次教训挺深刻的。
核心原则:服务器离交易所越近越好。做 A 股就选华东或华南节点,做美股就选 AWS 东京或弗吉尼亚节点。
二、操作系统配置
我个人习惯用 Ubuntu 20.04 LTS。为什么?稳定、社区活跃、遇到问题好搜解决方案。CentOS 也行,但我觉得 Ubuntu 的包管理更顺手。
拿到服务器后,第一件事就是更新系统:
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential curl wget git vim htop
这里有个坑——防火墙。量化策略的 API 端口经常被误杀。我建议先配好安全组规则,只开放必要的端口:
- SSH 端口(22):改成非标准端口,比如 2222,防暴力破解
- 策略 API 端口:按需开放,最好绑定内网 IP
- 监控端口:只允许内网访问
警告:千万不要用 root 账号跑策略!我曾经见过有人直接用 root 跑策略,结果被入侵后,整个服务器被拿来挖矿。建议创建一个普通用户:
sudo adduser trader
sudo usermod -aG sudo trader
三、基础环境安装
1. Python 环境
量化策略离不开 Python。但系统自带的 Python 版本往往太老。我建议用 pyenv 管理多版本:
# 安装 pyenv
curl https://pyenv.run | bash
# 安装 Python 3.10
pyenv install 3.10.12
pyenv global 3.10.12
# 验证
python --version
为什么要用 pyenv?说白了,就是怕不同策略依赖不同版本的库。我有个策略用 TensorFlow 1.x,另一个用 2.x,没有 pyenv 的话,这两个策略根本没法共存。
2. Git 配置
Git 是策略版本管理的命根子。我建议这样配:
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
git config --global core.editor vim
# 生成 SSH 密钥
ssh-keygen -t ed25519 -C "your@email.com"
然后把公钥加到 GitHub/GitLab 上。这样拉取代码就不用每次输密码了。
小技巧:我习惯在服务器上建一个 /opt/strategies 目录,所有策略代码都放这里。然后用 Git 的 post-receive 钩子自动部署。这样本地改完代码,push 一下,服务器就自动更新了。
3. Docker 安装
Docker 是实盘部署的利器。它能把策略、依赖、环境全部打包,换台机器也能直接跑。
# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
# 安装 Docker Compose
sudo apt install -y docker-compose
# 验证
docker --version
docker-compose --version
安装完后,记得重启终端或重新登录,让用户组生效。
四、知识体系总览
下面这张图,是我整理的这个章节的核心逻辑。你一看就明白了:
五、避坑指南
最后,分享几个我踩过的坑:
- 磁盘空间:行情数据会越积越多。我建议系统盘 40GB,数据盘至少 200GB,而且挂载到
/data目录。 - 时区设置:量化策略对时间敏感。记得把服务器时区设为
Asia/Shanghai:sudo timedatectl set-timezone Asia/Shanghai - Swap 分区:内存不够时,Swap 能救命。我一般设 4GB Swap,防止策略内存溢出。
一句话总结:服务器选型看交易标的,操作系统用 Ubuntu,环境用 Docker 打包。这三步走稳了,后面部署策略就是水到渠成的事。