vnpy/vn.api/vn.ib/README.md

38 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# vn.ib
目前vn.ib还处于开发中完成了封装部分的工作欢迎贡献测试相关的代码。
### 简介
基于IB POSIX C++ API的Python封装提供原生API的全部功能同时Python代码中函数和类的命名定义都和C++中保持一致。
### vn.ib和IbPy的不同点
1. vn.ib基于Boost.Python封装了原生Posix C++接口比起IbPy能提供更好的性能
2. vn.ib底层代码中添加了异常捕捉功能避免IbPy的函数触发异常后没有报错直接断开连接导致无法调试的问题
3. vn.ib安装时可能需要编译默认的pyd在Windows7 Python 2.7 32位下编译IbPy是纯Python的可以直接使用
4. vn.ib基于较新的IB官方API9.72 beta开发IbPy则是采用了较老的API9.70 stable
### 对原生接口的修改部分
shared_ptr.h和SoftDollerTier.h中加入了对象比较函数的代码用于实现其对应vector的自动Python封装。
### Linux版
IB API的Linux版本存在若干问题需要先手动修改
1. 上面的原生接口修改部分依旧必须修改
2. EReader.cpp下的EReader::bufferedRead函数中有个调用min函数的地方会报错需要修改为std::minWindows版中调用的是Win32的一个min函数所以无需修改
3. EClient.cpp中需要在EncodeField模板函数下加入EncodeField<const char*>这一对EncodeField<T>的偏特化实现具体请参考linux文件夹下的代码GCC在编译时不会去特化模板函数如果不手动实现则运行时会报错undefined symbolMSVC则无此问题
也可以看出IB的开发团队主要是在Windows上做开发和测试编译步骤
1. 先进入vn.ib/ibapi/linux文件夹下运行bash build.sh生成twsapi.so
2. 然后回到vn.ib文件夹下运行bash build.sh生成vnib.so
### API版本
版本IB API for Windows beta 9.72.18
日期2016-09-14
链接:[http://interactivebrokers.github.io/](http://interactivebrokers.github.io/)