系统概述 Last updated: 2020-05-25

Viper为上海羽量科技有限公司自主研发的量化投资平台,基于该平台,用户可以自行开发交易策略, 上传至用户远程交易服务器回测、运行,以达到高速、稳定的自动化交易目的。


Viper内置完善的数据处理机制、强大易用的API、高效便捷的回测处理、精细全面的权限管理、稳定统一的实盘运行,为专业投资团队提供一体化的投资解决方案。


导语

欢迎访问Viper量化投研平台!本文档预计阅读时长10分钟.

系统理念



不同于国内现在普遍的量化投资平台宣扬的"让投资更简单",我们通过多年的行业观察,认为只有更快、更新、更有效率的团队才能在这个自由竞争的市场上存活。


国内目前一些较流行的量化投资平台,如聚宽、米筐、果仁网等,其主要面向个人投资者,为其提供云端简易的策略编写和回测平台。

Viper则主要面向的是中小型量化投资团队,我们认为个人投资者受限于每个人自身的时间、特长等各方面因素,在数据获取、策略管理、策略迭代、实盘运行等诸多方面存在较大的限制,很难在系统开发与策略研发上实现均衡,综合来看只有团队的分工和协作才能不断在市场占领优势地位。



要提高系统效率,就必须依靠分工与协作,通过功能的模块化和用户的权限化,Viper致力于将投资过程变得更加标准化和流程化。

  • 功能模块化

    Viper将系统分为3个组成部分,ViperStudio为策略开发环境,ViperBackTest为策略回测管理平台,ViperReal为策略实盘运行平台,将不同功能进行划分,帮助用户更好的进行管理

  • 用户权限化

    管理员可以为不同的用户设置不同的权限,策略开发人员可以专注于策略的开发和迭代,系统管理人员可以高效的监控系统负载和数据资源,策略管理人员为策略进行授权和启动


策略的开发到运行,到稳定盈利是一个漫长的过程。如何快速的帮助用户进行策略迭代是我们一直思考的问题

Viper为用户的所有操作保存了历史记录,策略的不同版本、账户的历史资金、策略的历史资金、所有的历史订单、历史持仓,用户可以随时复盘并且导出数据与团队进行讨论,为策略的更新迭代提供了详细的数据支持

系统架构


Viper由3个部分组成,每个部分都可以无限水平扩展。


logo

Viper studio 是一款基于Eclipse打造的专业IDE工具,方便策略开发人员快速进行策略原型开发,迭代和升级, 语法高亮、补全、重构,包含策略的版本管理、文档和模板,支持Windows、Mac、Linux,详细信息用户可以查看文档

Viper BackTest是一款回测应用服务,基于用户的服务器本地部署,充分保证了策略的私密性,包含权限管理,版本管理,数据管理,高效完成策略的回测和分析,详细信息用户可以查看文档

Viper Real是一款实盘应用服务,基于用户的服务器本地部署,对接了多个股票和期货的实盘通道,详细信息用户可以查看文档

策略

程序化交易者围绕策略进行一系列的研究和开发工作,我们在此把用户对于策略的常见问题进行展示。

策略的本地化


Viper极其注意策略的重要性和私密性,整个交易系统都架构在用户的本地环境,用户可以通过设置防火墙、白名单、IP等多种方式来保护网络和操作系统,从而杜绝任何策略外泄的可能。

策略的权限化


我们为用户提供了策略的权限管理功能,不同的策略开发人员在回测管理平台只能看到自己开发和上传的策略,只能对自己的策略进行回测启动、停止和删除操作,从而可以极大的保护策略开发人员的劳动成果,也杜绝了一些误操作风险。

相应的,团队长或基金经理作为策略管理人员,可以查看该组成员所有的策略,对其回测结果进行评估。

logo

策略的版本化


目前公开的一些量化投资平台,大多数对策略的迭代过程没有考虑周到。我们认为一个策略的想法到最终盈利是一个过程化、积累化的,策略开发人员需要经常调整思路进行多方向试探。

