如何选择合适的量化交易服务器

 

数量技术宅团队在CSDN学院推出了量化投资系列课程

欢迎有兴趣系统学习量化投资的同学,点击下方链接报名:

量化投资速成营(入门课程)

Python股票量化投资

Python期货量化投资

Python数字货币量化投资

C++语言CTP期货交易系统开发

数字货币JavaScript语言量化交易系统开发


所谓“工欲善其事,必先利其器”,对于量化交易来说,最后也是重要的一步,在于为我们的实盘策略选择一个运行的服务器。那么,应该如何选择合适的量化交易服务器?希望通过这篇分享,给大家提供一些帮助。

策略类型:中频 or 高频

对于中频策略,可以按照以下三方面,来综合考虑交易服务器的选择:

  1. 服务器以稳定为主,尽可能选择头部服务器提供商。同时,云服务器尽可能离交易所更近的物理位置。

  2. 网络带宽追求性价,例如阿里云分为流量付费和时间付费模式,在策略数据量不大的前提下,流量模式能大大节省服务器的网络费用。

  3. 服务器配置追求性价:贴近策略实际需求,如策略逻辑运算相对简单,则不需要在cpu和内存配置上提升太多,同时考虑交易资金量,资金量大的账户,在配置上优先提高。

对于高频策略,这里指的是期货、数字货币策略,托管服务器都是最优选择:

期货高频

  1. 托管服务器是必须的选择,同时使用的API配搭FPGA更佳(速度第一梯队),如果资金量、交易量足够达到门槛,上述配置都可以由期货公司提供,几乎不存在额外费用。

  2. 但如果策略对速度要求更高,需要自购服务器,那么托管服务器的成本,将显著提高。

数字货币高频

  1. 托管服务器同样是最佳的,但是部分交易所不存在托管服务器或对资金量有较高要求,此时可退而求其次选择服务器运营商提高的云服务器。

  2. 数字货币交易所分布于各国,服务器所在国所在城市,例如币安服务器在日本东京的aws,那我们的服务器最好选购aws的同一个区域。

  3. 选择服务器的地理位置时,可以通过不同服务器ping交易所的延迟,来选择最优的云服务商和地区。

  4. 涉及多地区套利,服务器选择在其中一个地区,同时在系统报单都优先报送较远的交易所,等待远端交易所成交后,报送近端交易所,近端交易所由于物理位置接近,成交率普遍会高一些。

服务器系统选择:Linux or Windows

 

如果我们的策略是借助三方平台完成的,例如tbquant,由于tbquant只支持windows, 或者我们自己的系统在windows上开发的,此时只能选择windows server作为服务器系统。

除此以外,更推荐使用Linux系统,如centos、ubuntu等系统,稳定性强、开源可优化、运算效率高;所以,如果交易策略是基于交易所API自主开发的系统,尽可能放在Linux平台上。

选择完成系统后,需要做一些关于全自动交易辅助配置,可通过代码+自动任务完成,例如,启动关闭策略(linux crontab),断线重连,异常情况告警(断线、重复报单、账户风控超标等),利用脚本发送邮件、钉钉等通知。

股票交易的选择

上述我们讲的主要是期货、数字货币相关的API。目前股票的开放API,一般来说是和券商深度绑定的,并且资金量有一定门槛,通常步骤是,达到资金量门槛,开放API,指定在特定提供托管服务器上使用。

目前券商已经对外放开了券商的API了,可以通过连券商的API让策略进行实盘交易,例如中泰的XTP,是纯自主研发的。但是,券商一般不给个人投资者提供接口,对于个人投资者,大多数券商的官网上都有网上交易,也就是通过web页面交易,这就意味着你可以模拟登录,通过http请求发送委托单。

 

如果你所在的券商没有web交易服务,理论上来讲也是可以通过分析手机app/交易软件的接口,模拟登录实现程序化交易的,不过实现的过程相对复杂,适合编程能力强的技术达人。

