C++演示实盘接口返回流程

2023-10-17 10:20

本文主要是介绍C++演示实盘接口返回流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

量化交易是基于程序化实现的一种策略的运行。需要一个工具来帮助达到目的,这就是接口。
今天来教大家如何使用接口。
下面演示一下,在跑接口返回的数据显示

// 查询各类交易数据
// 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;

std::cout << "========== 查询当日委托: category = 2 ==========\n";
category = 2;
QueryData(clientId, category, result, errinfo);
if (NULL != errinfo[0]) {std::cout << errinfo << std::endl;
} else {std::cout << result << std::endl;
}
std::cout << std::endl;

下面是委托:

// 委托下单
// category:  0=>买入, 1=>卖出, 2=>融资买入, 3=>融券卖出 4=>买券还券, 5=>卖券还款, 6现券还券
// entrustType: 0=>限价委托(深/沪), 1=>对方最优价(深), 2=>本方最优价(深)
//              3=>即时成交剩余撤销(深), 4=>最优五档剩余撤销(深/沪)
//              5=>全额成交或撤销(深), 6=>最优五档剩余转限(沪)
// gddm: 股东代码, 区分沪/深
// quantity: 股数
typedef void (*SendOrderProc)(int clientId, int category, int entrustType,const char *gddm, const char *zqdm, float price,int quantity, char *result, char *errinfo);
const auto SendOrder = reinterpret_cast<SendOrderProc>(GetProcAddress(hDLL, "SendOrder"));
assert(SendOrder);std::cout << "========== 普通(担保品)买入: category = 0 ==========\n";
category = 0;                    // 委托类别
int entrustType = 0;             // 限价委托
std::string gddm = "1234567890"; // 股东代码(注意区分深圳和上海各自的股东代码)
std::string zqdm = "000001";     // 证券代码
float price = 12.2;              // 委托价格
int quantity = 100;              // 委托股数
SendOrder(clientId, category, entrustType, gddm.c_str(), zqdm.c_str(), price, quantity, result, errinfo);
if (NULL != errinfo[0]) {std::cout << errinfo << std::endl;
} else {std::cout << result << std::endl;
}
std::cout << std::endl;

 

// 委托撤单
// exchangeId: 0=>深证(东兴证券是A0, 招商证券普通账户是2)
//             1=>上证
typedef void (*CancelOrderProc)(int clientId, const char *exchangeId,const char *entrustId, char *result,char *errinfo);
const auto CancelOrder =reinterpret_cast<CancelOrderProc>(GetProcAddress(hDLL, "CancelOrder"));
assert(CancelOrder);std::cout << "========== 撤单委托 ==========\n";
std::string exchangeId = "1";     // 上海
std::string entrustId = "xxxxxx"; // 委托编号
CancelOrder(clientId, exchangeId.c_str(), entrustId.c_str(), result, errinfo);
if (NULL != errinfo[0]) {std::cout << errinfo << std::endl;
} else {std::cout << result << std::endl;
}
std::cout << std::endl;

注意撤单标记对应两市

 以上就是实盘交易接口的使用介绍,多种功能完美适用各种策略。对程序化交易来说是不可缺少的。
 

这篇关于C++演示实盘接口返回流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/224740

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

nodejs打包作为公共包使用的完整流程

《nodejs打包作为公共包使用的完整流程》在Node.js项目中,打包和部署是发布应用的关键步骤,:本文主要介绍nodejs打包作为公共包使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言一、前置准备二、创建与编码三、一键构建四、本地“白嫖”测试(可选)五、发布公共包六、常见踩坑提醒

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

C++读写word文档(.docx)DuckX库的使用详解

《C++读写word文档(.docx)DuckX库的使用详解》DuckX是C++库,用于创建/编辑.docx文件,支持读取文档、添加段落/片段、编辑表格,解决中文乱码需更改编码方案,进阶功能含文本替换... 目录一、基本用法1. 读取文档3. 添加段落4. 添加片段3. 编辑表格二、进阶用法1. 文本替换2

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

一个Java的main方法在JVM中的执行流程示例详解

《一个Java的main方法在JVM中的执行流程示例详解》main方法是Java程序的入口点,程序从这里开始执行,:本文主要介绍一个Java的main方法在JVM中执行流程的相关资料,文中通过代码... 目录第一阶段:加载 (Loading)第二阶段:链接 (Linking)第三阶段:初始化 (Initia