当前位置: 首页 > news >正文

股票买卖接口怎么来的?

现在股票买卖接口主要是在线上研发,有专业的开发团队进行源码开发和完善,但是,常常会在开发过程中出现问题,也就是遇到一些特殊的情况需要及时处理,那么股票买卖接口怎么开发实现出来的?

一、股票买卖接口开发分析:

基本函数

Init

API 初始化

Deinit

API 反初始化

Logon

登录交易账户

Logoff

登出交易账户

QueryData

查询各类交易数据

QueryHistoryData

查询各类历史数据

SendOrder

委托下单

CancelOrder

委托撤单

GetQuote

获取五档报价

Repay

融资融券账户直接还款

GetExpireDate

查询API 授权到期日期

单账户批量函数

QueryDatas

单账户批量查询各类交易数据

SendOrders

单账户批量下单

CancelOrders

单账户批量撤单

GetQuotes

单账户批量获取五档报价

多账户批量函数

QueryMultiAccountsDatas

多账户批量查询各类交易数据

SendMultiAccountsOrders

多账户批量下单

CancelMultiAccountsOrders

多账户批量撤单

GetMultiAccountsQuotes

多账户批量获取五档报价

二、接口函数的调用:

相关函数

调用结果

Deinit

Logoff

Init

返回值为授权成功的交易账户数量

返回值< 1 时, 无需调用 Deinit 接口, 也不能调用其它接口, 否则会出错!

Logon

调用成功: 返回值为 客户端 Id

调用失败: 返回值 <= 0

参数ErrorInfo 保存错误信息, 需要分配 256 字节的空间

GetExpireDate

返回值为API 授权到期日期

格式为yyyymmdd 整数, 如 2018 年 5 月 1 日为 20180501

单项操作

调用成功: ErrorInfo 为空字符串

QueryData

调用失败: ErrorInfo 为错误信息

QueryHistoryData

参数Result 保存操作结果, 需要分配 1024*1024 字节的空间

SendOrder

Result 格式为表格数据, 每一行通过换行符\n 分割,每一列通过制表符\t 分割

CancelOrder

例子:

GetQuote

股东代码\t 股东名称\t 帐号类别\t 保留信息\n

Repay

12345678\t\t0\t 信息 1\n

87654321\t\t2\t 信息 2

注: 不同券商返回的字段会有所不同

最后,股票买卖接口接入源代码就能快速的掌握账户持仓原理:

查询各类交易数据源码:

// category: 0=>资金, 1=>股份, 2=>当日委托, 3=>当日成交, 4=>可撤单,

// 5=>股东代码, 6=>融资余额, 7=>融券余额, 8=>可融证券,

// 12=>可申购新股, 13=>新股申购额度, 14=>配号, 15=>中签,

// 16=>未平仓融资合约, 17=>未平仓融券合约, 18=>未平仓两融合约

typedef void (*QueryDataProc)(int clientId, int category, char *result, char *errinfo);

const auto QueryData = reinterpret_cast<QueryDataProc>(GetProcAddress(hDLL, "QueryData"));

assert(QueryData);

std::cout << "========== 查询资金: category = 0 ==========\n";

int category = 0;

QueryData(clientId, category, result, errinfo);

if (NULL != errinfo[0]) {

std::cout << errinfo << std::endl;

} else {

std::cout << result << std::endl;

}

std::cout << std::endl;

std::cout << "========== 查询股份: category = 1 ==========\n";

category = 1;

QueryData(clientId, category, result, errinfo);

if (NULL != errinfo[0]) {

std::cout << errinfo << std::endl;

} else {

std::cout << result << std::endl;

}

std::cout << std::endl;

http://www.lryc.cn/news/5607.html

相关文章:

  • 【Python学习笔记】29.Python3 面向对象
  • MySQL 索引
  • 学会使用LoadRunner录制脚本
  • 产品经理必看的高效产品文档撰写指南
  • Prometheus 的介绍和安装
  • ViewModel快速上手1-原生kotlin
  • Flutter(一)介绍、Dart语言简介
  • 【数据结构】---顺序表的实现
  • JavaScript刷LeetCode拿offer-经典高频40题vaScript刷LeetCode拿offer-经典高频40题
  • 动态规划,这将是你见过最详细的讲解
  • 【服务器数据恢复】FreeNAS层UFS2文件系统数据恢复案例
  • Zookeeper安装和基本使用
  • 字节面试惨败,闭关修炼再战美团(Android 面经~)
  • 【机器学习实战】七、梯度下降
  • 什么是极速文件传输,极速文件传输如何进行大文件传输
  • Spring Boot 日志
  • 好用的研发管理看板工具有哪些?10款主流看板管理软件盘点
  • 【软考系统架构设计师】2022下案例分析历年真题
  • Java skill - @JsonAlias 和 @JsonProperty
  • 【实际开发18】- 静态 3
  • 【swagger2】开发api文档
  • Github 上如何提交 pull request
  • Redis面试知识
  • Spring面试重点(四)——Spring事务
  • ♡ — MySQL 存储引擎
  • 大数据技术架构(组件)34——Spark:Spark SQL--Optimize
  • Zookeeper实现分布式锁
  • MFC 添加重新启动管理器支持
  • 一文带你深刻的进入Python,并且了解Python的优缺点
  • 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4)