声明:本文为个人学习笔记,仅供技术交流,不构成任何投资建议。


一、前言

在期货量化这条路上,我已经走了整整二十年。做量化交易,服务器的稳定性至关重要。

今天这篇文章,我来分享一下量化交易服务器的选择和部署经验


二、为什么需要服务器?

原因 说明
7x24运行 策略需要持续运行,本地电脑难以保证
网络稳定 云服务器网络更稳定
低延迟 可选择靠近交易所的机房
安全可靠 避免本地断电、断网

三、服务器选择

3.1 云服务器 vs 物理服务器

类型 优点 缺点
云服务器 灵活、成本低、运维简单 性能有上限
物理服务器 性能高、完全可控 成本高、运维复杂

建议:大多数量化策略,云服务器足够。

3.2 云服务商选择

服务商 特点 适合场景
阿里云 国内最大、稳定 国内期货交易
腾讯云 性价比高 预算有限
华为云 安全合规 机构用户
AWS 全球化 外盘交易

3.3 配置选择

策略类型 CPU 内存 带宽
低频策略(日线级) 1核 2GB 1Mbps
中频策略(分钟级) 2核 4GB 5Mbps
高频策略(Tick级) 4核+ 8GB+ 10Mbps+

推荐配置:2核4G,5Mbps带宽,适合大多数策略。

3.4 地域选择

选择靠近期货公司服务器的地域:

  • 上海(大多数期货公司服务器在上海)
  • 北京
  • 深圳

四、服务器部署

4.1 系统选择

推荐 Ubuntu 22.04 LTS

  • 稳定
  • 社区支持好
  • Python环境友好

4.2 基础配置

# 1. 更新系统
sudo apt update && sudo apt upgrade -y

# 2. 安装基础工具
sudo apt install -y vim git wget curl htop screen

# 3. 设置时区(重要!)
sudo timedatectl set-timezone Asia/Shanghai

# 4. 安装Python
sudo apt install -y python3 python3-pip python3-venv

# 5. 验证
python3 --version

4.3 创建项目环境

# 创建目录
mkdir -p ~/trading
cd ~/trading

# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate

# 安装依赖
pip install tqsdk pandas numpy matplotlib

# 验证安装
python -c "from tqsdk import TqApi; print('TqSdk安装成功')"

4.4 上传代码

# 方法1:使用Git
git clone https://github.com/your_repo/trading_strategy.git

# 方法2:使用SCP
scp -r ./strategy root@your_server_ip:~/trading/

五、策略部署

5.1 配置文件

# config.py
CONFIG = {
    # 交易配置
    'broker': '期货公司',
    'account': '资金账号',
    'password': '密码',
    'tq_user': 'TQ账户',
    'tq_pass': 'TQ密码',
    
    # 策略配置
    'symbol': 'SHFE.rb2505',
    'volume': 1,
    
    # 日志配置
    'log_dir': '/home/trader/trading/logs',
}

注意:敏感信息不要提交到Git,使用环境变量或单独的配置文件。

5.2 启动脚本

#!/bin/bash
# start.sh

cd /home/trader/trading
source venv/bin/activate

# 设置环境变量
export PYTHONUNBUFFERED=1

# 启动策略
python main.py >> logs/output.log 2>&1

5.3 使用Screen保持运行

# 创建新的screen会话
screen -S trading

# 启动策略
./start.sh

# 按 Ctrl+A, D 分离会话

# 重新连接
screen -r trading

# 查看所有会话
screen -ls

5.4 使用Systemd(推荐)

# /etc/systemd/system/trading.service
[Unit]
Description=Trading Strategy
After=network.target

[Service]
Type=simple
User=trader
WorkingDirectory=/home/trader/trading
ExecStart=/home/trader/trading/venv/bin/python main.py
Restart=always
RestartSec=10
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=multi-user.target
# 启用服务
sudo systemctl enable trading
sudo systemctl start trading

# 查看状态
sudo systemctl status trading

# 查看日志
journalctl -u trading -f

六、监控和运维

6.1 日志查看

# 查看实时日志
tail -f logs/trade.log

# 查看最近100行
tail -100 logs/trade.log

# 搜索错误
grep "ERROR" logs/trade.log

6.2 进程监控

# 查看进程
ps aux | grep python

# 查看资源使用
htop

6.3 自动重启脚本

# watchdog.py
import subprocess
import time
import os

def check_process(process_name):
    """检查进程是否运行"""
    result = subprocess.run(['pgrep', '-f', process_name], 
                          capture_output=True, text=True)
    return result.returncode == 0

def start_process():
    """启动策略"""
    os.system('systemctl start trading')

def main():
    while True:
        if not check_process('main.py'):
            print("策略未运行,正在重启...")
            start_process()
        time.sleep(60)  # 每分钟检查一次

if __name__ == '__main__':
    main()

七、安全配置

7.1 防火墙

# 只开放必要端口
sudo ufw allow ssh
sudo ufw enable

7.2 SSH安全

# 修改SSH端口
sudo vim /etc/ssh/sshd_config
# Port 22222

# 禁用密码登录(使用密钥)
# PasswordAuthentication no

sudo systemctl restart sshd

7.3 定期备份

# 备份脚本
#!/bin/bash
DATE=$(date +%Y%m%d)
tar -czf /backup/trading_$DATE.tar.gz /home/trader/trading/

# 添加到crontab
# 0 3 * * * /home/trader/backup.sh

八、我的服务器配置

配置项 选择
云服务商 阿里云
地域 上海
配置 2核4G
带宽 5Mbps
系统 Ubuntu 22.04
Python 3.10
量化框架 TqSdk

选择TqSdk的原因

  • 安装简单,pip一键安装
  • 数据内置,不需要额外配置数据源
  • 回测和实盘代码一致,部署方便

九、常见问题

Q1:服务器连接不上期货公司?

检查:

  1. 网络是否通畅
  2. 期货公司服务器地址是否正确
  3. 是否在交易时间

Q2:策略运行一段时间后断开?

可能原因:

  1. 内存不足
  2. 网络波动
  3. 程序异常

解决:添加重连机制和异常处理。

Q3:如何查看策略运行状态?

# 查看服务状态
systemctl status trading

# 查看日志
journalctl -u trading -f

十、总结

量化交易服务器部署的核心要点:

  1. 选对配置:根据策略类型选择合适配置
  2. 地域就近:选择靠近交易服务器的地域
  3. 自动化部署:使用systemd等工具实现自动启动
  4. 做好监控:日志、告警、定期检查
  5. 安全第一:防火墙、SSH安全、定期备份

希望这篇文章对你有所帮助!


声明:本文基于个人学习经验整理,仅供技术交流参考,不构成任何投资建议。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