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. 11-Pandas之排序(df.sort_index()、df.sort_values()、随机重排、随机采样)

    排序是一种索引机制的一种常见的操作方法,也是Pandas重要的内置运算,主要包括以下3种方法: 排序方法 说明 sort_values() 根据某一列的值进行排序 sort_index() 根据索引进 ...

  2. PDO::getAttribute

    PDO::getAttribute — 取回一个数据库连接的属性(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 mixed PDO::getAttrib ...

  3. Golang | Go语言多态的实现与interface使用

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第11篇文章,我们一起来聊聊golang当中多态的这个话题. 如果大家系统的学过C++.Java等语言以及面向对象的 ...

  4. Java和C语言谁是编程语言的老大?

    最近,TIOBE 公布了 2020 年 7 月的编程语言排行榜. 本次排行榜的最大亮点就是:C语言击败Java,稳坐老大宝座! 这两年,编程语言排行榜榜首位置,不是C语言,就是Java. 以下为具体榜 ...

  5. spring security 简介+实战

    过滤器链: 依赖: security 功能列表: 一.登录验证.权限验证 1.1 httpbasic验证 1.2form验证 建立数据需要遵循RBAC模型 用户表要参考UserDetail创建 实例类 ...

  6. Python编写的桌面图形界面程序实现更新检测和下载安装

    在Python中我们有很多种方案来编写桌面图形用户界面程序,譬如内置的 Tkinter .强大的 PyQt5 和 PySide2 ,还有 wxPython .借助这些或内置或第三方的模块,我们可以轻松 ...

  7. 学会这些Python美图技巧,就等着女朋友夸你吧

    一.前言 Python中有许多用于图像处理的库,像是Pillow,或者是OpenCV.而很多时候感觉学完了这些图像处理模块没有什么用,其实只是你不知道怎么用罢了.今天就给大家带了一些美图技巧,让你的图 ...

  8. 未来云原生世界的“领头羊”:容器批量计算项目Volcano 1.0版本发布

    在刚刚结束的CLOUD NATIVE+ OPEN SOURCE Virtual Summit China 2020上,由华为云云原生团队主导的容器批量计算项目Volcano正式发布1.0版本,标志着V ...

  9. 02-java实现单链表

    02-手撸链表 本篇是恋上数据结构第一季个人总结 借鉴https://juejin.im/post/6844904001478066183#heading-0 本人git https://github ...

  10. three.js 着色器材质之纹理

    今天郭先生说一说如何在three.js着色器中添加纹理,先看看今天要完成的效果,在线案例请点击博客原文. 这里我们分别引入三个纹理,分别是地球的表面纹理,对应的海拔灰度图,和云朵的纹理.使用表面纹理还 ...