BIGI行情-实时行情数据源接口socket接入方法
1、国际期货、国内期货、外汇、贵金属、现货、期权、股指、数字货币和A股实时行情和历史行情
2、推送的有:socket,websocket,http接收,主动请求的有http get或post方式
3、免费调用K线,实时推送K线
4、稳定、无延时
5、交易所:纽约NYMEX、纽约COMEX、芝加哥CME、芝加哥CBOE、美国ICE、欧洲ICE、瑞士EUREX、伦敦LME、香港HKEX、新加坡SGX、京东TOCOM、马来西亚BMD、中金所CFFEX、上期所SHFE、大商所DCE、郑商所CZCE、上期能源INE
3.WebSocket连接
根据BIGI提供的IP、端口做连接,连上后返回字符串“ok”,然后可以发送登陆请求。
3.1.WebSocket登陆
3.1.1.登陆请求
发送登陆请求字符串:0=login|1=10002|2=abcde25oem5f6
0=login表示登陆;
1=10002 BIGI分配的账号;
2=abcde25oem5f6 BIGI分配的token;
“|” (0x7C)为每个数据元的分割符,分成key=value形式;
请求发出后等待登陆响应。
3.1.2.登陆响应
登陆响应返回:0=login|1=1|2=无效的令牌或账户已过期
0=login表示登陆;
1=1(0)0表示登陆成功,1表示登陆错误;
2=无效的令牌或账户已过期,登陆成功或失败的描述(登陆成功、登陆账户过期、未授权的登陆账户、未授权的ip地址);
“|” (0x7C)为每个数据元的分割符,分成key=value形式;
收到登陆成功信息后即可以发起订阅请求。
3.2.WebSocket订阅产品行情
3.2.1.订阅请求
发送订阅不带k线请求字符串:0=subscribe|1=6BML,HSIML,NGML
0=subscribe表示订阅;
1=6BML,HSIML,NGML 表示所要订阅的产品,也可以分开一个个产品订阅。
“|” (0x7C)为每个数据元的分割符,分成key=value形式;
请求发出后等待订阅响应。

