当前位置: 首页 > news >正文

期货量化策略从 Windows 迁到 Linux 服务器:环境注意点

前言

国内期货量化很多是在 Windows 笔记本上写出来的:装 Anaconda、pip install tqsdk、在 IDE 里跑通TqSim。上线时希望放到 Linux 云服务器上 7×24 跑夜盘,路径、换行符、进程守护和时区都会和本机不同。天勤 TqSdk 本身跨平台,策略里wait_updateget_kline_serial等调用一般不用改,变的是运行环境和运维方式。

下面按 Python 环境、文件路径、进程守护、网络时区、直连 CTP 等块说明迁移时要注意什么,并解释文中出现的 systemd、venv、TqCtp 等名词指什么。

一、Python 环境与 tqsdk 版本

venv 是 Python 自带的虚拟环境目录,用来隔离项目依赖,避免和系统里别的项目抢包版本。Linux 上建议:

python3-mvenv venvsourcevenv/bin/activate pipinstall-rrequirements.txt

requirements.txt 应锁定 tqsdk 版本号,与 Windows 开发机一致。Python 大版本(如 3.10 与 3.11)不一致时,个别依赖可能装不上;迁移后第一件事用TqSim跑通最小脚本,打印quote.datetime是否推进。

二、路径:不要写死 C 盘

Windows 用反斜杠C:\Users\...,Linux 用正斜杠/home/...。状态 JSON、日志、配置应使用 Python 的pathlib.Path,或相对项目根目录的路径,不要硬编码盘符。否则策略在 Linux 上找不到data\state.json这类文件,重启后以为空仓又开仓。

.env文件放项目根,用os.environTQ_USERTQ_MODE等,不要把实盘密码写进代码再传到服务器。

三、时区与 K 线 datetime

K 线表和 quote 上的datetime是行情业务时间,一般由北京时间规则写入。服务器系统时区建议设为Asia/Shanghai,或在文档里约定日志时间戳用北京时间,避免排查夜盘问题时与交易员本地时间差八小时对不上。

四、systemd 与 supervisor:让进程在崩溃后拉起

systemd 是多数 Linux 发行版自带的初始化与服务管理框架,可写一个 unit 文件,例如/etc/systemd/system/futures-strategy.service,指定工作目录、虚拟环境 Python 路径、环境变量文件,并设置Restart=on-failure表示异常退出后自动重启。

supervisor 是另一款进程管理工具,配置写在supervisord.conf里,适合一台机跑多个策略进程、每个进程独立日志。

共同原则:同一期货资金账户,同一时刻只应有一个策略进程在跑;守护进程配置成单实例,避免手误启动两次。

五、网络与期货公司限制

云服务器出网 IP 可能与家里不同。部分期货公司对程序化交易有 IP 报备要求,迁移后要确认柜台是否允许新 IP 登录。防火墙只需放行策略访问行情与交易网关所需端口,不要无故关断出站连接。

若用TqCtp直连期货公司前置,需额外安装tqsdk_zq_otg包,并确认该包在 Linux 上受支持(见官方说明);与 Windows 下 CTP 动态库路径问题不是同一类,但都要在目标系统实测登录。

六、无图形界面时的注意点

服务器通常没有桌面,天勤若开了 web 绘图,确认不会阻塞主循环。生产环境多数只保留文件日志,图形在开发机回放。

七、迁移验证步骤(建议按顺序)

  1. Linux 上TqSimTqKq跑最小循环,确认wait_updatedatetime正常。
  2. 跑一夜模拟,检查日志轮转与磁盘空间。
  3. 人为kill进程,看 systemd 是否拉起,且不会叠两个TqApi
  4. 再切TqAccount小仓位实盘。

总结

从 Windows 迁到 Linux,难点通常不在策略公式,而在运行环境是否被完整复制:依赖版本、路径规则、守护方式、时区和网络边界缺一不可。策略能否稳定跑 7×24,关键在于把 venv/requirements 锁死、把状态文件路径和日志落地规范化、用 systemd/supervisor 做单实例保活和失败重启,并在切换到目标时区后重新核对 datetime 相关逻辑。很多时候你以为“代码一样就行”,但环境差异会让等待与过滤条件表现不同。把这些基础设施提前标准化,并在最小可行脚本上完成验证,迁移就会从‘能跑’升级为‘能长期稳定跑’,从而与后续实盘风控衔接得更紧。

