logo资料库

论文研究-量化交易平台技术架构的研究与设计 .pdf

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
中国科技论文在线 http://www.paper.edu.cn 量化交易平台技术架构的研究与设计 杨晓婷,潘维民** (北京邮电大学计算机学院,北京 100876) 10 5 摘要:策略交易者目前在国内占比相对于欧美来说非常低。编程技能欠缺、信号评价无从验 证、信息分散等问题严重阻碍了策略交易在国内的发展。本文设计并实现了一个可视化的全 民策略交易平台框架,提供百姓能够使用的金融量化分析交易平台。在进行了细致的需求分 析、详细设计、技术调研和技术选型之后,采用 Node.js 框架、RabbitMQ 通信、Nginx 负载 均衡、Redis 缓存等技术,搭建了一个高可用、高性能、可伸缩的量化交易平台框架,实现 了用户管理、信号定制与展示、实时数据展示、信号回测等功能。该系统可以承受每秒 10 万次并发访问,并且在高并发的基础上保证请求的正确性,完全符合量化交易平台的要求。 该平台能够搭建成功也证明了只要在充分调研的基础上进行高水平的编程,国内也可以研发 出高水准的量化交易平台。 关键词:计算机应用;量化交易;Node.js 中图分类号:TP311.5 15 Design and Implementation of the Technology Framework of Quantitative Trading Platform YANG Xiaoting, PAN Weimin (Computer Science School, Beijing University of Post and telecommunication, Beijing 100876) Abstract: Compared with Europe and America, the proportion of strategic traders is very low in China now. Problems, such as lack of programming skills, lack of verification for signal evaluation, information dispersion and so on, severely hinder the development of strategic trade in China.A visualized national strategic trading platform framework is designed and realized in this paper in order to provide a financial quantitative analysis trading platform for the public.After meticulous requirement analysis, detailed design, technology investigation, research and selection, technologies like Node.js framework, RabbitMQ communication, Nginx load balancing, Redis caches and so on are adopted to build up an elastic quantitative trading platform framework of high-serviceability and high-function, realizing functions like user management, signal customization and display, real-time data display, signal detection and so on.100,000 concurrent accesses per second are available for the system. On the basis of high-concurrency, the accuracy of requirements is ensured, being completely in conformity with the requirements of quantitative trading platforms. The successful construction of the platform also proves that so long as there is advanced programming based on sufficient investigation and research, there will be high-quality quantitative trading platforms developed in China. Key words: Computer application; Quantitative Trading; Node.js 20 25 30 35 0 引言 40 技术进步带来了金融资产交易方式的革命,如今交易过程的每一个步骤,从订单输入到 交易场所再到后台清算,都实现了高度自动化。交易技术创新显著减少了由交易中介导致的 成本和摩擦,从而能够促进更加高效的风险分摊和风险对冲,提升市场的流动性和价格的有 效性,并最终降低企业的资本成本。量化交易包括算法交易、策略交易,是目前国际金融市 场主流的交易手段,已经在欧美等成熟市场得到了广泛的应用。大部分基金公司、机构投资 作者简介:杨晓婷(1992-),女,硕士研究生,计算机应用 通信联系人:潘维民(1969-),男,副教授,主要研究方向: 数理逻辑,计算金融学,数据分析,金融 风险管理,行业应用软件. E-mail: weiminpanboloomo@163.com - 1 -
中国科技论文在线 http://www.paper.edu.cn 45 者都使用算法交易来降低冲击成本、寻找最优价格。 量化交易正是这场意义深远的技术革命的重要体现。量化交易平台的建设目标是提供快 速策略开发、调试、回测、运行、第三方系统接入以及多种管理功能。具体包括策略研发、 策略运行、策略管理、行情资讯、多协议接入和第三方系统接口等功能。同时系统需要兼顾 二次开发的功能,保证随着业务应用的不断发展,系统能够有效进行扩充。 50 如何获得一个拥有高速精准的数据、高性能程式交易以及高度的开放性和前瞻性等特点 的专业的交易平台,这正是本文尝试解决的问题。 1 方法 1.1 概述 系统中主要存在四种元素:函数、指标、信号和策略,下面分别进行阐述。 55 1.1.1 函数(Function) 函数是量化交易平台的主要组成部分,是具有独立计算能力的单元。TradeStation 中对 于函数的定义是:The most important programming component in the concepts of reusable code and the dissemination of information。 1.1.2 指标(Indicators) 60 指标有以下几个特征: 1. 是一些函数的实例化。例如,RSI 是一个函数,也是一个指标,而这个指标已经固 化了基本的参数,例如,5 天和 10 天。 2. 是数学公式的图像展现,这是 TradeStation 给出的标准定义。在 TradeStation 中将指 标定义为:A graphic representation of a mathematical calculation。 65 1.1.3 信号(Singals-Studies) 在 TradeStation 中的 Studies 通常有两种表现:Paint Bar(将整个 Bar 表集成颜色);Show me(在 Bar 上方或者在下方显示出来,显示的内容是达到某些标准的数据)。Studies 类似 于本系统中定义的信号。信号是在多个指标的基础上合成的一个信号,只要达到一定的标准 就展示出来。在 TradeStation 中的定义为:Graphic demarcation of a mathmaticallybased 70 criterion。 1.1.4 策略(Strategy) 策略是整个量化交易的核心,具体来说就是达到买入和卖出的标准达到后,就进行买入 卖出,从而得到利润。在 TradeStation 中是可以直接通过三种 Order 来进行买卖的,Market (市价)、Limit(限价)和 Stop(止损)。在中国股市上,只能做到前两种。交易软件下 75 单的方式也是非常重要的,其定义为:This is the vehicle that we use to create a mechanical trading plan。大意为我们不能下单,只能进行性能评估。 1.2 量化交易平台目标 1.2.1 可视化定义策略 要完成可视化定义策略的目标,需要实现以下功能:可视化定义信号、可视化定义策略。 80 而信号和策略的基础有两个: - 2 -
中国科技论文在线 http://www.paper.edu.cn 1. 指标:在指标之上定义信号。 2. 推理:逻辑规则+四则运算进行推理。 经过分析可以得到该量化交易平台的以下优缺点: 1. 具有可视化的定义良好的 UI:股民可以定义策略,并对策略进行历史回测,从而达 85 到散户可用的目标。 2. 策略推理部分:对比 TradeStation 可以看出,策略推理基本上可以满足交易计划的 需求。 3. 指标计算方面弱化:指标不能进行随意的计算,不像 TradeStation 中那么灵活,从 而限制了对于策略的优化过程。也就是策略优化只能在策略的逻辑上和指标参数之 90 上进行优化,而不能随意定义指标和函数。 1.2.2 数据计算性能 搭建可以对策略进行高性能回测的数据平台。 1.2.3 信号性能 对于各种图形信号或者其他信号给出在历史上的评价。 95 1.3 系统架构设计 1.3.1 技术架构设计 系统整体架构如图 1 所示。其中最上层的 UI 展现层为前端展示页面,主要负责展示股 票和信号的相关信息,具体有 K 线图、饼图等表现形式;第二层的业务处理层主要负责实 现业务逻辑、与数据服务层进行交互、为 UI 展示层提供信息等功能;底层的数据服务层、 100 数据处理层是量化交易的核心,利用 Spark 等大数据技术通过大量计算为量化交易提供理论 和数据支持。本文主要对业务处理层进行研究和实现。 图 1 系统架构图 1.3.2 数据库设计 105 系统采用 MySQL 数据库存储数据,分别存储在三台机器上,机器信息如表 1 所示。其 中 sst-db-1 与 sst-db-2 为双向 MySQL 热备+Heartbeat 热备[1]。 - 3 -
中国科技论文在线 序号 1 2 3 http://www.paper.edu.cn IP 表 1 数据库存储 192.168.30.80 说明 虚拟 IP 192.168.30.181—sst-db-1 master(slave)DB 192.168.30.182—sst-db-2 slave(master)DB 110 访问数据库时,直接访问虚拟 IP,Heartbeat 可以保证 181 不能提供服务时 182 可以接 替 181 进行服务。当数据库有写入、更新操作时,181 和 182 双向热备,可以保证数据一致。 数据库结构设计如图 2 所示。 115 图 2 数据库结构 1.3.3 负载均衡设计 负载均衡的设计如图 3 所示,每个服务有两台服务器对外提供一致的服务,例如图中的 gate-1 和 gate-2,这两台服务器将请求分发到由数台 appserver 服务器构成的集群,完成所有 该类服务。因此,每一类型服务下的 gate 服务器是负载均衡服务器均衡的对象。gate 服务 器使用 Node.js+express[2]的框架对外提供服务。 120 负载均衡服务器负责将同一类型服务下的请求均衡的分配到该服务下的两台 gate 服务 器。负载均衡用 Nginx[3]反向代理实现。 - 4 -
中国科技论文在线 http://www.paper.edu.cn 图 3 负载均衡及业务服务架构图 125 1.4 系统功能设计 平台的核心需求是实现可视化定制信号、可视化定制策略,在此基础上增加买卖功能, 从而形成一个全民可用的量化交易平台。该平台主要包含以下几个模块:用户模块、实时数 据模块、信号模块和订单模块。 用户模块的功能主要包含登录、注册、找回密码、完善个人信息等基本操作。其中登录 130 功能支持使用微博、微信、QQ 进行第三方登录,注册功能支持使用手机号和邮箱进行注册。 实时数据模块主要负责产品行情信息的展示,用户可以选择特定的产品或者指标,也可 以设置特定的展示形式。 信号模块的主要功能有创建 K 线信号模型、分类展示 K 线信号列表、统计信号创建信 息、订阅信号、回测信号等。K 线信号是从现有产品的行情图上截取样本得到的,称之为信 135 号样本。用户可以采取几个信号样本组成一个 K 线模型信号,K 线模型信号发布后即可在 信号列表中展示。用户可以在选取时间区间、产品后用该信号对归票进行追踪或者回测,追 踪或者回测后展示报告信息。 订单模块的主要功能为购买信号或者策略,用户可以选择收费的产品加入购物车,结算 后生成订单,订单成功支付之后即可使用相应产品进行量化交易。 140 2 结果 使用 Node.js 平台、Express 框架搭建了量化交易平台的 Web 应用,使用 AJAX 实现前 后端分离,后端接口遵循 RESTful[4]风格。 2.1 鉴权的实现 2.1.1 基于 Token 的 RESTful 鉴权 145 传统的鉴权方式是用户向向服务器发送登录请求,登录成功后服务器根据用户信息创建 - 5 -
中国科技论文在线 http://www.paper.edu.cn Session 对象,并将 SessionId 写入返回信息,用户接收到 SessionId 之后将其写入 Cookie。 当用户再次发起请求时,服务器根据用户发送的 Cookie 判断用户是否有效登录。这种方式 无法适应当前多种客户端的现状,例如手机或者平板设备并没有 Cookie 机制,因此无法满 足本文跨平台的要求[5]。 150 量化交易平台采用 Token 机制实现鉴权,核心原理是:用户向服务器发送登录请求,服 务器将请求转发到鉴权服务器,鉴权服务器判断登录成功后为用户生成 Token,用户登录期 间发送的请求都附上 Token 来表明自己的身份。服务器接收到请求后,询问鉴权服务器 Token 有效性并缓存到本地。用户点击注销登录、在其他设备登录以及长时间不操作都会导致 Token 过期,Token 过期时鉴权服务器会通过 RabbitMQ 向所有服务器广播用户注销的信息, 以便服务器清空缓存[6]。 155 2.1.2 核心代码 以下为用户成功登录时为用户生成 Token 并更新用户登录信息的实现。其中 Token 根 据用户 Id 和时间戳生成。 var tokenMap = map(); 160 function loginSuccess(user, ip, now, isAutoLogin, notActivated, callback){ sstLog.info("login success: "+user.userNumber); var token = createToken(user.userNumber, isAutoLogin, now); } //create a new token for the user 165 function createToken(userNumber, isAutoLogin, now){ var expire = isAutoLogin ? now + config.tokenExpireTime : null; var token = uuid.v4(); tokenMap.set(token, {lastVisit:now, expire:expire, userId:userNumber}); return token; 170 } 以下为用户发送带有 Token 的请求时,鉴权服务器进行认证的实现,以及定期更新 Token 信息、发送 Token 失效广播的实现。 //logout function logout(token){ 175 if(tokenMap.peek(token)){ //token is alive tokenMap.del(token); sendLogoutMSG(token); //send logout message return true; } 180 return false; } //send logout message function sendLogoutMSG(token){ sstLog.info("logout;",token); 185 sstamqp.publish(sstamqp.exchanges.LOGOUT_EXCHANGE,sstamqp.routingKey.logout,tok en); } function authenticateToken(token){ return tokenMap.get(token); - 6 -
中国科技论文在线 http://www.paper.edu.cn 190 } function updateTokens(tokens){ for(var i=0;i
中国科技论文在线 http://www.paper.edu.cn 图 6 信号列表图 3 结论 215 本文给出了量化交易平台的一种比较优秀的实现方式,通过 Node.js 平台,引入 ChartIQ 等表现形式,设计与实现了一个百姓能够使用的金融量化分析交易平台基础架构,从而达到 了给股票交易者带来无限价值的目标。传统的股票交易平台往往需要一定的股票交易知识基 础才能够熟练使用,这大大增加了量化交易的门槛,使得普通散户不能有效利用交易平台进 行交易。相比于传统股票交易平台,本平台的前端展现方式更直接、美观,易于操作。而且 220 用 Node.js 架构实现平台,使得平台具有快速、小巧,易于拓展的特性,这在要求高速的股 票交易中是一大优势。 [参考文献] (References) 225 230 [1] Baron Schwartz, Peter Zaitsev, Vadim Tkachenko. 高性能 MySQL(第 3 版)[M]. 宁海元. 北京:电子工 业出版社,2013. [2] 弗拉纳根. JavaScript 权威指南(第 5 版)[M]. 李强. 北京:机械工业出版社,2007. [3] 陶辉. 深入理解 Nginx:模块开发与架构解析(第 2 版)[M]. 北京:机械工业出版社,2016. [4] Leonard Richardson, Mike Amundsen. RESTful Web APIs 中文版[M]. 赵震一, 李哲. 北京:电子工业出版 社,2014. [5] 柳丽娜. 浅淡 Session 机制与 Cookie 机制[J]. 电脑编程技巧与维护,2008,15:28-29. [6] Hüseyin Babal. Token-Based Authentication With AngularJS & NodeJS[OL]. http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543 [2014-12-11]. - 8 -
分享到:
收藏