楼主: FinTech社区
180 4

[交易策略] C++ 在高频交易中的应用 [分享]

  • 0关注
  • 0粉丝

等待验证会员

小学生

92%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
96 点
帖子
6
精华
0
在线时间
5 小时
注册时间
2019-11-3
最后登录
2019-11-21

FinTech社区 企业认证  发表于 2019-11-8 15:38:51 |显示全部楼层

FinTech 社区是一个为金融科技行业赋能机构,我们致力于提供专业的行业动态,招聘信息与资源对接社群,帮助金融科技企业更好地发展。




在高频交易中,我们需要在最短的时间内对市场上的行情进行反应,这时候就真正体现“时间就是金钱”那句古话,每多一个毫秒,甚至微秒的延迟,就意味着更多的风险。

为了应对以上情况,我们必须要在极短的时间内在同一个时间对每个合约进行定价,而计算一个期权的理论价格并不是一件简单的事情,对计算性能的要求非常高。不仅如此,对于如何能够更加准确地计算“隐含波动率”,同样具有极高的挑战性。

如何来提高计算速度,降低延迟?

要控制和降低延迟,首先要能准确测量延迟。因此需要比较准的钟,带GPS或原子钟primary standard的NTP服务器是少不了的。而且就算用了NTP,同一机房两台机器的时间也会有毫秒级的差异,计算延迟的时候,两台机器的时间戳不能直接相减,因为不在同一时钟域。


解决办法是设法补偿这个时差。另外,不仅要测量平均延迟,更重要的是要测量并控制长尾延迟,即99百分位数或99.9百分位数的延迟,即使sell side,系统偶尔慢一下被speculator利用也会亏钱。

具体从哪些方面可以降低延迟?

普通的C++服务程序,内部延迟(从进程收到消息到进程发出消息)做到几百微秒(即亚毫秒级)是不需要特殊的努力的。如果瓶颈在CPU,那么最有效的优化方式是“强度消减”,即不在于怎么做得快,而在于怎么做得少。


网络延迟分传输延迟和惯性延迟,通常局域网内以后者为主,广域网以前者为主。前者是传送1字节消息的基本延迟,大致跟距离成正比,千兆局域网单程是近百微秒,伦敦到纽约是几十毫秒。这个延迟受物理定律限制,优化办法是买更好的网络设备和租更短的线路。


惯性延迟跟消息大小成正比,跟网络带宽成反比,如果无法改变带宽,可以减小消息长度来降低延迟。


另外,延迟和吞吐量是矛盾的,通常吞吐量上去了延迟也会跟着升上去,因此控制负载是控制延迟的重要手段。延迟和资源使用率也是矛盾的,做高吞吐的服务程序,希望把CPU和IO都跑满,资源都用完。而低延迟的服务程序的资源占用率通常很低。实际上平时资源使用率低是为了准备应付突发请求,“排队”就意味着等待,等待就意味着延迟。

  

关于C++ 在交易中的其他方面,有兴趣的话,欢迎留言讨论。


关键词:高频交易 Speculator Standard Primary 时间就是金钱 金融投资 金融科技 fintech

stata SPSS
三重虫 发表于 2019-11-11 17:39:57 |显示全部楼层
回复

使用道具 举报

旋转木马8889 发表于 2019-11-12 09:08:57 |显示全部楼层
很有帮助,谢谢分享
回复

使用道具 举报

FinTech社区 企业认证  发表于 2019-11-15 16:13:23 |显示全部楼层
旋转木马8889 发表于 2019-11-12 09:08
很有帮助,谢谢分享
谢谢!欢迎关注微信公众号:FinTech社区。我们会定期在微信公众号上分享以及发布招聘信息
回复

使用道具 举报

FinTech社区 企业认证  发表于 2019-11-15 16:15:56 |显示全部楼层
三重虫 发表于 2019-11-11 17:39
谢谢欢迎关注微信公众号:FinTech社区,我们会定期在公众号上分享以及发布招聘信息
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2019-11-22 16:55