分布式期货行情交易系统-行情及交易模块分析
文章目录
目录
文章目录
前言
一、交易模块
1.用户管理
2.虚拟客户端
二、行情模块
1.实时数据采集
2.K线生成
3.K线服务
三 、云条件单模块
总结
前言
期货行情交易系统包含两个主要模块:交易和行情。扩展模块:云条件单。
根据整个系统的分布式架构设计,可以将行情和交易模块的功能分解成不同的微服务模块,极大的简化了系统的复杂度,更利于项目的协作与推进。
一、交易模块
目标:系统设计为支持不同期货公司客户完成交易功能,同时支持不同平台客户端(PC、Android和IOS)。
交易模块实际是交易中继的实现方式,最早是由文华财经提出的一种技术实现方案。改变传统的客户端直接连接期货公司交易网关的方式,在两者之间创建一个中继服务器负责管理客户端路由,客户端登录中继服务器,中继服务器代替客户端登录期货公司网关,这种方式的改变有两个优点:1.客户端标准化,因为期货公司服务器变动时不需要修改客户端软件;2.使云条件单成为可能,中继服务器替代客户端登录期货公司网关,使得交易连接可以长期保持,不会因为客户端下线而丢失,云条件单触发后才能正常提交给期货公司交易网关。交易模块从业务的角度来看:将不同期货公司客户的交易相关请求通过公开交易API提交给相应的期货公司交易网关,.接收及转发交易网关推送的交易信息给客户; 从抽象的角度来看:.中继服务器实现一组传统意义客户端并管理真正的客户端与期货公司网关之间的路由。
期货交易实际功能包含:登录、上个交易日账单获取与确认、请求用户保证金、持仓、本交易日历史报单记录和历史成交记录、下单(开仓和平仓)、期货公司交易网关主动推送的报单和成交处理、银期转账相关(出入金,查询签约银行卡、本交易日转账记录)、历史交割单查询。
1.用户管理
不同的交易用户可能来源于不同的期货公司,根据期货公司的不同,将用户分组管理,建立相应的虚拟客户端与期货公司建立连接。
2.虚拟客户端
通过虚拟客户端模块实现真实客户端的所有功能,虚拟客户端要支持多用户登录。
不同的期货公司交易网关的系统可能不一样,一般来讲采用以下三种公开交易网关API:上期技术-CTP、恒生-hsfutusdk、易盛信息-API,系统都要实现。实际应用时需为不同期货公司配置选项,系统根据用户的账号归属自动选取。
二、行情模块
1.实时数据采集
通过公开行情API(3种交易API都有对应的行情API,选取一种即可)可以订阅免费实时行情,根据需要筛选字段或者全部入库,可以为程序化提供毫秒级回测,如果没有这方面的业务需要可以直接通过发送到消息队列中去,交给其他服务处理。
需要注意的是:实时行情最小间隔为500毫秒/笔。因此会产生大量的数据写入,选取合适的数据库对于系统相当重要。
2.K线生成
循环处理消息队列来的实时行情数据,提取开盘价、收盘价、最高价及最低价生成K线数据。
根据K线客户端需求,服务端生成的基础K线为:1分钟K线、1小时K线及1月K线。这样其他K线都可以通过原始K线数据在客户端生成。基础K线写入数据库以便为K线服务提供数据。
3.K线服务
K线服务根据客户端的请求,分别提供分钟、小时、日等不同周期的K线数据组,为了加快访问速度,K线服务增加redis服务缓存部分最新数据。
K线客户端每次请求K线数据不能太少也不能太多,太少了显示界面不好看,太多了耗时长,体验感差,应综合考虑选取发送合适数量的K线数据,可根据客户端类别分别设置。
三 、云条件单模块
随着移动交易APP的兴起,受限于移动网络的不稳定性及普通交易客户交易时间的不稳定性,云条件单成为交易系统不可或缺的一部分。
什么是云条件单:交易客户将下单的触发条件设置好,提交到交易服务端,并不直接提交给期货公司网关,而是由服务暂时托管,当条件满足时,再发送订单到期货公司网关。触发条件一般是实时行情大于或者小于设定的价格、也可以定时触发。
总结
通过分析期货交易及行情的功能点,为后面的系统设计选取合适的架构及第三方系统提供依据。
分布式期货行情交易系统-行情及交易模块分析相关推荐
- java ctp行情_javaCtp: java版本期货程序化交易系统,包括行情服务,交易服务会逐步完善...
java_vnpy 介绍 java版本期货程序化交易系统,包括行情服务,交易服务会逐步完善,CTP版本上期技术官网下载6.3.15 穿透式, 目前项目无架构设计,只针对ctp进行封装调用,实现基本交易 ...
- 分布式高频量化交易系统架构讲解(企业版,期货ctp,股票xtp,数字货币,附全部源码)(值得收藏)
目录 1.量化交易系统简介 1.1行情数据 1.2交易策略 1.3交易 2. 分布式高频量化交易系统 2.1. 架构图 2.1.1量化交易系统教程地址 2.1.2量化交易系统教程中讲解的期 ...
- VNPY价差交易模块
目录: 一.数据定义stBase.py 二.价差引擎stEngine.py 三.价差算法stAlgo.py 四.界面定义uiStWidget.py 五.实盘配置ST_setting.json 六.价差 ...
- VNPY_ 价差交易模块
目录: 一.数据定义stBase.py 二.价差引擎stEngine.py 三.价差算法stAlgo.py 四.界面定义uiStWidget.py 五.实盘配置ST_setting.json 六.价差 ...
- 恒指期货的特性及相应交易技巧
恒生指数是众多日内交易者喜欢的投资品种,越来越多的人从认识,接纳到追捧,确立了恒生指数"亚洲指数之王"的权威性与广泛性.然而,由于缺乏对恒指期货特性的深入了解,很多人盲目操作,导致 ...
- 中国健康体检行业行情动态及未来发展趋向分析报告2022年版
中国健康体检行业行情动态及未来发展趋向分析报告2022年版 [报告目录]: 正文目录 2 图表目录 19 第1章:中国健康体检行业发展环境分析 21 1.1 健康体检行业概 ...
- 张鑫溢:9.19黄金行情预测行情趋势分析及黄金原油独家操作建议指导.
张鑫溢:9.19黄金行情预测行情趋势分析及黄 做投资最重要的2点:一是要懂得分析市场的一个行情:二是要懂得控制风险,作为一个投资者要有着良好的心态及正确的投资观念:积极的人在每一次忧患中都看到一个机会 ...
- VNPY 价差交易模块的使用学习
本文主要说说VNPY的价差模块的简单使用,至于自开发算法什么暂不涉及. VNPY提供价差交易模块,其实还是挺好用的, 先说说使用,再说说代码.进入之后的界面如下图: 使用思路: - - 定义价差组合: ...
- 编制期货自动交易系统的基本…
原文地址:编制期货自动交易系统的基本知识(Z) 作者:fractal 编制期货自动交易系统的基本知识.这是我从mql4 论坛上转来的帖子,仔细分析这里的代码就能了解mt4智能交易是如何运作的,对我帮助 ...
最新文章
- 教你如何通过分析GC日志来进行JVM调优
- Bengio和LeCun成为2020年AAAI Fellow,今年无华人学者入选
- ibatis解决sql注入问题
- docker快速入门01——docker安装与简单应用
- 第二章 DateTime工具类
- linux剪切一行,Linux基础命令:文本处理工具之cut
- VMware 修复 vCenter 服务器中的严重 RCE 漏洞
- java sql注入 正则表达式_有效防止SQL注入的5种方法总结
- 《C++ SYNTAX》第1章 基础知识
- Android消息机制和应用
- ZIF-67沸石咪唑酯骨架结构材料/cas46201-07-4/2-MethylimidazoleCobaltsalt
- mac如何彻底删除/卸载程序
- 定时监控Ubuntu系统HDMI热插拔进行锁屏操作
- MFC入门(三)-- MFC图片/文字控件(循环显示文字和图片的小程序)
- 再谈桌面虚拟化环境中的默认配置文件与输入法
- C#长链接转短链接(调用新浪api)
- html做成小程序,微信小程序——简单静态网页的制作
- Windows命令行查看文件的MD5 和win10下获取md5-sha1
- 【Unity】励志成为最强UI仔—BeaverJoe项目之UI界面制作【上】代码优化-动态加载UI对象
- 《The Wiley Handbook of Human Computer Interaction》翻译之Part XI
热门文章
- 图像处理保研面试_详解保研面试的那些事
- Snovio软件怎么用?请看这篇邮件群发平台使用指南
- 软件设计与体系结构——创建型模式
- java加载顺序_类加载过程中几个重点执行顺序整理
- gitlab设置自动备份
- 5G通信技术及技术特点
- 河北单招计算机英语,2019年河北高职单招考试十类 和对口电子电工类、计算机类联考 专业基础考试(英语)考试大纲.doc...
- iHRM 人力资源管理系统_第9章_文件上传与PDF报表入门_第二节_PDF报表入门
- 从maven私服(nexus)拉取jar文件,解析项目pom依赖信息
- 微信加好友方法有哪些?