日期 | api 版本 | 修订摘要 |
---|---|---|
2023.03.03 | 2.16.0 | API初版 |
2023.05.22 | 2.17.0 | API支持北交所股转相关数据 |
2023.07.07 | 2.18.0 | API修复接口类型,修复版本号问题 |
2024.04.12 | 2.19.0 | 完善接口说明,Create接口拼写错误修复 |
本接口规范用以指导开发通过 EMTAPI 对接的方式访问东财快速行情系统,获取指数、现货的相关数据。
本接口规范描述内容包括可开展的业务、必要的运行指导以及详细的数据交换格式
EMTQuoteAPI介绍
本部分主要介绍极速行情系统的接口,包括:
- EMTQuoteAPI简介。
- EMTQuoteAPI运行模式。
- EMTQuoteAPI编程接口
EMTQuoteAPI简介
背景
为实现客户快速交易中获得行情,东方财富证券推出了极速行情系统。客户端系统调用 EMTQuoteAPI 即可完成与极速行情系统的对接,接收到极速行情系统的行情后 EMTQuoteAPI 将回调(Callback)客户端系统。
简介
EMTQuoteAPI是一个基于C++的类库,通过使用和扩展类库提供的接口来实现全部的行情功能,支持指数、现货快照相关数据。支持静态数据,最新快照,最新价等数据。
该类库包含以下文件:
文件路径 | 文件名 | 文件描述 |
---|---|---|
demo | CMakeLists.txt | 示例编译文件 |
config.ini | 配置文件 | |
Main.cpp | 示例主函数 | |
my_quote_spi.cpp | 示例接口方法封装 | |
my_quote_spi.h | 示例接口方法头文件 | |
doc | API开发手册 | |
include | emt_api_data_type.h | 定义兼容数据基本类型 |
quote_api.h | 定义行情相关接口 | |
emt_quote_struct.h | 定义L1行情相关数据结构 | |
sze_hpf_define.h | 定义L2 深市相关数据结构(L1用户暂不支持使用) | |
sse_hpf_define.h | 定义L2 沪市相关数据结构(L1用户暂不支持使用) | |
lib/windows/x64 | emt_quote_api.dll | Windows行情接口动态链接库 |
emt_quote_api.lib | Windows行情接口导入库文件 | |
linux | libemt_quote_api.so | Linux行情接口动态链接库 |
客户系统在开发过程中需注意"当前版本不开放的业务",同时在每个功能描述中的具体描述。
发行的平台
目前发布了以下操作系统平台的版本:
- Intel X86/Windows10:包括.h文件、.dll文件和.lib文件。
- Intel Linux:包括.h文件和.so文件。
如果需要其他操作系统版本,请联系行情专线。
运行模式
工作线程
QuoteApi使用TCP模式接收行情。客户系统应用程序主要有三个线程,一是应用程序主线程,二是数据接收线程,接收上游服务的行情数据;三是数据处理线程,处理API业务消息以及对应的行情数据回调。
QuoteSpi提供的接口回调是由EMTQuoteAPI数据处理线程驱动,通过实现SPI中的接口方法,从极速行情系统收取所需数据。
如果重载的客户系统的应用程序的某个回调函数阻塞,则等于阻塞了EMTQuoteAPI工作线程,API与极速行情系统的通信会停止,因此通常应该迅速返回。在QuoteSpi派生类的回调函数中,可以利用将数据放入缓冲区或通过Windows的消息机制来实现迅速返回。
运行流程
客户系统和极速行情系统的交互过程分为2个阶段:
- 初始化阶段。
- 功能调用阶段。
初始化阶段
在初始化阶段,客户系统的程序必须完成如下步骤(具体代码请参考开发实例):
顺序 | 客户系统 | 调用方法 |
---|---|---|
1 | 创建一个QuoteApi实例 | QuoteApi::CreateQuoteApi |
2 | 产生一个事件处理的实例;(步骤1返回) | |
3 | 注册一个事件处理的实例; | QuoteApi::RegisterSpi |
4 | 登录服务 | QuoteApi::Login |
5 | 订阅行情流 | QuoteApi::SubscribeMarketData |
6 | 设置开发代码 | 相关业务实现及返回处理 QuoteSpi::OnMarketData |
功能调用阶段
在功能调用阶段,客户系统可以任意调用行情接口中的请求方法,如SubscribeMarketData;同时提供回调函数以响应回报数据,如OnDepthMarketData;
时序示例
EMTQuoteAPI提供了两个接口,分别为QuoteApi和QuoteSpi。
客户系统可以通过QuoteApi发出操作请求,通过继承QuoteSpi并重载回调函数来处理极速行情系统的回复或响应。
查询流程时序
各种查询功能,是通过不同的请求功能方法实现的,但大体流程基本相似。
查询多条数据,会分多次返回,返回参数中的 is_last 作为标记是否为最后一条
连接方式
单账户登录
目前一个QuoteApi的示例,仅第一次成功登录有效。
API中登录Login()接口为同步的,返回后,可以视为已经登录成功。
API支持断线重连功能,并且支持恢复订阅记录
demo示例
#include <thread>
#include <iostream>
#include "emt_api_data_type.h"
#include "inicpp.h"
#include "quote_api.h"
#include "my_quote_spi.h"
using namespace EMQ::API;
int main()
{
ini::IniFile cfg;
cfg.load("config.ini");
std::string gateway_ip =cfg["API"]["gatewayIp"].as<std::string>();
uint16_t gateway_port =cfg["API"]["gatewayPort"].as<uint16_t>();
std::string username =cfg["API"]["username"].as<std::string>();
std::string password =cfg["API"]["password"].as<std::string>();
uint32_t channel =cfg["Rebuild"]["chno"].as<uint32_t>();
uint64_t seq_beg =cfg["Rebuild"]["begSeq"].as<uint64_t>();
uint64_t seq_end =cfg["Rebuild"]["endSeq"].as<uint64_t>();
//创建API实例
QuoteApi* api = QuoteApi::CreatQuoteApi("./logs", EMQ_LOG_LEVEL::EMQ_LOG_LEVEL_DEBUG, EMQ_LOG_LEVEL::EMQ_LOG_LEVEL_DEBUG);
//注册自定义实现的spi
QuoteSpi* spi = new MyQuoteSpi();
api->RegisterSpi(spi);
//登陆行情服务器
api->Login(gateway_ip, gateway_port, username, password);
char* securityCodesSz[] = { (char*)"300059",(char*)"300033" };
//订阅数据
api->SubscribeMarketData(securityCodesSz, 2, EMQ_EXCHANGE_SZ);
//api退出
//api->logout();
int num = 0;
while (num < 100000000000)
{
num += 1;
// 主线程不停
std::this_thread::sleep_for(std::chrono::seconds(3));
}
return 0;
}
API公共接口
业务支持索引
方法 | 描述 |
---|---|
CreateQuoteApi | 创建一个Quote API接口类实例 |
Login | 用户登录请求 |
Logout | 登出请求 |
RegisterSpi | 注册回调接口 |
SetBuffer | 设置连接时的接收缓冲区大小 |
SetThreadAffinity | 设置系统接收线程和处理线程的cpu id (Windows下无效) |
API接口描述
CreateQuoteApi
/**
* @brief 创建API接口类实例
*
* @param log_path 生成日志文件的路径
* @param log_file_level 文件日志的日志级别
* @param log_console_level 控制台日志的日志级别 0 - trace, 1 - debug, 2 - info, 3 -warn, 4 - error, 5 - FATAL, 6 - OFF
* @return EMT API类的实例
*/
static QuoteApi* CreateQuoteApi(const char* log_path, EMQ_LOG_LEVEL log_file_level, EMQ_LOG_LEVEL log_console_level);
Login
/**
* @brief 发送登录消息到网关服务器
*
* @attention 此函数为同步阻塞模式,不需要异步等待登录成功,当函数返回即可进行后续操作,此api只能有一个连接
* @param ip 网关IP地址
* @param port 网关端口号
* @param user 登录用户账号
* @param pwd 登录用户密码
* @return 登录是否成功 登录是否成功,"0"表示登录成功,"-1"表示连接服务器出错,"-2"表示登录链接被打断失败,可能存在发送接收消息,或处理消息失败,可以尝试重新登录。"-3"表示登录失败,可能未发送正确的登陆消息格式或者鉴权失败。
*/
virtual int32_t Login(const char* ip, const uint16_t port, const char* user, const char* pwd) = 0;
Logout
/**
* @brief 发送登出消息到网关服务器,释放资源
*
* @attention 此函数为同步阻塞模式,不需要异步等待登录成功,当函数返回即可进行后续操作
*/
virtual void Logout() = 0;
RegisterSpi
/**
* @brief 注册回调接口类spi实例
*
* @param quote_spi 派生自回调接口类的实例,请在登录之前完成设定
*/
virtual void RegisterSpi(QuoteSpi* quote_spi) = 0;
SetBuffer
/**
* 设置缓冲区大小
* @attention 设置api内部消息缓存区大小,登录前设置生效
* @param buffer_size 缓存区大小,单位MB
* @return "0"表示设置成功,非"0"表示输入无效启用默认值
*/
virtual int32_t SetBuffer(size_t buffer_size) = 0;
SetThreadAffinity
/**
* @brief 设置系统线程绑定的cpu id
*
* @attention 此函数可不调用,调用需要在登录前调用。id填写 -1 则操作系统自由分配,不进行绑核。
* @param recv_cpu_no 接收线程绑定cpu id号 例如绑定cpu 0,可以设置0,绑定cpu 2,可以设置2,建议绑定后面的cpu
* @param process_cpu_no 处理线程绑定cpu id号
* @return
*/
virtual void SetThreadAffinity(int32_t recv_cpu_no = -1,int32_t process_cpu_no = -1) = 0;
API业务接口
业务支持索引
方法API | 回调SPI | 描述 |
---|---|---|
SubscribeAllIndexData | onSubscribeAllIndexData OnIndexData |
订阅全市场指数快照行情 |
UnSubscribeAllIndexData | onUnSubscribeAllIndexData | 取消订阅全市场指数快照行情 |
SubscribeIndexData | onSubIndexData OnIndexData |
订阅指数快照行情 |
UnSubscribeIndexData | onUnSubIndexData | 取消订阅指数快照行情 |
SubscribeAllMarketData | onSubscribeAllMarketData OnDepthMarketData |
订阅全市场合约快照行情 |
UnSubscribeAllMarketData | onUnSubscribeAllMarketData | 退订全市场合约快照行情 |
SubscribeMarketData | onSubMarketData OnDepthMarketData |
订阅快照行情,包括股票,基金,债券,权证和质押式回购 |
UnSubscribeMarketData | onUnSubMarketData | 取消订阅快照行情,包括股票,基金,债券,权证和质押式回购 |
QueryAllTickers | onQueryAllTickers | 获取所有合约的部分静态信息,包括沪深市场所有合约的部分静态信息 |
QueryAllTickersFullInfo | OnQueryAllTickersFullInfo OnQueryHkStaticInfo OnQueryBJGZStaticInfo |
获取所有合约的完整静态信息,包括全市场所有合约的完整静态信息 |
QueryLatestInfo | OnQueryLatestIndexData OnQueryLatestMarketData |
获取最新快照信息 |
QueryTickersPriceInfo | onQueryTickersPriceInfo | 获取最新价 |
RebuildSzData | OnRebuildSzData | 获取重建回补深市逐笔数据(L1用户不提供此功能) |
API接口描述
SubscribeAllIndexData
/**
* 订阅全市场指数快照行情
* @attention 需要与取消订阅全市场指数行情接口配套使用
* @param exchange_id 表示当前订阅的市场,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 订阅全市场指数快照行情接口调用是否成功,"0"表示接口调用成功,非"0"表示接口调用出错
*/
virtual int SubscribeAllIndexData(EMQ_EXCHANGE_TYPE exchange_id = EMQ_EXCHANGE_TYPE::EMQ_EXCHANGE_UNKNOWN) = 0;
UnSubscribeAllIndexData
/**
* 取消订阅全市场指数快照行情
* @attention 需要与订阅全市场指数行情接口配套使用
* @param exchange_id 表示当前取消订阅的市场,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 取消订阅全市场指数快照行情接口调用是否成功,"0"表示接口调用成功,非"0"表示接口调用出错
*/
virtual int UnSubscribeAllIndexData(EMQ_EXCHANGE_TYPE exchange_id = EMQ_EXCHANGE_TYPE::EMQ_EXCHANGE_UNKNOWN) = 0;
SubscribeIndexData
/**
* 订阅指数快照行情
* @attention 可一次性订阅同一证券交易所的多个指数,无论用户因为何种问题需要重新登录行情服务器,都需要重新订阅
* @param tickers 指数代码数组,注意指数代码必须以"\0"结尾,不包括空格
* @param count 需要订阅行情的指数个数
* @param exchange_id 交易所代码,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 订阅接口调用是否成功,"0"表示接口调用成功,非"0"表示接口调用出错
*/
virtual int SubscribeIndexData(char* tickers[], int count, EMQ_EXCHANGE_TYPE exchange_id = EMQ_EXCHANGE_TYPE::EMQ_EXCHANGE_UNKNOWN) = 0;
UnSubscribeIndexData
/**
* 取消订阅指数快照行情
* @attention 可一次性取消订阅同一证券交易所的多个指数,无论用户因为何种问题需要重新登录行情服务器,都需要重新订阅
* @param tickers 指数代码数组,注意指数代码必须以"\0"结尾,不包括空格
* @param count 需要订阅行情的指数个数
* @param exchange_id 交易所代码,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 取消订阅接口调用是否成功,"0"表示接口调用成功,非"0"表示接口调用出错
*/
virtual int UnSubscribeIndexData(char* tickers[], int count, EMQ_EXCHANGE_TYPE exchange_id = EMQ_EXCHANGE_TYPE::EMQ_EXCHANGE_UNKNOWN) = 0;
SubscribeAllMarketData
/**
* 订阅全市场合约快照行情
* @attention 需要与全市场退订行情接口配套使用
* @param exchange_id 表示当前全订阅的市场,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 订阅全市场行情接口调用是否成功,"0"表示接口调用成功,非"0"表示接口调用出错
*/
virtual int SubscribeAllMarketData(EMQ_EXCHANGE_TYPE exchange_id = EMQ_EXCHANGE_TYPE::EMQ_EXCHANGE_UNKNOWN) = 0;
UnSubscribeAllMarketData
/**
* 退订全市场合约快照行情
* @attention 需要与全市场订阅行情接口配套使用
* @param exchange_id 表示当前全订阅的市场,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 退订全市场行情接口调用是否成功,"0"表示接口调用成功,非"0"表示接口调用出错
*/
virtual int UnSubscribeAllMarketData(EMQ_EXCHANGE_TYPE exchange_id = EMQ_EXCHANGE_TYPE::EMQ_EXCHANGE_UNKNOWN) = 0;
SubscribeMarketData
/**
* 订阅快照行情,包括股票,基金,债券,权证和质押式回购,沪深港股通
* @attention 可一次性订阅同一证券交易所的多个合约,无论用户因为何种问题需要重新登录行情服务器,都需要重新订阅
* @param tickers 合约代码数组,注意合约代码必须以"\0"结尾,不包括空格
* @param count 需要订阅行情的合约个数
* @param exchange_id 交易所代码,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 订阅接口调用是否成功,"0"表示接口调用成功,非"0"表示接口调用出错
*/
virtual int SubscribeMarketData(char* tickers[], int count, EMQ_EXCHANGE_TYPE exchange_id = EMQ_EXCHANGE_TYPE::EMQ_EXCHANGE_UNKNOWN) = 0;
UnSubscribeMarketData
/**
* 取消订阅快照行情,包括股票,基金,债券,权证和质押式回购,沪深港股通
* @attention 可一次性取消订阅同一证券交易所的多个合约,无论用户因为何种问题需要重新登录行情服务器,都需要重新订阅
* @param tickers 合约代码数组,注意合约代码必须以"\0"结尾,不包括空格
* @param count 需要订阅行情的合约个数
* @param exchange_id 交易所代码,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 取消订阅接口调用是否成功,"0"表示接口调用成功,非"0"表示接口调用出错
*/
virtual int UnSubscribeMarketData(char* tickers[], int count, EMQ_EXCHANGE_TYPE exchange_id = EMQ_EXCHANGE_TYPE::EMQ_EXCHANGE_UNKNOWN) = 0;
QueryAllTickers
/**
* 获取所有合约的部分静态信息,包括全市场所有合约的部分静态信息
* @param exchange_id 交易所代码,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场
* @return 发送查询请求是否成功,"0"表示发送查询请求成功,非"0"表示发送查询请求不成功
*/
virtual int QueryAllTickers(EMQ_EXCHANGE_TYPE exchange_id = EMQ_EXCHANGE_TYPE::EMQ_EXCHANGE_UNKNOWN) = 0;
QueryAllTickersFullInfo
/**
* 获取所有合约的完整静态信息,包括全市场所有合约的完整静态信息
* @param exchange_id 交易所代码,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 发送查询请求是否成功,"0"表示发送查询请求成功,非"0"表示发送查询请求不成功
*/
virtual int QueryAllTickersFullInfo(EMQ_EXCHANGE_TYPE exchange_id = EMQ_EXCHANGE_TYPE::EMQ_EXCHANGE_UNKNOWN) = 0;
QueryLatestInfo
/**
* 获取最新快照信息
* @param tickers 合约ID数组,注意合约代码必须以'\0'结尾,不包含空格
* @param count 合约个数,为0表示查询交易所所有合约
* @param ticker_type 合约类型
* @param exchange_id 交易所代码,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 发送查询请求是否成功,"0"表示发送查询请求成功,非"0"表示发送查询请求不成功
*/
virtual int QueryLatestInfo(char* tickers[], int count, EMQ_TICKER_TYPE ticker_type, EMQ_EXCHANGE_TYPE exchange_id) = 0;
QueryTickersPriceInfo
/**
* 获取最新价
* @param tickers 合约ID数组,注意合约代码必须以'\0'结尾,不包含空格
* @param count 合约个数,为0表示查询交易所所有合约
* @param exchange_id 交易所代码,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @return 发送查询请求是否成功,"0"表示发送查询请求成功,非"0"表示发送查询请求不成功
*/
virtual int QueryTickersPriceInfo(char* tickers[], int count, EMQ_EXCHANGE_TYPE exchange_id) = 0;
RebuildSzData
/**
* @brief 查询回补深市逐笔数据
*
* @attention 此接口对L1用户不提供服务
* @param chno 回补数据通道号
* @param beg_seq 回补数据起始序号
* @param end_seq 回补数据结束序号
* @param request_id 保留字段,填写大于等于0的随机值
* @return 请求是否成功 "0"表示请求成功,"-2"表示请求链接被打断失败,发送回补消息失败,可以尝试重新请求 "-3"表示权限校验失败
*/
virtual int32_t RebuildSzData(const uint32_t chno, const uint64_t beg_seq, const uint64_t end_seq, const uint64_t request_id) = 0;
SPI接口
业务支持索引
方法 | 描述 |
---|---|
OnError | 错误应答 |
OnIndexData | 指数行情通知 |
OnDepthMarketData | L1快照行情通知 |
OnSubscribeAllIndexData | 订阅全市场的指数行情应答 |
OnUnSubscribeAllIndexData | 退订全市场的指数行情应答 |
OnSubIndexData | 订阅指数行情应答 |
OnUnSubIndexData | 退订指数行情应答 |
OnSubscribeAllMarketData | 订阅全市场股票快照行情应答 |
OnUnSubscribeAllMarketData | 退订全市场的股票快照行情应答 |
OnSubMarketData | 订阅快照行情应答,包括股票,基金,债券,权证和质押式回购 |
OnUnSubMarketData | 退订快照行情应答,包括股票,基金,债券,权证和质押式回购 |
OnQueryAllTickers | 查询全市场合约部分静态信息的应答 |
OnQueryAllTickersFullInfo | 查询全市场合约完整静态信息的应答 |
OnQueryLatestIndexData | 查询合约最新指数的应答 |
OnQueryLatestMarketData | 查询合约最新现货快照的应答 |
OnQueryTickersPriceInfo | 查询最新价的应答 |
OnQueryHkStaticInfo | 查询港股基础静态信息响应 |
OnQueryBJGZStaticInfo | 查询股转基础静态信息响应 |
OnRebuildSzData | 查询重建回补深市逐笔数据应答 |
SPI接口描述
OnError
/**
* 错误应答
* @attention 此函数只有在服务器发生错误时才会调用,一般无需用户处理
* @param error_info 当服务器响应发生错误时的具体错误内容
*/
virtual void OnError(const EMTRspInfoStruct* error_info) {};
OnHeartBeat
/**
* 心跳应答
* @attention 服务端会向客户端定时发送心跳消息,来检测客户端是否在线
* @return 该函数返回为void
*/
virtual void OnHeartBeat() = 0;
OnIndexData
/**
* 指数行情通知
* @attention 需要快速返回,否则阻塞后续消息,导致延时,当阻塞严重时,会触发断线
* @param index_data 指数行情数据,只有指数行情数据相关字段
*/
virtual void OnIndexData(EMTIndexDataStruct* index_data) = 0;
OnDepthMarketData
/**
* 深度行情通知,包含买一卖一队列
* @attention 需要快速返回,否则会堵塞后续消息,当堵塞严重时,会触发断线
* @param market_data 行情数据
* @param bid1_qty 买一队列数据
* @param bid1_count 买一队列的有效委托笔数
* @param max_bid1_count 买一队列总委托笔数
* @param ask1_qty 卖一队列数据
* @param ask1_count 卖一队列的有效委托笔数
* @param max_ask1_count 卖一队列总委托笔数
*/
virtual void OnDepthMarketData(EMTMarketDataStruct* market_data, int64_t bid1_qty[], int32_t bid1_count, int32_t max_bid1_count, int64_t ask1_qty[], int32_t ask1_count, int32_t max_ask1_count) = 0;
OnSubscribeAllIndexData
/**
* 订阅全市场的指数行情应答
* @attention 需要快速返回
* @param exchange_id 表示当前全部订阅的市场,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @param error_info 订阅合约时发生错误时返回的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
*/
virtual void OnSubscribeAllIndexData(EMQ_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) = 0;
OnUnSubscribeAllIndexData
/**
* 退订全市场的指数行情应答
* @attention 需要快速返回
* @param exchange_id 表示当前全部退订的市场,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @param error_info 取消订阅合约时发生错误时返回的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
*/
virtual void OnUnSubscribeAllIndexData(EMQ_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) = 0;
OnSubIndexData
/**
* 订阅指数行情应答
* @attention 每条订阅的合约对应一条订阅应答,需要快速返回,否则会阻塞后续消息,当阻塞严重时,会触发断线
* @param ticker 表示当前全阅的市场,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @param error_info 订阅的合约编号代码
* @param is_last 是否此次订阅的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
*/
virtual void OnSubIndexData(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) = 0;
OnUnSubIndexData
/**
* 退订指数行情应答
* @attention 每条订阅的合约对应一条退订应答,需要快速返回,否则会阻塞后续消息,当阻塞严重时,会触发断线
* @param ticker 订阅的合约编号代码,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @param error_info 取消订阅合约发生错误时的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
* @param is_last 是否此次取消订阅的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
*/
virtual void OnUnSubIndexData(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) = 0;
OnSubscribeAllMarketData
/**
* 订阅全市场股票快照行情应答
* @attention 需要快速返回
* @param exchange_id 表示当前全订阅的市场,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @param error_info 当error_info为空,或者error_info.error_id为0时,表明没有错误
*/
virtual void OnSubscribeAllMarketData(EMQ_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) = 0;
OnUnSubscribeAllMarketData
/**
* 退订全市场的股票快照行情应答
* @attention 需要快速返回
* @param exchange_id 表示当前全退订的市场,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @param error_info 取消订阅合约时发生错误时返回的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
*/
virtual void OnUnSubscribeAllMarketData(EMQ_EXCHANGE_TYPE exchange_id, EMTRspInfoStruct* error_info) = 0;
OnSubMarketData
/**
* 订阅快照行情应答,包括股票,基金,债券,权证和质押式回购 沪市港股通 深市港股通,股转数据
* @attention 每条订阅的合约对应一条订阅应答,需要快速返回,否则会阻塞后续消息,当阻塞严重时,会触发断线
* @param ticker 表示当前全阅的市场,EMQ_EXCHANGE_SH表示为上海全市场,EMQ_EXCHANGE_SZ表示为深圳全市场,EMQ_EXCHANGE_SHHK表示为沪市港股通,EMQ_EXCHANGE_SZHK表示为深市港股通,EMQ_EXCHANGE_BJGZK表示北交所股转市场
* @param error_info 订阅合约时发生错误时返回的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
* @param is_last 是否此次订阅的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
*/
virtual void OnSubMarketData(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) = 0;
OnUnSubMarketData
/**
* 退订快照行情应答,包括股票,基金,债券,权证和质押式回购 沪市港股通 深市港股通
* @attention 每条订阅的合约对应一条订阅应答,需要快速返回,否则会阻塞后续消息,当阻塞严重时,会触发断线
* @param ticker 订阅的合约编号代码
* @param error_info 取消订阅合约发生错误时的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
* @param is_last 是否此次取消订阅的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
*/
virtual void OnUnSubMarketData(EMTSpecificTickerStruct* ticker, EMTRspInfoStruct* error_info, bool is_last) = 0;
OnQueryAllTickers
/**
* 查询全市场合约部分静态信息的应答
* @attention 需要使用合约部分静态信息结构体EMTQuoteStaticInfo,用户自行传入一个空的结构体
* @param qsi 合约部分静态信息结构体
* @param error_info 请求发生错误时的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
* @param is_last 是否此次请求的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
* @return 该函数返回为void
*/
virtual void OnQueryAllTickers(EMTQuoteStaticInfo* qsi, EMTRspInfoStruct* error_info, bool is_last) = 0;
OnQueryAllTickersFullInfo
/**
* 查询全市场合约完整静态信息的应答
* @attention 需要使用合约完整静态信息结构体EMTQutoFullInfo,用户自行传入一个空的结构体
* @param qfi 合约完整静态信息结构体
* @param error_info 请求发生错误时的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
* @param is_last 是否此次请求的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
* @return 该函数返回为void
*/
virtual void OnQueryAllTickersFullInfo(EMTQuoteFullInfo* qfi, EMTRspInfoStruct* error_info, bool is_last) = 0;
OnQueryLatestIndexData
/**
* 查询合约最新指数的应答
* @attention 需要使用最新数据结构体EMTIndexDataStruct
* @param index_data 最新指数数据
* @param error_info 请求发生错误时的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
* @param is_last 是否此次请求的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
* @return 该函数返回为void
*/
virtual void OnQueryLatestIndexData(EMTIndexDataStruct* index_data, EMTRspInfoStruct* error_info, bool is_last) = 0;
OnQueryLatestMarketData
/**
* 查询合约最新现货快照的应答
* @attention 需要使用最新数据结构体EMTMarketDataStruct
* @param market_data 最新现货快照数据
* @param error_info 请求发生错误时的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
* @param is_last 是否此次请求的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
* @return 该函数返回为void
*/
virtual void OnQueryLatestMarketData(EMTMarketDataStruct* market_data, EMTRspInfoStruct* error_info, bool is_last) = 0;
OnQueryTickersPriceInfo
/**
* 查询最新价
* @attention
* @param price_info 价格信息
* @param error_info 请求发生错误时的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
* @param is_last 是否此次请求的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
* @return 该函数返回为void
*/
virtual void OnQueryTickersPriceInfo(EMTTickerPriceInfo* price_info, EMTRspInfoStruct* error_info, bool is_last) = 0;
OnQueryHkStaticInfo
/**
* @brief 查询港股静态信息
* @attention 需要使用港股静态信息结构体EMTHKStaticInfo
* @param static_info 港股静态信息数据
* @param error_info 订阅合约发生错误时的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
* @param is_last 是否此次退订的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
*/
virtual void OnQueryHkStaticInfo(EMTHKStaticInfo* static_info, EMTRspInfoStruct* error_info, bool is_last) {};
OnQueryBJGZStaticInfo
/**
* @brief 查询股转静态信息
* @attention 需要使用港股静态信息结构体EMTBJGZStaticInfo
* @param static_info 港股静态信息数据
* @param error_info 订阅合约发生错误时的错误信息,当error_info为空,或者error_info.error_id为0时,表明没有错误
* @param is_last 是否此次退订的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
*/
virtual void OnQueryBJGZStaticInfo(EMTBJGZStaticInfo* static_info, EMTRspInfoStruct* error_info, bool is_last) {};
OnRebuildSzData
/**
* @brief 查询重建回补深市逐笔数据应答
*
* @param rebuild_data 重建数据响应信息
* @param error_info 错误信息,服务器响应发生错误的具体错误内容
* @param is_last 是否此次查询的最后一个应答,当为最后一个的时候为true,如果为false,表示还有其他后续消息响应
*/
virtual void OnRebuildSzData(const EMTRebuildRespData* rebuild_data, const EMTRspInfoStruct* error_info, const bool is_last) {};
参数结构体
参数结构体索引
方法 | 描述 |
---|---|
EMTSpecificTickerStruct | 指定的合约 |
EMTRspInfoStruct | 响应信息 |
EMTIndexDataStruct | 指数行情结构体 |
EMTMarketDataFundExData | 基金额外数据结构体 |
EMTMarketDataBondExData | 债券额外数据结构体 |
EMTMarketDataWarrantExData | 权证额外数据 |
EMTMarketDataOptionExData | 期权额外数据 |
EMTMarketDataHkExData | 港股通额外数据 |
EMTMarketDataBJGZExData | 北交所股转额外数据 |
EMTMarketDataStruct | 快照行情结构体 |
EMTQuoteStaticInfo | 股票行情静态信息 |
EMTQuoteFullInfo | 股票行情全量静态信息 |
EMTMarketDataFullStruct | 现货快照 |
EMTHKStaticInfo | 港股基础静态信息 |
EMTBJGZStaticInfo | 北交所股转静态信息 |
参数结构体描述
EMTSpecificTickerStruct
/// 指定的合约
using EMTSpecificTickerStruct = struct _EMTSpecificTickerStruct
{
/// 交易所代码
EMQ_EXCHANGE_TYPE exchange_id;
/// 合约代码(不包含交易所信息)例如"600000",不带空格,以'\0'结尾
char ticker[EMQ_TICKER_LEN];
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
exchange_id | EMQ_EXCHANGE_TYPE | SH、SZ | 交易所代码 |
ticker | char[16] | SH、SZ | 合约代码(不包含交易所信息)例如"600000",不带空格,以'\0'结尾 |
EMTRspInfoStruct
using EMTRspInfoStruct = struct _EMTRspInfoStruct
{
/// 错误代码
int32_t error_id;
/// 错误信息
char error_msg[EMQ_ERR_MSG_LEN];
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
error_id | int32_t | SH、SZ | 错误代码 |
error_msg | char[124] | SH、SZ | 错误信息 |
EMTIndexDataStruct
/// 指数行情结构体
using EMTIndexDataStruct = struct _EMTIndexDataStruct
{
/// 交易所代码
EMQ_EXCHANGE_TYPE exchange_id;
/// 合约代码(不包含交易所信息),不带空格,以"\0"结尾
char ticker[EMQ_TICKER_LEN];
/// 行情时间,格式为YYYYMMDDHHMMSSssss
int64_t data_time;
/// 昨日收盘价
double pre_close_price;
/// 今日开盘价
double open_price;
/// 最新价
double last_price;
/// 最高价
double high_price;
/// 最低价
double low_price;
/// 数量,为总成交量(单位股,与交易所一致)
int64_t qty;
/// 成交金额,为总成交金额(单位元,与交易所一致)
double turnover;
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
exchange_id | EMQ_EXCHANGE_TYPE | SH、SZ | 交易所代码 |
ticker | char[16] | SH、SZ | 合约代码(不包含交易所信息),不带空格,以"\0"结尾 |
data_time | int64_t | SH、SZ | 行情时间,格式为YYYYMMDDHHMMSSssss |
pre_close_price | double | SH、SZ | 昨日收盘价 |
open_price | double | SH、SZ | 今日开盘价 |
last_price | double | SH、SZ | 最新价 |
high_price | double | SH、SZ | 最高价 |
low_price | double | SH、SZ | 最低价 |
qty | int64_t | SH、SZ | 数量,为总成交量(单位股,与交易所一致) |
turnover | double | SH、SZ | 成交金额,为总成交金额(单位元,与交易所一致) |
EMTMarketDataFundExData
/// 基金额外数据结构体
using EMTMarketDataFundExData = struct _EMTMarketDataFundExData
{
/// 基金实时参考净值(SH,SZ)
double iopv;
/// ETF申购笔数(SH)
int32_t etf_buy_count;
/// ETF赎回笔数(SH)
int32_t etf_sell_count;
/// ETF申购数量(SH)
double etf_buy_qty;
/// ETF申购金额(SH)
double etf_buy_money;
/// ETF赎回数量(SH)
double etf_sell_qty;
/// ETF赎回金额(SH)
double etf_sell_money;
/// 基金T-1日净值(SZ)
double pre_iopv;
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
iopv | double | SH、SZ | 基金实时参考净值(SH,SZ) |
etf_buy_count | int32_t | SH | ETF申购笔数(SH) |
etf_sell_count | int32_t | SH | ETF赎回笔数(SH) |
etf_buy_qty | double | SH | ETF申购数量(SH) |
etf_buy_money | double | SH | ETF申购金额(SH) |
etf_sell_qty | double | SH | ETF赎回数量(SH) |
etf_sell_money | double | SH | ETF赎回金额(SH) |
pre_iopv | double | SZ | 基金T-1日净值(SZ) |
EMTMarketDataBondExData
/// 债券额外数据结构体
using EMTMarketDataBondExData = struct _EMTMarketDataBondExData
{
/// 债券加权平均委买价格(SH)
double ma_bond_bid_price;
/// 债券加权平均委卖价格(SH)
double ma_bond_ask_price;
/// 债券到期收益率(SH)
double yield_to_maturity;
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
ma_bond_bid_price | double | SH | 债券加权平均委买价格(SH) |
ma_bond_ask_price | double | SH | 债券加权平均委卖价格(SH) |
yield_to_maturity | double | SH | 债券到期收益率(SH) |
EMTMarketDataWarrantExData
/// 权证额外数据
using EMTMarketDataWarrantExData = struct _EMTMarketDataWarrantExData
{
/// 权证执行的总数量(SH)
double total_warrant_exec_qty;
/// 权证跌停价格(元)(SH)
double warrant_lower_price;
/// 权证涨停价格(元)(SH)
double warrant_upper_price;
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
total_warrant_exec_qty | double | SH | 权证执行的总数量(SH) |
warrant_lower_price | double | SH | 权证跌停价格(元)(SH) |
warrant_upper_price | double | SH | 权证涨停价格(元)(SH) |
EMTMarketDataOptionExData
/// 期权额外数据
using EMTMarketDataOptionExData = struct _EMTMarketDataOptionExData
{
/// 波段性中断参考价(SH、SZ)
double auction_price;
/// 波段性中断集合竞价虚拟匹配量(SH、SZ)
int64_t auction_qty;
/// 最近询价时间(SH)
int64_t last_enquiry_time;
// 期权数据
/// 昨日持仓量(张)(目前未填写)
int64_t pre_total_long_positon;
/// 持仓量(张)(目前未填写)
int64_t total_long_positon;
/// 昨日结算价(目前未填写)
double pre_settl_price;
/// 今日结算价(目前未填写)
double settl_price;
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
auction_price | double | SH SZ | 波段性中断参考价 |
auction_qty | int64_t | SH SZ | 波段性中断集合竞价虚拟匹配量 |
last_enquiry_time | int64_t | SH | 最近询价时间(SH) |
pre_total_long_positon | int64_t | SH、SZ | 昨日持仓量(张)(目前未填写) |
total_long_positon | int64_t | SH、SZ | 持仓量(张)(目前未填写) |
pre_settl_price | double | SH、SZ | 昨日结算价(目前未填写) |
settl_price | double | SH、SZ | 今日结算价(目前未填写) |
EMTMarketDataHkExData
///港股通额外扩展数据
using EMTMarketDataHkExData = struct _EMTMarketDataHkExData
{
///参考价
double refer_price;
///按盘价
double nominal_price;
///买盘上限价
double buyside_up_limit_price;
///买盘下限价
double buyside_low_limit_price;
///卖盘上限价
double sellside_up_limit_price;
///卖盘下限价
double sellside_low_limit_price;
///冷静期开始时间 HHmmssSSS
int32_t complex_event_start_time;
///冷静期结束时间 HHmmssSSS
int32_t complex_event_end_time;
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
referPrice | double | SHHK/SZHK | 参考价 |
nominalPrice | double | SHHK/SZHK | 按盘价 |
buySideUpLimitPrice | double | SHHK/SZHK | 买盘上限价 |
buySideLowLimitPrice | double | SHHK/SZHK | 买盘下限价 |
sellSideUpLimitPrice | double | SHHK/SZHK | 卖盘上限价 |
sellSideLowLimitPrice | double | SHHK/SZHK | 卖盘下限价 |
complexEventStartTime | int32 | SHHK/SZHK | 冷静期开始时间 |
complexEventEndTime | int32 | SHHK/SZHK | 冷静期结束时间 |
EMTMarketDataBJGZExData
/// 北交所股转额外扩展数据
using EMTMarketDataBJGZExData = struct _EMTMarketDataBJGZExData
{
///静态市盈率
double LYR;
///动态市盈率
double TTM;
///价格升跌一 较昨日收盘价涨跌
double price_change1;
///价格涨跌二 较上一笔成交涨跌
double price_change2;
///合约持仓量
long open_interest;
///第一位 char 交易状态‘N’表示正常状态;‘Y’ 表示首日挂牌/上市;‘D’表示新增股票交易;‘I’表示询价;‘F’表示申购
///第二位 char 证券级别 ‘T’表示对应证券是挂牌/上市公司股票;‘B’表示对应证券是两网公司及退市公司股票;‘O’表示对应证券是仅提供行权功能的期权;‘P’表示对应证券是持有人数存在 200 人限制的证券;(优先股)‘R’表示对应证券是其他类型的业务;
/// ‘F’表示是发行业务;’C’表示对应证券是提供协议转让的可转换公司债券。
///第三位 char 交易类型 ‘T’表示协议交易方式; * ‘M’表示做市交易方式;‘B’表示集合竞价+连续竞价交易方式; * ‘C’表示集合竞价交易方式;‘P’表示发行方式,‘O’表示其他类型。
///第四位 char * 停牌标志 * ‘F’表示正常交易;‘T’表示停牌,不接受申报;‘H’表示停牌,接受申报。
///第五位 char ‘0’-基础层,‘1’-创新层,‘2’-北交所。对于优先股、可转债、指数等无市场层级的,本字段填空格。(预留)
char ticker_relevant_info[8];
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
LYR; | double | BJGZ | 静态市盈率 |
TTM | double | BJGZ | 动态市盈率 |
price_change1 | double | BJGZ | 价格升跌一 较昨日收盘价涨跌 |
price_change2 | double | BJGZ | 价格升跌二 较上一笔成交涨跌 |
open_interest | long | BJGZ | 合约持仓量 |
ticker_relevant_info | char[8] | BJGZ | 合约相关信息 |
EMTMarketDataStruct
/// 快照行情结构体
using EMTMarketDataStruct = struct _EMTMarketDataStruct
{
/// 交易所代码
EMQ_EXCHANGE_TYPE exchange_id;
/// 合约代码(不包含交易所信息),不带空格。以"\0"结尾
char ticker[EMQ_TICKER_LEN];
// 价格
/// 最新价
double last_price;
/// 昨日收盘价
double pre_close_price;
/// 今开盘价
double open_price;
/// 最高价
double high_price;
/// 最低价
double low_price;
/// 今收盘价(SH)
double close_price;
// 涨跌停
/// 涨停价(SZ)
double upper_limit_price;
/// 跌停价(SZ)
double lower_limit_price;
/// 行情时间,格式为YYYYMMDDHHMMSSssss
int64_t data_time;
// 量额数据
/// 数量,为总成交量(单位股,与交易所一致)
int64_t qty;
/// 成交金额,为总成交金额(单位元,与交易所一致)
double turnover;
/// 当日均价=(turnover/qty)
double avg_price;
// 买卖盘
/// 十档申买价
double bid[10];
/// 十档申卖价
double ask[10];
/// 十档申买量
int64_t bid_qty[10];
/// 十档申卖量
int64_t ask_qty[10];
/// 成交笔数
int64_t trades_count;
/// 当前交易状态说明(SH)
char ticker_status[8];
/// 委托买入总量(SH,SZ)
int64_t total_bid_qty;
/// 委托卖出总量(SH,SZ)
int64_t total_ask_qty;
/// 加权平均委买价格(SH,SZ)
double ma_bid_price;
/// 加权平均委卖价格(SH,SZ)
double ma_ask_price;
/// 买入撤单笔数(SH)
int32_t cancel_buy_count;
/// 卖出撤单笔数(SH)
int32_t cancel_sell_count;
/// 买入撤单数量(SH)
double cancel_buy_qty;
/// 卖出撤单数量(SH)
double cancel_sell_qty;
/// 买入撤单金额(SH)
double cancel_buy_money;
/// 卖出撤单金额(SH)
double cancel_sell_money;
/// 买入总笔数(SH)
int64_t total_buy_count;
/// 卖出总笔数(SH)
int64_t total_sell_count;
/// 买入委托成交最大等待时间(SH)
int32_t duration_after_buy;
/// 卖出委托成交最大等待时间(SH)
int32_t duration_after_sell;
/// 买方委托价位数(SH)
int32_t num_bid_orders;
/// 卖方委托价位数(SH)
int32_t num_ask_orders;
/// 额外数据联合体
union {
/// 债券额外数据
EMTMarketDataBondExData bond;
/// 基金额外数据
EMTMarketDataFundExData fund;
/// 权证额外数据
EMTMarketDataWarrantExData warrant;
/// 期权额外数据
EMTMarketDataOptionExData opt;
/// 港股额外数据
EMTMarketDataHkExData hk;
/// 北交所股转额外数据
EMTMarketDataBJGZExData bjgz;
};
/// 证券类别;1:股票,基金,债券,权证,质押式回购;2:期权;决定了union是哪种数据类型
EMQ_TICKER_TYPE data_type;
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
exchange_id | EMQ_EXCHANGE_TYPE | ALL | 交易所代码 |
ticker | char[16] | ALL | 合约代码(不包含交易所信息),不带空格。以"\0"结尾 |
last_price | double | ALL | 最新价 |
pre_close_price | double | ALL | 昨日收盘价 |
open_price | double | ALL | 今开盘价 |
high_price | double | ALL | 最高价 |
low_price | double | ALL | 最低价 |
close_price | double | SH | 今收盘价(SH) |
upper_limit_price | double | SZ | 涨停价(SZ) |
lower_limit_price | double | SZ | 跌停价(SZ) |
data_time | int64_t | SH、SZ | 行情时间,格式为YYYYMMDDHHMMSSssss |
qty | int64_t | ALL | 数量,为总成交量(单位股,与交易所一致) |
turnover | double | ALL | 成交金额,为总成交金额(单位元,与交易所一致) |
avg_price | double | ALL | 当日均价=(turnover/qty) |
bid | double[10] | ALL | 十档申买价 |
ask | double[10] | ALL | 十档申卖价 |
bid_qty | int64_t[10] | ALL | 十档申买量 |
ask_qty | int64_t[10] | ALL | 十档申卖量 |
trades_count | int64_t | ALL | 成交笔数 |
ticker_status | char[8] | SH | 当前交易状态说明(SH) |
total_bid_qty | int64_t | SH、SZ | 委托买入总量(SH,SZ) |
total_ask_qty | int64_t | SH、SZ | 委托卖出总量(SH,SZ) |
ma_bid_price | double | SH、SZ | 加权平均委买价格(SH,SZ) |
ma_ask_price | double | SH、SZ | 加权平均委卖价格(SH,SZ) |
cancel_buy_count | int32_t | SH | 买入撤单笔数(SH) |
cancel_sell_count | int32_t | SH | 卖出撤单笔数(SH) |
cancel_buy_qty | double | SH | 买入撤单数量(SH) |
cancel_sell_qty | double | SH | 卖出撤单数量(SH) |
cancel_buy_money | double | SH | 买入撤单金额(SH) |
cancel_sell_money | double | SH | 卖出撤单金额(SH) |
total_buy_count | int64_t | SH | 买入总笔数(SH) |
total_sell_count | int64_t | SH | 卖出总笔数(SH) |
duration_after_buy | int32_t | SH | 买入委托成交最大等待时间(SH) |
duration_after_sell | int32_t | SH | 卖出委托成交最大等待时间(SH) |
num_bid_orders | int32_t | SH | 买方委托价位数(SH) |
num_ask_orders | int32_t | SH | 卖方委托价位数(SH) |
bond | EMTMarketDataBondExData | SH、SZ | 债券额外数据 |
fund | EMTMarketDataFundExData | SH、SZ | 基金额外数据 |
warrant | EMTMarketDataWarrantExData | SH、SZ | 权证额外数据 |
opt | EMTMarketDataOptionExData | SH、SZ | 期权额外数据 |
hk | EMTMarketDataHkExData | SZHK/SZHK | 港股通额外数据 |
bjgz | EMTMarketDataBJGZExData | BJGZ | 股转额外数据 |
data_type | EMQ_TICKER_TYPE | ALL | 证券类别:决定了union是哪种数据类型 |
EMTQuoteStaticInfo
/// 股票行情静态信息
using EMTQuoteStaticInfo = struct _EMTQuoteStaticInfo {
/// 交易所代码
EMQ_EXCHANGE_TYPE exchange_id;
/// 合约代码(不包含交易所信息),不带空格,以'\0'结尾
char ticker[EMQ_TICKER_LEN];
/// 合约名称
char ticker_name[EMQ_TICKER_NAME_LEN];
/// 合约类型
EMQ_TICKER_TYPE ticker_type;
/// 昨收盘
double pre_close_price;
/// 涨停板价
double upper_limit_price;
/// 跌停板价
double lower_limit_price;
/// 最小变动价位
double price_tick;
/// 合约最小交易量(买)
int32_t buy_qty_unit;
/// 合约最小交易量(卖)
int32_t sell_qty_unit;
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
ticker | char[16] | SH、SZ | 合约代码(不包含交易所信息),不带空格,以'\0'结尾 |
ticker_name | char[64] | SH、SZ | 合约名称 |
ticker_type | EMQ_TICKER_TYPE | SH、SZ | 合约类型 |
pre_close_price | double | SH、SZ | 昨收盘 |
upper_limit_price | double | SH、SZ | 涨停板价 |
lower_limit_price | double | SH、SZ | 跌停板价 |
price_tick | double | SH、SZ | 最小变动价位 |
buy_qty_unit | int32_t | SH、SZ | 合约最小交易量(买) |
sell_qty_unit | int32_t | SH、SZ | 合约最小交易量(卖) |
EMTQuoteFullInfo
/// 股票行情全量静态信息
using EMTQuoteFullInfo = struct _EMTQuoteFullInfo {
/// 交易所代码
EMQ_EXCHANGE_TYPE exchange_id;
/// 证券代码
char ticker[EMQ_TICKER_LEN];
/// 证券名称
char ticker_name[EMQ_TICKER_NAME_LEN];
/// 合约详细类型
EMQ_SECURITY_TYPE security_type;
/// 合约适当性类别
EMQ_QUALIFICATION_TYPE ticker_qualification_class;
/// 是否注册制(仅适用创业板股票,创新企业股票及存托凭证)
bool is_registration;
/// 是否具有协议控制架构(仅适用创业板股票,创新企业股票及存托凭证)
bool is_VIE;
/// 是否尚未盈利(仅适用创业板股票,创新企业股票及存托凭证)
bool is_noprofit;
/// 是否存在投票权差异(仅适用创业板股票,创新企业股票及存托凭证)
bool is_weighted_voting_rights;
/// 是否有涨跌幅限制(注:不提供具体幅度,可通过涨跌停价和昨收价来计算幅度)
bool is_have_price_limit;
/// 涨停价(仅在有涨跌幅限制时有效)
double upper_limit_price;
/// 跌停价(仅在有涨跌幅限制时有效)
double lower_limit_price;
/// 昨收价
double pre_close_price;
/// 价格最小变动价位
double price_tick;
/// 限价买委托数量上限
int32_t bid_qty_upper_limit;
/// 限价买委托数量下限
int32_t bid_qty_lower_limit;
/// 限价买数量单位
int32_t bid_qty_unit;
/// 限价卖委托数量上限
int32_t ask_qty_upper_limit;
/// 限价卖委托数量下限
int32_t ask_qty_lower_limit;
/// 限价卖数量单位
int32_t ask_qty_unit;
/// 市价买委托数量上限
int32_t market_bid_qty_upper_limit;
/// 市价买委托数量下限
int32_t market_bid_qty_lower_limit;
/// 市价买数量单位
int32_t market_bid_qty_unit;
/// 市价卖委托数量上限
int32_t market_ask_qty_upper_limit;
/// 市价卖委托数量下限
int32_t market_ask_qty_lower_limit;
/// 市价卖数量单位
int32_t market_ask_qty_unit;
/// 保留字段
uint64_t unknown[4];
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
ticker | char[16] | SH、SZ | 证券代码 |
ticker_name | char[64] | SH、SZ | 证券名称 |
security_type | EMQ_SECURITY_TYPE | SH、SZ | 合约详细类型 |
ticker_qualification_class | EMQ_QUALIFICATION_TYPE | SH、SZ | 合约适当性类别 |
is_registration | bool | SH、SZ | 是否注册制(仅适用创业板股票,创新企业股票及存托凭证) |
is_VIE | bool | SH、SZ | 是否具有协议控制架构(仅适用创业板股票,创新企业股票及存托凭证) |
is_noprofit | bool | SH、SZ | 是否尚未盈利(仅适用创业板股票,创新企业股票及存托凭证) |
is_weighted_voting_rights | bool | SH、SZ | 是否存在投票权差异(仅适用创业板股票,创新企业股票及存托凭证) |
is_have_price_limit | bool | SH、SZ | 是否有涨跌幅限制(注:不提供具体幅度,可通过涨跌停价和昨收价来计算幅度) |
upper_limit_price | double | SH、SZ | 涨停价(仅在有涨跌幅限制时有效) |
lower_limit_price | double | SH、SZ | 跌停价(仅在有涨跌幅限制时有效) |
pre_close_price | double | SH、SZ | 昨收价 |
price_tick | double | SH、SZ | 价格最小变动价位 |
bid_qty_upper_limit | int32_t | SH、SZ | 限价买委托数量上限 |
bid_qty_lower_limit | int32_t | SH、SZ | 限价买委托数量下限 |
bid_qty_unit | int32_t | SH、SZ | 限价买数量单位 |
ask_qty_upper_limit | int32_t | SH、SZ | 限价卖委托数量上限 |
ask_qty_lower_limit | int32_t | SH、SZ | 限价卖委托数量下限 |
ask_qty_unit | int32_t | SH、SZ | 限价卖数量单位 |
market_bid_qty_upper_limit | int32_t | SH、SZ | 市价买委托数量上限 |
market_bid_qty_lower_limit | int32_t | SH、SZ | 市价买委托数量下限 |
market_bid_qty_unit | int32_t | SH、SZ | 市价买数量单位 |
market_ask_qty_upper_limit | int32_t | SH、SZ | 市价卖委托数量上限 |
market_ask_qty_lower_limit | int32_t | SH、SZ | 市价卖委托数量下限 |
market_ask_qty_unit | int32_t | SH、SZ | 市价卖数量单位 |
unknown | uint64_t[4] | SH、SZ | 保留字段 |
EMTMarketDataFullStruct
/// 现货快照
typedef struct _EMTMarketDataFullStruct
{
/// 现货快照
EMTMarketDataStruct marketData;
/// 买一档委托总笔数
uint32_t max_bid1_count;
/// 买一档委托数
uint32_t bid1_count;
/// 买一档委托详情
int64_t bid1_qty[50];
/// 卖一档委托总笔数
uint32_t max_ask1_count;
/// 卖一档委托数
uint32_t ask1_count;
/// 卖一档委托详情
int64_t ask1_qty[50];
}EMTMarketDataFullStruct;
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
marketData | EMTMarketDataStruct | ALL | 现货快照 |
max_bid1_count | uint32_t | ALL | 买一档委托总笔数 |
bid1_count | uint32_t | ALL | 买一档委托数 |
bid1_qty | int64_t[50] | ALL | 买一档委托详情 |
max_ask1_count | uint32_t | ALL | 卖一档委托总笔数 |
ask1_count | uint32_t | ALL | 卖一档委托数 |
ask1_qty | int64_t[50] | ALL | 卖一档委托详情 |
EMTHKStaticInfo
/// 港股静态信息数据
using EMTHKStaticInfo = struct _EMTHKStaticInfo
{
/// 交易所代码
EMQ_EXCHANGE_TYPE exchange_type;
/// 证券类型
EMQ_TICKER_TYPE ticker_type;
/// 合约代码(不包含交易所信息),不带空格,以'\0'结尾
char ticker[EMQ_HK_TICKER_LEN];
/// ISIN 代码
char isin_ticker[EMQ_TICKER_LEN];
/// 英文证券名简称
char short_form_ticke_en[EMQ_TICKER_LEN];
/// 市场种类
//MAIN- 主板 GEM-创业板
//ETS-扩充交易证券 NASD-Nasdaq AMX 市场
char market_type[4];
/// 证券类别
///BOND Bond 债券
///BWRT Basket Warrant 一篮子权证
///EQTY Equity 股本
///TRST Trust 信托
///WRNT Warrant 权证
char symbol_type[4];
/// 辅助证券代码 权证的正股代码
char assist_symbol[5];
/// 货币种类
///港币:HKD; 美元:USD;人民币:CNY;澳币:AUD;加币:CAD ; 日圆:JPY;新加坡币:SGD ; 英镑 : GBP ; 欧元:EUR
char currency_type[3];
/// 货币单位
///货币单位表示前收盘价格字段的单位,当货币单位取值为 0 时,前收盘价格=前收盘价格字段取值×10 的 0 次幂,当货币单位取值为 1 时,前收盘价格=前收盘价格字段取值×10 的 1 次幂,依次类推。
char currency_unit;
/// 面值货币种类 港币:HKD; 美元:USD;人民币:CNY
char currency_denomination_type[3];
/// 保留字段
char reserved1[4];
/// 上市日期 YYYYMMDD
char issueDate[8];
/// 买卖单位
///整手数
///买卖申报数量必须是该字段的整数倍。
int32_t round_lot;
/// 保留字段
char reserved2[4];
/// 面值 股票面值 单位:元
double denomination;
/// 利息 对于债券填写交收日利息 仅针对利息通过 CCASS 系统来结算的债券
double interest;
/// 前收盘价 当日除权(息)后收盘价格
double pre_close_price;
/// 保留字段
char reserverd3[16];
///第一位有效Y表示停牌 N表示非停牌
///第二位有效 Y表示参与市场波动调节机制 N表示不参与
///第三位有效 Y表示参与收市竞价交易时段 N表示不参与
///第四位有效 Y表示参与开市前时段优化 N表示不参与
///第五至六位有效 价差代码,不足两位左补零。
///第七至八位有效 市场波动调节机制类别
char text[64];
///中文证券简称 GBK编码
char ticker_name_zh[64];
///英文证券全称
char ticker_name_en[64];
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
exchange_type | EMQ_EXCHANGE_TYPE | SHHK、SZHK | 交易所代码 |
ticker_type | EMQ_TICKER_TYPE | SHHK、SZHK | 证券类型 |
ticker | char[8]; | SHHK、SZHK | 合约代码(不包含交易所信息),不带空格,以'\0'结尾 |
isin_ticker | char[16] | SHHK、SZHK | ISIN 代码 |
short_form_ticke_en | char[16] | SHHK、SZHK | 英文证券名简称 |
market_type | char[4] | SHHK、SZHK | 市场种类 MAIN- 主板 GEM-创业板 //ETS-扩充交易证券 NASD-Nasdaq AMX 市场 |
symbol_type | char[4] | SHHK、SZHK | 证券类别 BOND Bond 债券 BWRT Basket Warrant 一篮子权证 EQTY Equity 股本 TRST Trust 信托 WRNT Warrant 权证 |
assist_symbol | char[5] | SHHK、SZHK | 辅助证券代码 权证的正股代码 |
currency_type | char[3] | SHHK、SZHK | 货币种类 港币:HKD; 美元:USD;人民币:CNY;澳币:AUD;加币:CAD ; 日圆:JPY;新加坡币:SGD ; 英镑 : GBP ; 欧元:EUR |
currency_unit | char | SHHK、SZHK | 货币单位 |
currency_denomination_type | char[3] | SHHK、SZHK | 面值货币种类 港币:HKD; 美元:USD;人民币:CNY |
reserved1 | char[4] | SHHK、SZHK | 保留字段 |
issueDate | char[8] | SHHK、SZHK | 上市日期 YYYYMMDD |
round_lot | int32_t | SHHK、SZHK | 买卖单位 //整手数限价买委托数量上限 //买卖申报数量必须是该字段的整数倍。限价买委托数量下限 |
reserved2 | char[4] | SHHK、SZHK | 保留字段 |
denomination | double | SHHK、SZHK | 面值 股票面值 单位:元 |
interest | double | SHHK、SZHK | 利息 对于债券填写交收日利息 仅针对利息通过 CCASS 系统来结算的债券 |
pre_close_price | double | SHHK、SZHK | 前收盘价 当日除权(息)后收盘价格 |
reserverd3 | char[16] | SHHK、SZHK | 保留字段 |
text | char[64] | SHHK、SZHK | 备注 |
ticker_name_zh | char[64] | SHHK、SZHK | 中文证券简称 GBK编码 |
ticker_name_en | char[64] | SHHK、SZHK | 英文证券全称 |
EMTBJGZStaticInfo
/// 股转静态信息数据
using EMTBJGZStaticInfo = struct _EMTBJGZStaticInfo
{
/// 交易所代码
EMQ_EXCHANGE_TYPE exchange_type;
/// 证券类型
EMQ_TICKER_TYPE ticker_type;
/// 合约代码(不包含交易所信息),不带空格,以'\0'结尾
char ticker[8];
///char[8] 证券简称 GBK
char ticker_name[8];
/// char[6] 行业种类
/// 对于股票:左边第一位为字母,表示门类;左边第二、三位为数字,表示大类;其他位为空。
/// 具体定义请参见中国证监会颁布的《上市公司行业分类指引》
char industry_type[6];
/// char[2] 货币种类
/// ‘00’人民币,‘02’美元
char currency_type[2];
/// double 面值
/// 对于股票,每股面值为 1元;对于可转债,每张面值为 100 元
double denomination;
/// int64 总股本
int64_t total_share_capital;
/// int64 非限售股本
int64_t nonrestricted_share_capital;
/// double 上年每股收益
/// 对于股票,存放上年每股利润
double last_year_eps;
/// double 今年每股收益 预留
double this_year_eps;
/// double 经手费率
/// 为全国股转公司及北交所本身收取或向投资者代收的交易费用费率,该费率仅为参考,实际费率以相关收费管理规定为准
double transaction_rate;
/// double 印花税率
double stamp_duty_rate;
/// double 过户费率
double transfer_rate;
/// int32 挂牌日期 CCYYMMDD
int32_t list_date;
/// int32 起息日 CCYYMMDD
/// 对于优先股和可转债,该字段存放其起息日;对于要约业务,该字段存放其要约开始日期;对于发行业务,该字段存放其询价开始日期
int32_t start_date;
/// int32 到期日 CCYYMMDD
/// 对于要约业务,该字段存放其要约结束日期;对于发行业务,该字段存放其询价结束日期
int32_t end_date;
/// int32 每笔限量 申报数量上限
int32_t declare_upper_limit;
/// int32 买数量单位
int32_t buy_quantity_unit;
/// int32 卖数量单位
int32_t sell_quantity_unit;
/// int32 最小申报数量
/// 存放除做市商外其他投资者在正常交易时段的每笔最小申报数量
int32_t min_declare_count;
/// int32 限价参数类型
/// 0 表示 限价参数的值为价格;1 为比例数
int32_t param_type;
/// double 价格挡位
/// 申报价格的最小变动单位,例如 0.01 元 RMB。
double tick_size;
/// double 首笔交易限价参数
/// 具体参考北交所接口文档
double first_trade_limit_price_param;
/// double 后续交易限价参数
/// 具体参考北交所接口文档
double sub_trade_limit_price_param;
/// double 涨停价格
/// 为申报有效价格范围的价格上限,如果 =99999.99(币种为人民币)或 99999.999(币种为美元),则相应的证券没有涨幅限制。对于要约业务,存放其收购/回购价格
double upper_limit_price;
/// double 跌停价格
/// 为申报有效价格范围的价格下限 如果=0.000,则相应的证券没有跌幅限制。对于要约业务,存放其收购/回购价格
double lower_limit_price;
/// double 折合比例
/// 对于优先股,该字段存放其票面股息率(%);对于可转债,该字段存放票面利率(%)。
double conv_ratio;
/// char 成分股标志 预留
char constituent_stock_flag;
/// char 交易状态
/// ‘N’表示正常状态;‘Y’表示首日挂牌/上市;‘D’表示新增股票交易;‘I’表示询价;‘F’表示申购
char trade_status;
/// char 证券级别
/// ‘T’表示对应证券是挂牌/上市公司股票;‘B’表示对应证券是两网公司及退市公司股票;
/// ‘O’表示对应证券是仅提供行权功能的期权;‘P’表示对应证券是持有人数存在 200 人限制的证券;(优先股)
/// ‘R’表示对应证券是其他类型的业务;
/// ‘F’表示是发行业务;’C’表示对应证券是提供协议转让的可转换公司债券。
char symbol_type;
/// char 交易类型
/// ‘T’表示协议交易方式;
/// ‘M’表示做市交易方式;‘B’表示集合竞价+连续竞价交易方式;
/// ‘C’表示集合竞价交易方式;‘P’表示发行方式,‘O’表示其他类型。
char trade_type;
/// char 停牌标志
/// ‘F’表示正常交易;‘T’表示停牌,不接受申报;‘H’表示停牌,接受申报。
char suspend_flag;
/// char 除权除息标志
/// ‘N’表示正常状态;‘E’表示除权;‘D’表示除息;‘A’表示除权除息。
char ex_divide_flag;
/// char 网络投票标志 预留
char network_note_flag;
/// char 市场层级
/// ‘0’-基础层,‘1’-创新层,‘2’-北交所。对于优先股、可转债、指数等无市场层级的,本字段填空格。(预留字段)
char market_level;
/// char[2] 交易场所 预留
char trading_ring[2];
/// char 是否为融资标的 (预留字段)
/// ‘Y’-是,‘N’-否
char is_financing;
/// char 是否为融券标的 (预留字段)
/// ‘Y’-是,‘N’-否
char is_securities_loan;
/// char 是否当日可融资 (预留字段)
/// ‘Y’-是,‘N’-否
char is_financing_today;
/// char 是否当日可融券 (预留字段)
/// ‘Y’-是,‘N’-否
char is_securities_loan_today;
/// 预留字段
char reserved[2];
/// int32 交易单位 申报数量的单位
int32_t trade_unit;
/// char[4] 其他业务状态
/// 详见北交所NQXX接口文档
char other_status[4];
/// int32 做市商数量
/// 对于有做市商提供做市服务的证券揭示其做市商数量,对于没有做市商提供做市服务的证券该字段的值默认为 0
int32_t market_maker_count;
/// int32
/// 记录更新时间 HHMMSS
int32_t update_time;
/// double 大宗交易价格上限 预留
double block_trade_upper_limit_price;
/// double 大宗交易价格下限 预留
double block_trade_lower_limit_price;
};
标识 | 类型及长度 | 交易市场 | 描述 |
---|---|---|---|
exchange_type | EMQ_EXCHANGE_TYPE | BJGZ | 交易所代码 |
ticker_type | EMQ_TICKER_TYPE | BJGZ | 证券类型 |
ticker | char[8]; | BJGZ | 合约代码(不包含交易所信息),不带空格,以'\0'结尾 |
ticker_name | char[8] | BJGZ | 证券简称 GBK |
industry_type | char[6] | BJGZ | 行业种类 |
currency_type | char[2] | BJGZ | 货币种类 |
denomination | double | BJGZ | 面值 |
total_share_capital | double | BJGZ | 总股本 |
nonrestricted_share_capital | double | BJGZ | 非限售股本 |
last_year_eps | double | BJGZ | 上年每股收益 |
this_year_eps | double | BJGZ | 今年每股收益(预留) |
transaction_rate | double | BJGZ | 经手费率 |
stamp_duty_rate | double | BJGZ | 印花税率 |
transfer_rate | double | BJGZ | 过户费率 |
list_date | int32 | BJGZ | 挂牌日期 CCYYMMDD |
start_date | int32 | BJGZ | 起息日 CCYYMMDD |
end_date | int32 | BJGZ | 到期日 CCYYMMDD |
declare_upper_limit | int32 | BJGZ | 每笔限量 申报数量上限 |
buy_quantity_unit | int32 | BJGZ | 买数量单位 |
sell_quantity_unit | int32 | BJGZ | 卖数量单位 |
min_declare_count | int32 | BJGZ | 最小申报数量 |
param_type | int32 | BJGZ | 限价参数类型 |
tick_size | double | BJGZ | 价格挡位 |
first_trade_limit_price_param | double | BJGZ | 首笔交易限价参数 |
sub_trade_limit_price_param | double | BJGZ | 后续交易限价参数 |
upper_limit_price | double | BJGZ | 涨停价格 |
lower_limit_price | double | BJGZ | 跌停价格 |
conv_ratio | double | BJGZ | 折合比例 |
constituent_stock_flag; | char | BJGZ | 成分股标志(预留) |
trade_status | char | BJGZ | 交易状态 |
symbol_type | char | BJGZ | 证券类型 |
trade_type | char | BJGZ | 交易类型 |
suspend_flag | char | BJGZ | 停牌标志 |
ex_divide_flag | char | BJGZ | 除息除权标志 |
network_note_flag | char | BJGZ | 网络投票标志 (预留) |
market_level | char | BJGZ | 市场层级 (预留) |
trading_ring | char[2] | BJGZ | 交易场所(预留) |
is_financing | char | BJGZ | 是否为融资标的 (预留) |
is_securities_loan | char | BJGZ | 是否为融券标的 (预留) |
is_financing_today | char | BJGZ | 是否当日可融资 (预留) |
is_securities_loan_today | char | BJGZ | 是否当日可融券 (预留) |
reserved | char[2] | BJGZ | 预留字段 |
trade_unit | int32 | BJGZ | 交易单位 |
other_status | char[4] | BJGZ | 其他业务状态 |
market_maker_count | int32 | BJGZ | 做市商数量 |
update_time | int32 | BJGZ | 记录更新时间 HHMMSS |
block_trade_upper_limit_price | double | BJGZ | 大宗交易价格上限 (预留) |
block_trade_lower_limit_price; | double | BJGZ | 大宗交易价格下限 (预留) |
附录
字典定义
证券类别-EMQ_TICKER_TYPE
枚举 | 取值 | 定义说明 |
---|---|---|
EMQ_TICKER_TYPE_STOCK | 0 | 普通股票 |
EMQ_TICKER_TYPE_INDEX | 1 | 指数 |
EMQ_TICKER_TYPE_FUND | 2 | 基金 |
EMQ_TICKER_TYPE_BOND | 3 | 债券 |
EMQ_TICKER_TYPE_OPTION | 4 | 期权 |
EMQ_TICKER_TYPE_TECH_STOCK | 5 | 科创板股票(上海) |
EMQ_TICKER_TYPE_REPURCHASE | 6 | 质押式回购 |
EMQ_TICKER_TYPE_WARRANT | 7 | 权证 |
EMQ_TICKER_TYPE_HK_STOCK | 8 | 港股通 |
EMQ_TICKER_TYPE_BJGZ | 9 | 北交所股转 |
EMQ_TICKER_TYPE_UNKNOWN | 100 | 未知类型 |
交易所类型-EMQ_EXCHANGE_TYPE
枚举 | 取值 | 定义说明 |
---|---|---|
EMQ_EXCHANGE_SH | 1 | 上证 |
EMQ_EXCHANGE_SZ | 2 | 深证 |
EMQ_EXCHANGE_SHHK | 3 | 沪市港股通 |
EMQ_EXCHANGE_SZHK | 4 | 深市港股通 |
EMQ_EXCHANGE_BJGZ | 5 | 北交所股转行情 |
EMQ_EXCHANGE_UNKNOWN | 100 | 不存在的交易所类型 |
合约适当性类别-EMQ_QUALIFICATION_TYPE
枚举 | 取值 | 定义说明 |
---|---|---|
EMQ_QUALIFICATION_PUBLIC | 0 | 公众投资者,合格投资者与机构投资者均可 |
EMQ_QUALIFICATION_COMMON | 1 | 仅合格投资者与公众投资者 |
EMQ_QUALIFICATION_ORGANIZATION | 2 | 仅限机构投资者 |
EMQ_QUALIFICATION_UNKNOWN | 3 | 未知,期权等可能为此种类型 |
证券适当性枚举类型-EMQ_SECURITY_TYPE
枚举 | 取值 | 定义说明 |
---|---|---|
EMQ_SECURITY_MAIN_BOARD | 0 | 主板股票 |
EMQ_SECURITY_SECOND_BOARD | 1 | 中小板股票 |
EMQ_SECURITY_STARTUP_BOARD | 2 | 创业板股票 |
EMQ_SECURITY_INDEX | 3 | 指数 |
EMQ_SECURITY_TECH_BOARD | 4 | 科创板股票(上海) |
EMQ_SECURITY_STATE_BOND | 5 | 国债 |
EMQ_SECURITY_ENTERPRICE_BOND | 6 | 企业债 |
EMQ_SECURITY_COMPANEY_BOND | 7 | 公司债 |
EMQ_SECURITY_CONVERTABLE_BOND | 8 | 转换债券 |
EMQ_SECURITY_NATIONAL_BOND_REVERSE_REPO | 12 | 国债逆回购 |
EMQ_SECURITY_ETF_SINGLE_MARKET_STOCK | 14 | 本市场股票 |
EMQ_SECURITY_ETF_INTER_MARKET_STOCK | 15 | 跨市场股票 |
EMQ_SECURITY_ETF_SINGLE_MARKET_BOND | 17 | 本市场实物债券 |
EMQ_SECURITY_ETF_GOLD | 19 | 黄金 |
EMQ_SECURITY_STRUCTURED_FUND_CHILD | 24 | 分级基金子基金 |
EMQ_SECURITY_SZSE_RECREATION_FUND | 26 | 深交所仅申赎基金 |
EMQ_SECURITY_STOCK_OPTION | 29 | 个股期权 |
EMQ_SECURITY_ETF_OPTION | 30 | ETF期权 |
EMQ_SECURITY_ALLOTMENT | 100 | 配股 |
EMQ_SECURITY_MONETARY_FUND_SHCR | 110 | 上交所申赎型货币基金 |
EMQ_SECURITY_MONETARY_FUND_SHTR | 111 | 上交所交易型货币基金 |
EMQ_SECURITY_MONETARY_FUND_SZ | 112 | 深交所货币基金 |
EMQ_SECURITY_OTHERS | 255 | 其他 |