专栏首页维恩的派VNPIEvn.py发布v1.8 - WebTrader

vn.py发布v1.8 - WebTrader

基于Web前端的量化交易应用WebTrader终于开发完成,之前实在是跳票许久。在此首先要感谢下负责开发Web前端的社区成员cccbbbaaab(这名字,怎么说呢~)和他的团队,在短短两周的时间内就完成了后端服务的测试和前端页面的开发工作,效率和质量都杠杠的。

WebTrader

WebTrader应用位于examples/WebTrader目录下,使用时需要分别启动:

  • server.py:基于vnpy.rpc模块实现的交易服务器,包含CTP接口和CTA策略模块
  • run.py:基于Flask实现的Web服务器,内部通过vnpy.rpc客户端来访问交易服务器

之所以要将整个应用分解为两个进程,主要原因包括:

  • 交易服务器中数据分析和策略运行相关的运算压力较大,同时交易相关的业务需要保证尽可能保证低延时的效率性
  • Web服务器需要面对浏览器的HTTP访问,将交易相关业务逻辑剥离有助于避免各种IO开销导致的系统不稳定

服务器后端

后端逻辑这块主要由我负责开发(基于Python的Flask框架还算学得会),为了实现和PyQt界面类似的用户体验,WebTrader必须同时两种数据通讯模式:

1. 基于Flask-Restful实现的主动函数调用功能,数据流程:

  • 用户点击浏览器中的某个按钮,发起Restful功能调用
  • Web服务器收到Restful请求,将其转化为RPC功能调用发送给交易服务器
  • 交易服务器收到RPC请求,执行具体的功能逻辑,并返回结果
  • Web服务器返回Restful请求的结果给浏览器

2. 基于Flask-Socketio实现的被动数据推送功能,数据流程:

  • 交易服务器的事件引擎转发某个事件推送,并推送给RPC客户端(Web服务器)
  • Web服务器收到事件推送后,将其转化为json格式,并通过Websocket发出
  • 浏览器通过Websocket收到推送的数据,并渲染在Web前端界面上

所有Web服务相关的代码都在run.py中,希望二次开发界面的用户只要查看和学习这一个文件应该就行。

尽管可能有王婆卖瓜自卖自夸的嫌疑,但是个人感觉整个服务端的实现还真是做得非常简洁,觉得不爽的也欢迎打脸了,哈哈哈~

浏览器前端

前端界面这块由cccbbbaaab的团队负责开发,上图中可以看出和VnTrader非常相似,也方便老用户直接上手。架构上选择了vue,主要原因:

  • jQuery太原始,Angular比较重,React之前闹出过Facebook License的问题,都属于相对的硬伤
  • vue的设计理念:易用、灵活、高效,和vn.py的设计理念高度一致(当然成就上vn.py还差得十万八千里)
  • 在没有大型商业公司支持的前提下,尤大神仅靠个人和社区的力量做到和另外两大框架Angular和React并驾齐驱
  • 作者尤大神是中国人

综上选vue就成了很自然的结果,UI工具包则是根据网上评价和用户量选择了Element。

在和cccbbbaaab团队合作开发的过程中,也了解到前端圈“文无第一武无第二”的创造动力,所以如果vn.py社区用户对目前WebTrader的前端界面有任何改进想法或者直接就想做个更好的出来,欢迎发PR。

其他更新

接口

  1. 新增福汇FXCM的外汇交易接口vnpy.api.fxcm和fxcmGateway
  2. 富途接口futuGateway支持委托价格超限自动调整功能
  3. 将部分未充分测试的加密货币交易接口移动到beta目录中,供有需求的用户自行加载,之前v1.7.3中因为这部分接口造成了部分用户的安装麻烦

期权

  1. 新增Cython版本的Black-Scholes期权定价模型bsCython,定价速度为Python版本的约100倍
  2. 新增期权链折现率(利率r)自动拟合功能,解决由于期权Synthetic升贴水变化导致的波动率曲线失真
  3. 调整ctpGateway的期权链字符串命名规则,实现商品期权和ETF期权的兼容

应用

  1. 将CTA策略模块的StrategyMonitor的策略运行时变量更新机制改为在事件中推送,降低开销
  2. 在SpreadTrading模块中,增加算法启动时对于价差各条腿的行情初始化状态做事前检查,避免由于行情更新慢引起的错单

本文分享自微信公众号 - 维恩的派VNPIE(vn-pie),作者:用Python的交易员

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 广州线下活动内容分享

    vn.py的创始人‘用python的交易员’在周六举办了广州线下活动,在本次活动中主要分享了vn.py框架部署方案和数字货币量化交易两部分的内容。

    用Python的交易员
  • vnpy中的EventEngine和MainEngine用法介绍

    我准备写一篇vnpy的入门文章,考虑到入门文章如果讲太多内部细节,就会显得特别累赘,所以将细节和用法单独分离出来,写在这里。本文主要介绍了vnpy中的Event...

    用Python的交易员
  • 用于回测的Python交互K线工具

    开发策略时,如何直观地检查自己的交易逻辑是否正确?代码所实现的和自己的策略逻辑是否一致?moonnejs在「维恩的派」论坛里分享了一个可以用于回测的交互K线工具...

    用Python的交易员
  • Http协议分析

    HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目...

    用户2909867
  • 继苹果之后,谷歌也要全面甩掉高通自己造芯

    最近,他们在印度的班加罗尔搭建了一个名为“gChips”的芯片团队,目标是消费类SoC,并且短时间内就拉来了十几位英特尔、英伟达、高通的技术大咖。

    镁客网
  • 图解 & 深入浅出 JavaWeb:Servlet必会必知

    今天由场子里的养码人子木为大家带来一篇关于servlet的技术专贴,希望与大家交流经验,共同进步!

    养码场
  • 通过搭建wordpress博客来学习云服务器的详细使用方法

    云服务器越来越普及,很多企业及个人都纷纷上云,从传统的虚拟主机或者托管服务器上把网站和应用迁移到腾讯云、阿里云、百度云等这些云服务器上。

    尊托云数
  • 搬砖工作不保!波士顿动力双轮机器人掌握了新本领

    这次主角是2017年发布的双轮机器人Handle,不过这个机器人经过了重新的改造,除了还是踩着“风火轮”之外,样子已经有了很大的改变。

    量子位
  • 业界 | Facebook:不会“犯错”的机器人,不是“聪明”的机器人

    在人们意识当中,机器人按照开发者的意愿而做出指定的动作似乎是一件理所应当的事,而且,机器人完成任务还要做到精准、迅速。然而,Facbook 的研究人员却不走寻常...

    AI科技评论
  • 动态 | 来围观 UC 伯克利和CMU的「踩高跷走梅花桩」机器人

    AI 科技评论按:就像人类和大多数陆地动物一样,步行机器人需要具备在崎岖地面行走的能力。它们会被用于灾害应对和搜救工作。然而,设计一个控制算法让机器人能够适应不...

    AI科技评论

扫码关注云+社区

领取腾讯云代金券