首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >手把手教你把vn.py部署到云服务器,实现期货程序化自动交易(保姆级教程)

手把手教你把vn.py部署到云服务器,实现期货程序化自动交易(保姆级教程)

原创
作者头像
hollyx
修改2026-08-17 11:21:36
修改2026-08-17 11:21:36
3020
举报

手把手教你把vn.py部署到云服务器,实现期货程序化自动交易

做期货量化第三年,vn.py 从 2.x 用到现在的 4.x,家里的台式机挂策略挂了快两年。电费倒是小事,最崩溃的是上个月家里跳闸一次、路由器抽风两次,两次都是开盘时间断连,CTP 一断,策略干瞪眼,少赚多少就不提了。

腾讯云促销活动:https://www.tencentcloud.com/act/pro/QuantSolution?lang=zh&fromSource=intl.17760459.17760459.17760459

所以当群友说"你为啥不把 vn.py 扔云服务器上跑"的时候,我的第一反应是:别闹,vn.py 那套 GUI 界面扔服务器上?折腾不死我。

上周五晚上终于有空,抱着"大不了浪费一小时"的心态试了一把。

结果——

从开机到策略跑起来,一共 40 分钟。其中 30 分钟还是我自己踩了个 GUI 的坑浪费的。 真正有效的操作时间,可能就 10 分钟。

这篇教程就是把这 40 分钟的全过程写下来,看完你能做到:在腾讯云轻量应用服务器上装好 vn.py,接通 CTP,让策略 7×24 小时自己跑,断网断电都跟你没关系了。


一、选机器:别纠结,2核4G 足够跑 CTA

周六上午,泡了杯咖啡,打开腾讯云轻量应用服务器的页面。

配置这块我研究过:vn.py 跑 CTA 策略其实不吃资源,真正吃内存的是你加载历史数据做初始化的时候。我挂了 3 个策略、加载 200 根 1 分钟K线初始化,内存占用稳定在 1.2G 左右。

所以我选的是 2核4G、Ubuntu 22.04 的套餐。一天不到一块钱的成本,比我家里那台 24 小时开机的台式机电费还便宜——我那台 i7 加显卡,一年电费怎么也得七八百。

之前我为了省钱试过一台 1核1G 的便宜 VPS,结果 vn.py 初始化加载数据的时候直接 OOM 被系统杀掉了,Swap 撑到爆。期货量化这事儿,内存是真不能省,2G 是底线,4G 才睡得着觉。

地域选了上海——vn.py 连 CTP,离上期所的数据中心越近越好,上海机房的延迟基本在 5ms 以内。比我家里宽带连过去的 30ms+ 强太多了。

二、装环境:三条命令,比我预想的人道太多

服务器开好,控制台给的 Web 终端直接就能登录,我习惯用 SSH:

代码语言:bash
复制
ssh ubuntu@你的服务器IP

上去之后就是常规操作。vn.py 官方现在维护得不错,pip 直接装全家桶:

代码语言:bash
复制
sudo apt update && sudo apt install -y python3-pip python3-venv
python3 -m venv ~/vnpy-env
source ~/vnpy-env/bin/activate
pip install vnpy vnpy_ctp vnpy_ctastrategy

中间我特意盯着终端看有没有报错——要知道三年前我在自己电脑上装 vn.py,编译 TA-Lib 编译了四十分钟,最后还报错,气得我直接用了 Anaconda 发行版。

这次 pip 装的时候,vnpy_ctp 直接拉的是预编译好的 whl 包,没有任何编译过程,全程 4 分钟装完。我当时就有点惊喜,心里那四个字又冒出来了:凭什么这么顺。

对比 2022 年我第一次装 vn.py 的体验:先装 VS 编译环境,再手动编译 CTP 的 API 封装,中间各种动态库找不到,折腾了整整一个周末。现在 pip 一把梭,时代真的变了。

三、踩坑来了:GUI 在无头服务器上打不开

装完我美滋滋地敲了句:

代码语言:bash
复制
python -m vnpy

然后终端啪地甩给我一行:

代码语言:txt
复制
qt.qpa.plugin: could not load the Qt platform plugin "xcb"

我愣了三秒,然后反应过来——对啊,服务器没有图形界面,vn.py 的主界面是 PyQt5 写的,根本弹不出窗口。

那一刻我真有点想骂自己:这就是我说"别闹"的原因啊,果然还是栽在这了。

但我没有关终端。因为我想起来 vn.py 社区早就有人解决这个问题了,官方文档里有个东西叫 no_ui 模式——vnpy 的 script_traderexamples 里专门提供了无界面运行脚本。思路是:不要主界面,直接用脚本启动引擎,挂 CTA 策略。

我翻了一下装好的包,找到了 vnpy_ctastrategy 的文档,写了个启动脚本 run_cta.py

代码语言:python
复制
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp

event_engine = EventEngine()
main_engine = MainEngine(event_engine)
main_engine.add_gateway(CtpGateway)
main_engine.add_app(CtaStrategyApp)