因此,股票的交易服务器选择对于两类不同的人群是不一样的,资金量达到券商门槛的,可以使用官方API和官方服务器,而资金量较小的个人投资者,使用云服务器,通过模拟web页面交易,似乎是唯一可行的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/88550.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android | 关于 OOM 的那些事儿

作者:345丶 前言 Android 系统对每个app都会有一个最大的内存限制,如果超出这个限制,就会抛出 OOM,也就是Out Of Memory 。本质上是抛出的一个异常,一般是在内存超出限制之后抛出的。最为常见的 OOM 就是内存泄露(大量…

尚硅谷大数据项目《在线教育之离线数仓》笔记004

视频地址:尚硅谷大数据项目《在线教育之离线数仓》_哔哩哔哩_bilibili 目录 第9章 数仓开发之DWD层 P049 P050 P051 P052 P053 P054 P055 P056 P057 P058 P059 P060 P061 P062 P063 P064 P065 P066 P067 P068 P069 P070 第9章 数仓开发之DWD…

lib61850 学习笔记一 (概念)

IEC61850 定义60多种服务满足变电站通信需求。支持在线获取数据模型,也支持IED水平通信(GOOSE报文) 术语定义 间隔 bay: 变电站由据应公共功能紧密连接的子部分组成。 例如 介于进线或者 出线 和母线之间的断路器;二条母线之间…

2023-08-28 LeetCode每日一题(插入区间)

2023-08-28每日一题 一、题目编号 57. 插入区间二、题目链接 点击跳转到题目位置 三、题目描述 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的…

CANOCO5.0实现冗余分析(RDA)最详细步骤

在地理及生态领域会常使用RDA分析,RDA的实现路径也有很多,今天介绍一下CANOCO软件的实现方法。 1.软件安装 时间调整到2010年 2.数据处理 得有不同的物种或者样点数值,再加上环境因子数据。 3.软件运行 4.结果解读 结果解读主要把握这几点…

Unity——音乐、音效

在游戏运行的过程中,音效的播放时机与游戏当前内容密切相关,而且随着场景的变化、剧情的推进,背景音乐也需要适时切换,所以恰当地控制音乐和音效的播放非常重要。音乐和音效的播放、停止、切换和音量变化等,都需要由脚…

CTFhub-sqli注入-报错注入

用到的函数 updatexml(1, ,1) concat(0x7e, ,0x7e) group_concat(目标值) right(,32) 1 1 1 union select updatexml(1,concat(0x7e,database(),0x7e),1) 1 union select updatexml(1,concat(0x7e,(select(group_concat(ta…

内网穿透实战应用-windwos10系统搭建我的世界服务器,内网穿透实现联机游戏Minecraft

文章目录 1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址 9. 使用固定公网地址远程联机 …

继承AndroidView Model的错误

ViewModelProvider(this)[RegisterViewModel::class.java] 一行简单的代码,总是报这个错误 Caused by: java.lang.NoSuchMethodException: com.xinfa.registerlogin.viewmodel.LoginViewModel. [class android.app.Application] 经过一下午的思索,终于找…

大模型+学习机,是概念游戏还是双向奔赴?

众所周知,2023年上半年大模型概念炙手可热。各大科技公司纷纷卷入,或宣称布局相关领域,或率先官宣自研大模型。而随着资本市场对大模型概念的热情有所消退,属于这片战场的新一轮角逐慢慢聚焦在了技术的落地应用上。 8月15日&#…

JUC并发编程--------基础篇

一、多线程的相关知识 栈与栈帧 我们都知道 JVM 中由堆、栈、方法区所组成,其中栈内存是给谁用的呢?其实就是线程,每个线程启动后,虚拟 机就会为其分配一块栈内存。 每个栈由多个栈帧(Frame)组成&#xf…

C++--动态规划背包问题(1)

1. 【模板】01背包_牛客题霸_牛客网 你有一个背包,最多能容纳的体积是V。 现在有n个物品,第i个物品的体积为vivi​ ,价值为wiwi​。 (1)求这个背包至多能装多大价值的物品? (2)若背包恰好装满&a…