分布式期货行情交易系统-行情及交易模块分析

本文介绍了一个期货交易系统的设计,包括交易、行情和云条件单三个核心模块。交易模块支持多平台客户端,通过中继服务器连接期货公司网关,实现标准化和云条件单功能。行情模块负责实时数据采集和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的兴起,受限于移动网络的不稳定性及普通交易客户交易时间的不稳定性,云条件单成为交易系统不可或缺的一部分。

什么是云条件单:交易客户将下单的触发条件设置好,提交到交易服务端,并不直接提交给期货公司网关,而是由服务暂时托管,当条件满足时,再发送订单到期货公司网关。触发条件一般是实时行情大于或者小于设定的价格、也可以定时触发。

 


总结

通过分析期货交易及行情的功能点,为后面的系统设计选取合适的架构及第三方系统提供依据。

 

【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Django,keras,axios, echats的智能股票分析系统源码+文档(集成LSTM的实践序列预测算法).zip ## 项目说明 **项目目标与功能** > 分析股价综合分析预测工具的功能需求,研究其设计及实现技术。设计股价综合分析预测工具的总体结构,实现如下功能: > > - **展示大盘指数行情、股票对比分析、个股信息分析** > - **明日股价预测、股价区间预测、股价走势预测、股价涨跌预测** > - **登入、注册,登出** > - 对所实现的部分进行测试和评价。· **项目技术栈** > - 生态:Python 3.8 > > - Web框架:Django 3 > > - 数据存储技术:Dataframe文件存储 > > - 深度学习框架:keras > > - 前端技术:bootstrap4+jquery+ajax+echats > > - 算法:lstm,归一化 **项目结构** ![img](image/clip_image001.png) **结构说明** > - stock:Django项目的主app > > - stockapp:实现股票展示、预测、更行等操作的app > > - forecast:算法模块,存放预测算法、数据处理函数、各种工具类函数。 > > - static:存放系统各种静态资源(js,css) > - templates:存放前端html页面 > - stockList.html:主页,展示所有股票的列表 > - stockDetail.html:股票详情页,展示股票的详细信息 > - stockSinglePredict.html:股票预测页,展示针对单个股票的预测结果(包含股票走势、区间、变化、明日股价1) > - stockComparison.html:股票对比页面,对比两只股票的信息 > - marketIndex.html:展示大盘指数 > - data:ts_code.csv(代码为ts_code的股票的数据存放文件),allStock.csv(存放所有股票的简要信息) > - backup:保存临时的代码文件,无用,可以直接删除 **重点说明stockapp下的各种文件作用** > ![img](image/clip_image002.png) > > .pytest_cache:系统缓存文件 > > migrations/:此目录包含Django应用程序的数据库迁移文件。每当您更改数据库表时,都应该创建一个新的迁移文件,并运行migrate命令来将更改应用于数据库。 > > app.py:此文件定义了Django应用程序的配置。您可以在这里指定应用程序的名称,URL配置和其他设置。 > > url.py:此文件包含Django应用程序的URL配置。您可以在这里定义哪些URL应该与哪些视图函数匹配,并将它们映射到适当的视图函数。 > > views.py:此文件包含Django应用程序的视图函数。视图函数处理来自URL的请求,并根据需要从数据库中检索数据,并将其呈现为HTML响应。 > > calculate_indicators.py:计算股票的各种指标 Stock**下各种文件的作用**: > ![img](image/clip_image003.png) > > - settings.py:此文件包含Django项目的所有设置。您可以在这里指定数据库配置,静态文件路径,安装的应用程序列表等等。 > - forms.py:此文件包含Django应用程序的表单类。表单类用于验证用户提交的数据,并将其转换为模型实例。 > > - manage.py:此文件是Django项目的命令行工具。您可以使用它来运行服务器,创建数据库迁移,运行测试等等。 ## 项目部署与运行 **准备工作** 项目用到了tushare 的api,需要使用者自行去tushare官网申请账号,获取api token填写到如下的位置: <img src="image/image-20230716000221588.png" alt="image-20230716000221588" style="zoom: 67%;" /> tushare官网:[Tushare数据](https://www.tushare.pro/) 获取api token的url:[Tushare数据](
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值