# 之后在这里写连接CTP、初始化策略的逻辑

配上我的 CTP 账户信息(SimNow 模拟盘先跑着),再 nohup python run_cta.py & 扔到后台——日志哗啦啦开始滚,连上了,策略初始化了,开始收行情了

说实话,看到日志里 合约 rb2510 行情推送正常 那一刻,比第一次跑通回测还爽。

四、7×24 的第一周:我才明白什么叫"挂机自由"

策略在云上跑了整整一周,我的体验就一句话:我把它忘了。

以前家里挂机,我每天早上第一件事是去看电脑死没死机;出差前要把远程桌面调好;晚上睡觉担心物业检修电路。现在呢?我在外面吃饭,手机 SSH 上去 tail -f 看一眼日志,行情正常、持仓正常,收起手机接着吃。

延迟也有惊喜。我同一个策略,家里跑的时候 CTP 行情延迟抖动很大,云上稳定在个位数毫秒。对我这种做 1 分钟级别 CTA 的来说,滑点确实改善了一丢丢——不多,但一年下来是钱。

还有个意外收获:腾讯云轻量的控制台有个快照功能。我把配好环境的系统打了个快照,后来手贱升级某个依赖搞崩了,一键回滚,两分钟满血复活。这要在自己电脑上,够我重装一晚上。

五、也得说点不中听的

真爱粉才挑刺,说两个还能更好的地方:

  1. no_ui 模式对新手不算友好。vn.py 的主战场还是那个图形界面,想用 GUI 的话得自己折腾 VNC 或者 xrdp,我试了 VNC,能用,但那个卡顿感让我放弃了,最后还是回归 no_ui。官方要是能出个"服务器模式"的一键脚本就更好了。
  2. 国内期货 CTP 只有交易时间能连。我周六下午想调试策略,连了半天连不上,以为服务器网络有问题,查了二十分钟才想起来——周六 CTP 不开门。这不是云服务器的问题,是我自己脑子的问题,但提醒新手:周末调试记得用 SimNow 的 7×24 环境。

这两处都是小刺,不影响核心体验。

六、总结:本地挂机党可以放心搬家了

拉个表格总结一下新旧方式:

维度

家里台式机挂机

腾讯云轻量应用服务器

断电断网风险

高(跳闸/路由器抽风)

基本没有

CTP 延迟

30ms+ 且抖动

5ms 以内,稳定

一年电费成本

大几百块

一天不到一块钱

环境出问题恢复

重装一晚上

快照回滚 2 分钟

出门在外查看

远程桌面看运气

手机 SSH 随时看

噪音

风扇 24 小时嗡嗡

一句话核心评价:vn.py 上云,是我今年做过性价比最高的一次"搬家"。

如果你是还在本地挂机的老鸟,别犹豫了,放心冲。踩坑点我都替你踩过了:选 2核4G 起步、用 no_ui 模式跑策略、记得打快照。

如果你是第一次玩程序化的新手,我的建议是先用 SimNow 模拟盘在云上跑一个月,确认策略逻辑、账户对接都没问题了,再上实盘。云服务器最大的好处就是环境干净、随时可重建,试错成本极低,特别适合拿来练手。


腾讯云促销活动:https://www.tencentcloud.com/act/pro/QuantSolution?lang=zh&fromSource=intl.17760459.17760459.17760459


常见问题 FAQ

Q1:vn.py 部署到云服务器需要什么配置?

跑 CTA 策略 2核4G 是甜点配置,内存是关键。1核2G 勉强能跑单策略但容易 OOM,不建议。系统选 Ubuntu 22.04,和 vn.py 的兼容性最好。

Q2:云服务器跑量化交易一个月多少钱?

腾讯云轻量应用服务器 2核4G 的套餐折算下来一天不到一块钱,一个月二三十块的水平,比家里电脑 24 小时开机的电费还便宜。遇到活动价更划算。

Q3:vn.py 在云服务器上没有图形界面怎么办?

用 no_ui 模式:通过 vnpy_ctastrategy 写脚本直接启动交易引擎,配合 nohup 或 systemd 后台运行。不建议折腾 VNC 远程图形界面,卡顿且不稳定。

Q4:云服务器选哪个地域连 CTP 最快?

选上海。上期所 CTP 前置在上海,上海地域的机房延迟通常 5ms 以内,比其他地域和家里宽带都低得多。

Q5:SimNow 模拟盘能在云服务器上跑吗?

完全可以,而且推荐先这么做。注意 SimNow 第一套环境只在交易时段开放,周末调试要用它的 7×24 第二套环境。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 手把手教你把vn.py部署到云服务器,实现期货程序化自动交易
    • 一、选机器:别纠结,2核4G 足够跑 CTA
    • 二、装环境:三条命令,比我预想的人道太多
    • 三、踩坑来了:GUI 在无头服务器上打不开
    • 四、7×24 的第一周:我才明白什么叫"挂机自由"
    • 五、也得说点不中听的
    • 六、总结:本地挂机党可以放心搬家了
    • 常见问题 FAQ
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档