在我们的系统中,每个策略的开发被看成一个单独的项目,策略在形成的过程中,会有许多中间回测结果,这些结果有些表现不错,有些表现较差。我们会为每一个中间结果记录一个版本号,从而策略开发人员可以非常清楚了解策略的进化过程,并且不同策略的版本可以同时进行实盘运行,为策略的比对提供精细化支持。

logo

策略的流程化


Viper的目标是提升用户的投资效率,在将功能进行模块化的同时,也致力于将策略的开发过程变得标准化。


一般策略开发流程:

  • 策略开发人员利用ViperStudio进行策略研发和编写
  • 策略开发人员将策略上传到ViperBackTest中进行回测
  • 策略管理人员将通过回测检测的策略添加实盘权限
  • 策略开发人员将有实盘权限的策略上传到实盘服务器
  • 实盘服务器开启策略进行运行
logo

策略运行

Viper为用户提供了统一的API,用户基于ViperStudio开发的策略可以同时在ViperBackTest和ViperReal中运行。

Warning

回测和实盘的API虽然相同,但有些函数只在回测生效,有些只在实盘运行有效,具体请查看API手册

基础数据


Viper为用户提供了所有需要的基础数据,股票列表、期货品种、期货合约、连续合约、指数合约,用户不仅可以在管理平台查看这些数据,也可以在API中直接获取。

这些基础数据会每日定时维护,系统管理用户也可以直接操作数据库,添加自定义的合约信息

logo

精细的回测


我们在为回测平台提供了tick级别的回测,并且用户可以多标的、多周期、多市场、自定义开始时间和结束时间。

用户可以对不同的账户进行手续费配置,如果是期货账户,甚至可以定义每个期货合约在具体日期的手续费和保证金配置,从而更加贴近真实交易环境

logo

稳定的实盘运行


利用实盘和回测分离的特点,我们对实盘进行了优化,策略的运行将分别使用不同的线程,从而可以保证策略之间隔离性

策略在回测或运行过程中,如果发生任何异常或将暂停策略运行,同时邮件通知客户进行处理

logo

策略隔离

为了将分工与协作进行到底,我们考虑这样一种情形,一个量化投资团队拥有套利交易组、alpha组、日内交易组。我们知道,一般我们只会在券商开一个交易账户,所有策略共同使用该交易账号。

要如何做到套利策略和日内交易策略得到的成交回报和资金、仓位信息不同?要如何把不同的策略进行叠加,从而最大化账户和产品的收益。

我们为用户提供的解决方案:隔离运行和独立核算

策略的独立


我们为每个策略都分配了唯一的标识符,并且同一策略的版本的不同实例标识符也不同。在策略的运行过,系统内部可以清晰的知道每笔订单所属的策略对象。

不仅是订单,行情的订阅分发,交易日切换的结算在系统内部都是分策略而进行,作为策略开发人员可以专注于开发自己擅长的策略,不影响整个账户的运行和使用。

logo

资金的独立

为了达到策略之间的独立性,在策略中,我们每个策略都保留了和计算了该策略的总资产、可用资金、市值等信息。策略开发人员使用API中获得的资金信息为该策略的可用资金和总资产,从而保证了资金的独立核算。

仓位的独立

同资金处理方式相同,在策略中,我们为每笔持仓都记录了该策略的总持仓、可用持仓、今日持仓、昨日持仓等信息,策略开发人员再使用API中获得的仓位信息为该策略的持仓信息,从而实现了仓位的独立核算。

详细的历史记录

我们为用户保留了一切交易痕迹,用户可以有效的通过历史记录来查看分析历史交易结果

历史资金

我们会每天结算后为用户保存当前策略资产情况,账户的资产,无论在回测还是实盘,用户都可以查询到策略和账户在某一天的资产信息

logo

历史持仓

我们会每天结算后位用户保存当前的持仓信息,无论在回测还是实盘,用户都可以查询到策略在某一天的所有持仓。

logo

历史订单

所有的历史订单我们都会记录下来,不仅如此,用户还可以查询到该笔订单的成交明细,从而可以用微观的角度进行建模和优化,采用更复杂和更细致的下单策略

logo