FAQ

1)WSL 算生产环境吗?

适合开发联调,7×24 夜盘建议用独立 Linux 服务器或云主机。

2)Docker 部署可以吗?

可以,注意一容器一策略、环境变量注入密码、日志挂载到宿主机。

3)多策略多服务?

每个策略独立 systemd unit,勿同账户双进程。

4)编码问题?

源码与日志统一 UTF-8,避免 Windows 记事本另存为 GBK 后上传乱码。

风险提示

以上内容用于部署参考,不构成投资建议。

http://www.zskr.cn/news/1488864.html

相关文章:

  • codex 连接国内大模型(例如Deepseek 和 MiMo )
  • 盘龙城空调维修|盘龙城空调移机|盘龙城空调加氟|盘龙城空调回收 高性价比宅到家快速上门 - 武汉宅到家
  • 2026跨界优选|心理学+管理学融合硕士哪家强?巴黎商学院EMAP稳居综合实力榜首 - 品牌测评鉴赏家
  • laravel的依赖注入 的源码解读的庖丁解牛
  • 2026 哈尔滨防水补漏服务商口碑测评榜单|全屋渗漏维修机构优选指南 - 宅安选房屋修缮
  • 心理+管理双学科硕士哪家强?2026国内外优质项目深度盘点 - 品牌测评鉴赏家
  • 2026年 胶粘带/高温胶布/pvc胶布/铁氟龙胶布/阻燃胶布/无痕胶布厂家推荐榜:特种胶粘带实力源头厂家与耐温绝缘性能深度解析 - 品牌发掘
  • GPT-4在对话标注中的应用与优化策略
  • 【哈工大机器人操作系统ROS】实验环境安装——Windows 下用 VMware 安装 Ubuntu 24.04 与 ROS 2
  • 免笔试入学!5大优质免考应用心理学博士项目精选推荐 - 品牌测评鉴赏家
  • 3D高斯泼溅与社交感知结合的虚拟头像生成技术
  • GLM-5.1 开发轻量级opencode会话提取工具,让对话更有价值
  • 远距离寄快递怎么寄划算?试试这3个省钱技巧 - 快递物流资讯
  • Python 编程能从事哪些 IT 行业?职业前景深度分析
  • 从混乱到有序:Web 接口架构搭建的学习蜕变之旅前言:被 “接口” 卡住的项目瓶颈
  • 从‘赌徒困境’到商业决策:如何用MDP模型优化你的风险策略?
  • Adobe-GenP破解工具终极指南:3分钟解锁Adobe全家桶的完整方案
  • 打造安卓应用日历功能的终极方案:NCalendar深度解析与实战指南
  • Lua 数据类型
  • 掌握专业窗口管理技巧:高效桌面布局解决方案
  • 免费视频翻译神器:pyVideoTrans让你3步搞定多语言视频制作
  • LSTM 文本情感分析:从词嵌入到分类实战
  • Origin 2018论文绘图避坑指南:搞定双Y轴、不均匀柱状图与Word图片尺寸
  • 手把手教你用C#对接爱发电API:基于Afdian.Sdk的完整开发指南
  • GPT-4 Turbo工程落地指南:上下文、JSON模式与Assistants API避坑实战
  • 2026年成都托福机构排名实测:成都大学生真实测评,5家主流机构怎么选? - 新闻快传
  • 从MKW36到MKW38:蓝牙LE嵌入式无线MCU平台迁移实战指南
  • 行业变局:缝制制造正式进入「计划能力定义企业产能」的竞争下半场
  • 面试潜规则⑯(终章):企业看起来在招聘,但真正运转的是风险管理
  • i.MX 8M电源设计实战:深度解析PCA9450 PMIC架构与PCB布局