首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >轻量应用服务器部署量化交易程序全流程:我把自己写的Python策略搬上云的完整教程(附代码)

轻量应用服务器部署量化交易程序全流程:我把自己写的Python策略搬上云的完整教程(附代码)

原创
作者头像
hollyx
发布2026-08-11 20:25:05
发布2026-08-11 20:25:05
810
举报

这篇教程解决一个问题:把你本地跑通的Python量化策略,搬到云服务器上7×24小时自动运行,不用自己电脑一直开机。跟着做完,你会得到一个:装了Python环境、配好定时任务、能自动拉数据跑信号、出事会给你发微信提醒的云端量化小助手。我全程用的是腾讯云轻量应用服务器,2核2G,实测跑一个双均线+两个中频策略绰绰有余。

我自己写了两年多Python量化,之前一直是"家里电脑挂机党"——笔记本合盖断网、台式机风扇吵得睡不着、出差一周策略就断一周,这些我都经历过。上上个月终于下决心搬上云,本以为要折腾一个周末,结果一个下午就搞定了。

这篇就是我的完整过程记录,附我实际在跑的代码,给同样想把策略搬上云的朋友抄作业。


一、先说结论:为什么我的策略不能再放在家里电脑上

年初的时候我有个很惨的经历:出差去上海五天,家里小区电路检修停了一次电,台式机重启后程序没自动拉起,等我发现的时候,策略已经三天没跑了,错过了一波我最拿手的趋势行情。

复盘一下本地挂机的痛苦:第一,断网断电即断策略,一年里我家宽带光猫重启了至少四次;第二,笔记本风扇24小时转,放卧室根本睡不着;第三,每年夏天还得担心散热,我专门买了个散热支架,噪音更大了。一年电费加损耗算下来也得小几百块,还搭进去无数次"半夜爬起来看程序还在不在"的焦虑。

那一刻我就明白了:量化交易程序这种东西,天生就该待在机房,而不是我家书房。

二、买服务器:10分钟的事,比装Python还简单

上周六下午,我在腾讯云控制台买了台轻量应用服务器。配置选的是2核2G、Ubuntu 22.04,地域选了上海(离我券商的行情服务器近,延迟低)。

说实话选配置的时候我纠结了一下要不要上2核4G,后来想清楚了我的策略就是每5分钟拉一次行情算信号,内存占用撑死四五百兆,2核2G完全够用,先省点钱,不够再升。价格这块我就不放具体数字了,反正一天不到一块钱,比我电脑的电费贵不了多少。

付款、选镜像、设置密码,前后不到10分钟,控制台里就显示"运行中"了。

对比一下我以前在某小厂VPS上的体验:买完要等工单开通,等了两天,拿到手系统是CentOS 6,yum源都死了,装个Python 3搞了一下午。轻量这个从下单到能SSH登录,10分钟,我当时的感觉就是:凭什么这么快。

三、装环境:就三行命令的事

SSH登录上去,装环境。我的策略依赖很简单:akshare拉数据、pandas算指标、requests发通知。所以环境也就是Python加几个库:

代码语言:bash
复制
sudo apt update && sudo apt install -y python3-pip
pip3 install akshare pandas requests

跑完这两条,环境就齐了。前后3分钟。

这里插一句,如果你在本地是conda党,服务器上我建议直接pip装,别折腾conda了——2G内存的机器,conda解依赖的时候内存会顶满,我第一次就栽在这(后面细说)。

四、把策略脚本搬上去:附我实际在跑的代码

我的核心策略文件 strategy.py,精简版长这样(真实代码脱敏后可直接跑):

代码语言:python
复制
import akshare as ak
import pandas as pd
import requests, datetime

def get_signal(code="sh510300"):
    df = ak.stock_zh_index_daily(symbol=code)
    df["ma5"] = df["close"].rolling(5).mean()
    df["ma20"] = df["close"].rolling(20).mean()
    if df["ma5"].iloc[-1] > df["ma20"].iloc[-1] and \
       df["ma5"].iloc[-2] <= df["ma20"].iloc[-2]:
        return "BUY"
    if df["ma5"].iloc[-1] < df["ma20"].iloc[-1] and \
       df["ma5"].iloc[-2] >= df["ma20"].iloc[-2]:
        return "SELL"
    return None

def notify(msg):
    # Server酱微信推送,key换成你自己的
    key = "你的Server酱SendKey"
    requests.post(f"https://sctapi.ftqq.com/{key}.send",
                  data={"title": "量化信号", "desp": msg})

if __name__ == "__main__":
    sig = get_signal()
    if sig:
        notify(f"{datetime.datetime.now()} 出现{sig}信号!")

scp 或者直接在服务器上 vim 粘贴都行,文件传上去后先手动跑一次确认没问题:

代码语言:bash
复制
python3 strategy.py

能正常拉数据、微信收到推送,这一步就算过了。那一刻是真的有点小爽——我家书房那台吵了我两年的台式机,突然就可以退役了。

五、上定时任务:crontab才是真正的"挂实盘"

程序能跑不等于能挂机,挂机靠的是定时任务。云服务器上最稳的方式就是crontab,别整那些花里胡哨的。

代码语言:bash
复制
crontab -e

加一行,交易日下午3点05分跑一次收盘信号:

代码语言:txt
复制
5 15 * * 1-5 /usr/bin/python3 /root/strategy.py >> /root/strategy.log 2>&1

保存退出。为了保险起见,我还加了一条开机自启检查脚本,防止服务器万一重启后有什么服务没起来。另外日志一定要重定向到文件,这是我踩过坑换来的经验(下一节讲)。