发送订阅带k线请求字符串:0=subscribe|1=6BML,HSIML,NGML|2=k
3.2.2.订阅响应
发送订阅请求字符串:0=Subscribe|1=1|2=无效的令牌或账户已过期
0=subscribe表示订阅;
1=1(0)0表示登陆成功,1表示登陆错误。
2=无效的令牌或账户已过期,登陆成功或失败的描述(未授权的登陆账户或访问ip、产品xxx"已经订阅过、你没有订阅xxx产品的权限、订阅xxx成功)。
“|” (0x7C)为每个数据元的分割符,分成key=value形式;
“\n” (0x0A)发送内容结束符,每条请求指令或服务端响应都以\n为结束符。
收到订阅成功信息后即可开始正常接收服务器的最新行情。
3.3.WebSocket行情推送
3.3.1服务推送过来行情(不带k线)
0=hq|1=17|2=NGML|3=4.577|4=1542614598|5=1|6=4.574|7=4.577|8=1|9=3|10=9232|11=4.625|12=4.737|13=4.550|14=4.390
0=hq表示行情;
1=17 顺序码,不是唯一码;
2=NGML 产品,唯一码;
3=4.577 最新价格;
4=1542614598 时间,行情时间(UTC+8)与1970-1-1 0:0:0过去的秒数;
5=1 现手;
6=4.574 买价;
7=4.577 卖价;
8=1 买量;
9=3 卖量;
10=9232 成交量;
11=4.625 开盘价;
12=4.737 最高价;
13=4.550 最低价;
14=4.390 昨收价;
“|” (0x7C)为每个数据元的分割符,分成key=value形式;
3.3.2服务推送过来行情(带k线)
0=hq|1=4|2=CLML|3=62.94|4=1556512732|5=2|6=62.93|7=62.94|8=46|9=22|10=34112|11=62.95|12=63.11|13=62.79|14=62.80|M1=62.94,62.94,62.93,62.94,76,1904291238|M5=62.95,62.95,62.93,62.94,266,1904291235|M15=62.96,62.95,62.93,62.94,799,1904291230|M30=62.96,62.95,62.93,62.94,799,1904291230|H1=62.99,62.95,62.92,62.94,4190,1904291200|D1=63.11,62.83,62.83,62.94,57264,1904290800\n
0=hq表示行情;
1=4 顺序码,不是唯一码;
2= CLML产品,唯一码;
3=62.94 最新价格;
4=1556512732 时间,行情时间(UTC+0)与1970-1-1 0:0:0过去的秒数;
5=2 现手;
6=62.93 买价;
7=62.94 卖价;
8=46 买量;
9=22 卖量;
10=34112 成交量;
11=62.95 开盘价;
12=63.11 最高价;
13=62.79 最低价;
14=62.80 昨收价;
M1=62.94,62.94,62.93,62.94,76,1904291238,在时间19年04月29日12点38分1分钟k线,后面以逗号隔开的分别为高、开、低、收、成交量、k线时间 。
M5=62.95,62.95,62.93,62.94,266,1904291235,在时间19年04月29日12点35分5分钟k线,后面以逗号隔开的分别为高、开、低、收、成交量、k线时间 。
M15=62.96,62.95,62.93,62.94,799,1904291230,在时间19年04月29日12点30分15分钟k线,后面以逗号隔开的分别为高、开、低、收、成交量、k线时间 。
M30=62.96,62.95,62.93,62.94,799,1904291230,在时间19年04月29日12点30分30分钟k线,后面以逗号隔开的分别为高、开、低、收、成交量、k线时间 。
H1=62.99,62.95,62.92,62.94,4190,1904291200,在时间19年04月29日12点1小时k线,后面以逗号隔开的分别为高、开、低、收、成交量、k线时间 。
D1=63.11,62.83,62.83,62.94,57264,1904290800,在时间19年04月29日日k线,后面以逗号隔开的分别为高、开、低、收、成交量、k线时间 。

“|” (0x7C)为每个数据元的分割符,分成key=value形式;

3.4.WebSocket行情接收总结
7.客户端连接行情服务器;
成功连接后服务端返回“ok”;
8.客户端发送登陆请求:
0=login|1=10002|2=abcde25oem5f6
9.服务端响应登陆请求,成功登陆返回客户端:
0=login|1=0|2=登陆成功
10.客户端收到登陆成功后发送订阅产品行情请求:
不带k线的实时行情请求:0=subscribe|1=6BML,HSIML
带k线的实时行情请求:0=subscribe|1=6BML,HSIML,NGML|2=k
11.服务端响应订阅成功返回给客户端:
0=subscribe|1=0|2=订阅6BML成功\n
0=subscribe|1=0|2=订阅HSIML成功\n
12.服务器开始正式推送最新行情到客户端
0=hq|1=1|2=6BML|3=1.2841|4=1542610107|5=2|6=1.2830|7=1.2880|8=1|9=1|10=0|11=1.2781|12=1.2895|13=1.2777|14=1.2841\n
0=hq|1=2|2=HSIML|3=26128|4=1542617107|5=1|6=26125|7=26168|8=1|9=1|10=43903|11=26107|12=26239|13=25958|14=26115\n
以上为不带k线的推送。
以下为带k线的推送:
0=hq|1=4|2=CLML|3=62.94|4=1556512732|5=2|6=62.93|7=62.94|8=46|9=22|10=34112|11=62.95|12=63.11|13=62.79|14=62.80|M1=62.94,62.94,62.93,62.94,76,1904291238|M5=62.95,62.95,62.93,62.94,266,1904291235|M15=62.96,62.95,62.93,62.94,799,1904291230|M30=62.96,62.95,62.93,62.94,799,1904291230|H1=62.99,62.95,62.92,62.94,4190,1904291200|D1=63.11,62.83,62.83,62.94,57264,1904290800
所有请求或响应都带了\n,这是因为通讯协议为继承Socket,Websocket相对简单,无需处理封包,websocket客户端接收到的每条信息都是完整的信息。
3.4.1.WebSocket行情接收伪代码
WebSocket websocket = new WebSocket(“ws://ip:port/xxxx”);//创建一个全局的socket对象
websocket.OnClose += new EventHandler(OnClose);//断开连接事件
websocket.OnError += new EventHandler<WebSocketSharp.ErrorEventArgs>(OnError);//错误处理
websocket.OnMessage += new EventHandler(OnMessage)/ /接收到服务端信息事件
websocket.OnOpen += new EventHandler(OnOpen);//连上
void OnOpen(object sender, EventArgs e)
{

}
void OnMessage(object sender, MessageEventArgs e)
{
1
2
3
//分割字符串,以“|”为分隔符,压key-value进入Dictionary。
If msg==”ok” 连接成功,可以发起登陆
{
//发送登陆请求
_client.send(“0=login|1=10002|2=abcde25oem5f6\n”);
}
Else if Dictionary.Contain(0)and Dictionary[“0”]”login” and Dictionary[“1”]”0”
{
//登陆成功返回,发起订阅不带k线
_client.send(“0=subscribe|1=6BML,HSIML”);

//登陆成功返回,发起订阅带k线
1
//_client.send(“0=subscribe|1=6BML,HSIML|2=k”);
}

Else if Dictionary.Contain(0)and Dictionary[“0”]==”hq”
1
{
//接收行情,处理行情
--------行情处理业务逻辑----
}

}
1
void OnError(object sender, WebSocketSharp.ErrorEventArgs e)
{
ReConnection();//连接断开后重连
}

void websocket_OnClose(object sender, CloseEventArgs e)
{
ReConnection();//连接断开后重连
}
---------------------
作者:BIGI行情
来源:CSDN
原文:https://blog.csdn.net/vguiwang/article/details/91037990
版权声明:本文为博主原创文章,转载请附上博文链接!

BIGI行情-实时行情数据源接口websocket接入方法的更多相关文章

  1. 如何获取东方财富文华新浪财经实时行情数据API接口

    BIGI行情期货外汇股指A股期权实时行情数据文华新浪财经API接口新浪财经并非实时行情数据源,所以获取的行情数据源也并非实时的.以下介绍的方法和新浪财经获取行情数据源的方法是一致的.需要实时行情数据源 ...

  2. BIGI行情http请求实时行情数据方式

    BIGI行情http请求实时行情数据方式 新浪财经文华财经并非实时行情数据源,所以获取的行情数据源也并非实时的.以下介绍的方法和新浪财经获取行情数据源的方法是一致的.需要实时行情数据源可以向BIGI行 ...

  3. JavaDBF:保存行情实时数据到DBF文件

    JavaDBF.jar其实很早都不再更新了,在日新月异的科技圈算得上远古上神的jar包,早该身归混沌了. 但我们的项目要用到,因为之前做的大宗期货交易行情的分析文件依然是dbf文件,没有办法,还得用 ...

  4. 获取sina,baidu,google财经历史和实时股票数据接口

    实时股票数据接口 股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据2. web-service接口1.http/javascript接口取数据1.1Sina股票 ...

  5. 关于 实时推送技术--WebSocket的 知识分享

    今天学习了关于WebSocket的知识,觉得挺有用的,在这记录一下,也和大家分享一下!!有兴趣的可以看看哦 WebSocket简介 Web领域的实时推送技术,也被称作Realtime技术.这种技术要达 ...

  6. Jmeter实时监控+SpringBoot接口性能实战

    性能测试 Jmeter实时监控+SpringBoot接口性能实战 自动化 SpringBoot Java Jmeter实时监控+SpringBoot接口性能实战 一.实验目的及实验环境 1.1.实验目 ...

  7. Flink实战| Flink+Redis实时防刷接口作弊

    随着人口红利的慢慢削减,互联网产品的厮杀愈加激烈,大家开始看好下沉市场的潜力,拼多多,趣头条等厂商通过拉新奖励,购物优惠等政策率先抢占用户,壮大起来.其他各厂商也紧随其后,纷纷推出自己产品的极速版,如 ...

  8. ArcGIS 网络分析[8.2] 资料2 使用IDatasetContainer2接口的CreateDataset方法创建网络数据集

    上节提及如何使用IDatasetContainer2接口访问到网络数据集,上例可以封装为一个方法. 这节就使用IDatasetContainer2接口(Geodatabase类库)的CreateDat ...

  9. 网络 互联网接入方法、Mbit与MB的转换

    ADSL:非对称数字用户环路(绝大多数家庭接入方法,使用电话线).可以提供最高1Mbps的上行速率和最高8Mbps的下行速率.最新的ADSL2+可以提供最高24Mbps的下行速率. 千千兆TB 千兆G ...

随机推荐

  1. 做完这套面试题,你才敢说懂Excel

    下面的题目来自一份商品专员的面试题,其中有涉及到条件格式.自定义排序.数据验证制作下拉菜单.查找引用类函数.文本提取函数等等技能. 满满的干货技能可不是商品专员“专属”,如果你能熟练掌握,在平日工作中 ...

  2. stringsream用法

    stringstream: 头文件: #include <sstream> 简单整理一下这玩意的作用,主要有三个吧. 类型转化 字符串拼接 字符串整合(这一个用处特别大!!!!!!!) 先 ...

  3. SpringCloud Bus消息总线简介

    简介: SpringCloud Bus配合SpringCloud Config使用可以实现配置的动态刷新 SpringCloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了 ...

  4. PHP gd_info - 取得当前安装的 GD 库的信息

    gd_info — 取得当前安装的 GD 库的信息. 语法 array gd_info ( void )高佣联盟 www.cgewang.com 返回一个关联数组描述了安装的 GD 库的版本和性能. ...

  5. 7.9 NOI模拟赛 A.图 构造 dfs树 二分图

    啥都想不出来的我是不是废了/dk 这道题考的主要是构造 而我想的主要是乱搞. 一个很假很假的做法:直接暴力4种颜色染色 我也不知道对不对.. 不过成功的话一定是对的. 然后考虑奇环的问题 一个很假很假 ...

  6. 【目标检测】:SPP-Net深入理解(从R-CNN到SPP-Net)

    一. 导论 SPP-Net是何凯明在基于R-CNN的基础上提出来的目标检测模型,使用SPP-Net可以大幅度提升目标检测的速度,检测同样一张图片当中的所有目标,SPP-Net所花费的时间仅仅是RCNN ...

  7. Ternary weight networks

    Introduction 这两天看了一下这篇文章,我就这里分享一下,不过我还是只记录一下跟别人blog上没有,或者自己的想法(ps: 因为有时候翻blog时候发现每篇都一样还是挺烦的= =) .为了不 ...

  8. 会话机制,Cookie和Session详解

    转载自:https://www.cnblogs.com/whgk/p/6422391.html 很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二 ...

  9. 解决使用rollup构建ECharts过程中遇到的问题

    1.ECharts官方文档 参考:自定义构建 ECharts - ECharts Documentation 2.解决问题 改动一: // line.js // 引入 echarts 主模块. // ...

  10. java开发在线下载功能,自动打开浏览器下载功能下载网络文件或图片

    因为业务的需要,公司产品要求商品详情页面有个下载的功能 找了很多的方法,发现有的需要打开一个新窗口,而且在某些浏览器上不适用,所以继续寻找更好的方法 跟同事沟通后发现他那里有个下载的方法,不过是C#写 ...