##介绍
现在市场上的交易与行情API太多,对每家都接特别麻烦,如果能统一用一套API接入就好了。
如果进行接口的统一,要实现以下几点:
- 统一的结构体
- 统一的调用方式
- 灵活的加载方式
实现统一的结构体必然会有些API的特殊字段没法照顾到;调用方式统一则有些功能将不会实现,而有些功能需要几个请求,或本机模拟的方法来实现;加载方式以前C#层是用的P/Invoke,现在改用LoadLibraryEx/dlopen来实现。
编译QuantBox.XAPI,有两种输出方式
- 生成QuantBox.XAPI.dll,设置输出类型为类库,可以在其它项目中引用
- 生成QuantBox.XAPI.exe,设置输出类型为控制台程序,将运行项目中的Program.cs文件,是API的使用示例
- 使用Visual Studio 2013打开QuantBox_XAPI_Windows.sln进行编译,会生成
QuantBox.XAPI.dll:C#接口,由它进行C接口的加载
QuantBox_Queue.dll:C接口,消息队列,行情与交易的数据先进入队列然后,由内部的线程进行触发
QuantBox_CTP_Quote.dll:C接口,调用CTP的行情API
QuantBox_CTP_Trade.dll:C接口,调用CTP的交易API
其它如XSpeed/LTS等行情与交易接口
- 使用Mono Develop打开QuantBox_XAPI_CSharp_Linux.sln进行编译,会生成
QuantBox.XAPI.dll:C#接口,由它进行C接口的加载
- 使用Code::Blocks打开QuantBox_XAPI_C_Linux.workspace进行编译,注意得使用Clang编译器,会生成
libQuantBox_Queue.so:C接口,消息队列,行情与交易的数据先进入队列然后,由内部的线程进行触发
libQuantBox_CTP_Quote.so:C接口,调用CTP的行情API
libQuantBox_CTP_Trade.so:C接口,调用CTP的交易API
其它如XSpeed/LTS等行情与交易接口
-
将所有生成的lib*.so文件cp命令复制到/usr/lib下
-
将CTP的两个文件*.so前面加lib复制到/usr/lib下
直接参考QuantBox_XAPI_TEST项目即可,简单的行情订阅,下单撤单
参考QuantBox_XAPI这个项目中的CXApi与CXSpi是如何实现的
- 模仿已经提供的几个项目即可