配完之后我特意等到第二天下午3点05,盯着手机——微信准时弹出推送。那种感觉就像终于把孩子送去住校了,又担心又解脱。

六、也踩了一个小坑:conda把我的2G内存顶爆了

不是全程零翻车。我最开始在服务器上装环境的时候,习惯性地想装Miniconda——本地一直用conda嘛。

结果 conda create 解依赖的时候,内存直接顶满,ssh都卡死了,控制台看内存曲线一条直线拉到100%。我愣是强制重启了服务器才连回去。

后来在社区搜了一下,发现2G内存的机器上conda解大型依赖树就是这个德行。解决办法也简单粗暴:卸载conda,改用系统pip + venv。具体说就是:

代码语言:bash
复制
python3 -m venv ~/venv
source ~/venv/bin/activate
pip install akshare pandas requests

venv够用、省内存、装得快。换完之后整个流程丝滑得很。

所以给大家一个建议:轻量服务器上跑量化,别迷信conda,venv就是最优解。内存小的机器,每一个MB都要省着花。

七、稳定跑了一个月之后,我又加了两个策略

环境稳了之后,我把第二个策略(可转债双低轮动)和第三个(网格信号监控)也搬了上去,用supervisor管进程,crontab管定时任务,各管各的。

顺便观察了一下资源占用:CPU日常5%以下,内存常年1.2G左右——三个策略一起跑,2核2G居然还很从容。这倒是超出我预期的,本来以为得升配。

唯一要注意的是akshare这类数据接口偶尔会因为数据源抽风失败,我在代码里加了简单的重试和异常推送,挂了至少微信会响,不会傻等。

八、还能更好的地方

挑几个刺:

  1. 轻量服务器的带宽对拉数据够用,但如果你想跑tick级别的行情采集,得自己掂量一下流量包,分钟线级别毫无压力。
  2. Ubuntu镜像很干净,但Python 3.10对一些老库的兼容性需要自己留意,装不上的库基本都要找新版替代。
  3. 控制台没有现成的"量化模板",环境得自己装——不过也就三行命令的事,不算事儿。

这些都是小问题,不影响核心体验。

九、总结:本地挂机 vs 云上挂机

维度

家里电脑挂机

腾讯云轻量应用服务器

稳定性

断电断网即断策略,一年翻车4次+

一个月0中断

噪音

风扇24小时,睡不着

零噪音,机房替我吵

成本

电费+硬件损耗小几百/年

一天不到一块钱

出差/旅行

策略跟着断

随便去哪,照常跑

扩容

换电脑

控制台点几下升配

一句话:策略上了云,我睡觉踏实多了。

如果你也是本地挂机党,纠结要不要搬——我的建议是放心冲,一个下午就能搞定,附的代码直接抄就能跑。如果你是第一次碰量化的小白,建议先在本地把策略跑通、确认逻辑没问题再搬上云,服务器不背策略本身亏钱的锅;老鸟的话,直接上supervisor + crontab这套组合,稳得很。


如您需求,可以到腾讯官网购买体验:

腾讯云国内官网云服务器大促活动:https://cloud.tencent.com/act/pro/featured-202607?fromSource=gwzcw.17760458.17760458.17760458

腾讯云国际站云服务器促销活动:https://www.tencentcloud.com/act/pro/promo?fromSource=intl.17760459.17760459.17760459


常见问题 FAQ

Q:云服务器跑量化交易程序,2核2G够用吗?

够。分钟线级别的策略信号计算、akshare拉数据,2核2G跑两三个策略都从容,我实测三个策略内存才1.2G。只有tick级高频或大规模回测才需要升配。

Q:轻量应用服务器部署量化策略需要备案吗?

跑程序、拉数据、发微信通知都不涉及对外提供网站服务,不需要备案。只有你要绑域名开网站才需要。

Q:服务器重启后量化程序会自动运行吗?

crontab的定时任务会自动恢复,不需要额外配置。但如果你挂了常驻进程(比如实盘监听),建议用supervisor设置开机自启,保险一点。

Q:在云服务器上跑量化会被封吗?

正常拉公开行情数据、给自己的微信发通知,完全没问题。注意别高频暴力请求数据源接口,加个sleep和重试机制就好。

Q:Python量化策略上云后延迟会不会变高?

反而更低。选离你券商/行情源近的地域(比如上海),云机房到行情服务器的延迟比家庭宽带低且稳定,我实测行情延迟从家里的30-80ms抖动变成稳定个位数毫秒级网络环境。

如您需求,可以到腾讯官网购买体验:

腾讯云国内官网云服务器大促活动:https://cloud.tencent.com/act/pro/featured-202607?fromSource=gwzcw.17760458.17760458.17760458

腾讯云国际站云服务器促销活动:https://www.tencentcloud.com/act/pro/promo?fromSource=intl.17760459.17760459.17760459

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

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

目录
  • 一、先说结论:为什么我的策略不能再放在家里电脑上
  • 二、买服务器:10分钟的事,比装Python还简单
  • 三、装环境:就三行命令的事
  • 四、把策略脚本搬上去:附我实际在跑的代码
  • 五、上定时任务:crontab才是真正的"挂实盘"
  • 六、也踩了一个小坑:conda把我的2G内存顶爆了
  • 七、稳定跑了一个月之后,我又加了两个策略
  • 八、还能更好的地方
  • 九、总结:本地挂机 vs 云上挂机
  • 常见问题 FAQ
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档