1.易达期货交易系统探索(一)
易达期货交易系统探索(一)
在编写ydServer交易接口之前,报单报单首要准备的源码是环境和对CMake的基本了解。可参考“易达期货交易系统探索(零)”以及“CMake学习笔记”以获取相关知识。系统
环境准备完成后,报单报单访问易达官方网站,源码查阅文档以获取最新api版本信息,系统在线生成头像源码当前版本为1___0。报单报单文档中详细介绍了易达提供的源码客户端应用编程接口,包含原生API、系统裸协议接口和CTP模拟接口。报单报单对于裸协议接口和CTP模拟接口的源码理解暂时略去,现阶段应专注于原生API的系统学习。
易达原生API提供Linux版本和Windows版本两种选择。报单报单Linux版本的源码ydApi经过优化,性能优越于Windows版本,系统因此在高频低延迟量化交易中,Windows版本并无实际应用价值。android iptv源码推荐选择Linux版本进行深入学习。
在客户端与ydServer的通信中,上行部分包括客户端向ydServer发送请求,如系统登录、报撤单、修改口令及上行心跳信息等。下行部分则由ydServer主动向客户端推送交易状态变化,包括日初静态初始化数据、Go GC 源码报单/成交回报、行情等信息。日初静态初始化数据同步至本地数据库,初始化完成后或接收到报单/成交回报或行情信息后,将调用客户端的回调函数。客户端可通过本地调用YDApi::getX系列函数获取日初静态初始化数据,同时需根据报单/成交回报自行计算保证金、交易费用、店宝宝源码可用资金和持仓数据。
ydApi提供C++接口,通过YDApi类处理上行信息,YDListener类处理下行信息,维护本地交易数据并调用客户端程序的回调函数。结合易达官方文档和最新api文件,可发现文件夹结构主要包含ydAPI、ydClient和ydCTP三个部分。django源码结构ydAPI是所需易达原生api,ydClient暂时无需使用,ydCTP为CTP模拟接口,同样暂时不涉及。
打开ydAPI文件夹,内部包括example示例、include头文件、以及针对Linux操作系统和Windows操作系统的动态链接库文件夹。了解静态链接库与动态链接库的概念,如在windows系统中,静态链接库直接包含函数编译后的指令,而动态链接库则在运行时提供函数实现代码。
ydServer为非开源系统,类和函数声明位于include文件夹的.h头文件中,而实现源代码不公开。动态链接库文件存放于linux、win、win文件夹,分别对应不同操作系统。为了使用,需要include和linux文件夹,新建文件夹,将所需文件复制,并将yd.so重命名为libyd.so。在src文件夹中新建CMakeLists.txt文件,用Cmake编译工程,使用VSCode打开此文件夹。
编写CMakeLists.txt后,在src文件夹内创建main.cpp文件,编写简单的C++程序以测试配置是否正确。如遇到找不到bits/c++config.h的问题,使用WSL以root权限安装gcc--multilib和g++--multilib,以确保编译环境的兼容性。
程序成功编译并输出hello world,表示头文件和库配置无误。接下来,便可逐步实现易达接口功能。