XLight交易SDK的完整使用指南、配置说明和最佳实践
XLight交易SDK提供C++原生接口和Python绑定,支持Linux平台。以下是快速上手的步骤:
unzip xlt_api_sdk_v1.5.1.2.zip
cd xlt_api_sdk_v1.5.1.2
ls -la
cpp/ - C++ API头文件、库文件和示例
python/ - Python包和示例
doc/ - API文档 (Doxygen生成)
doc.html - 文档主入口
XLight SDK使用结构化的配置对象,主要配置参数包括:
| 配置页 | 配置接口 | 必填 | 配置样例 | 说明 |
|---|---|---|---|---|
| 设置交易日 | set_trading_day() | ✓ | config.set_trading_day(20240320); | 格式YYYYMMDD,用户需确保该交易日,生产环节为当前交易日,测试环境为某测试日期 |
| 设置本地网卡IP | set_local_addr() | ✓ | config.set_local_addr("192.168.5.155", "192.168.2.155", "192.168.3.155"); | 需按定顺序填AGW,提单,行情接收的3个网卡IP,基础为solarflare网卡 |
| 添加网关地址 | add_agw_addr() | ✓ | config.add_agw_addr("222.71.197.227", 60601); | 请按实际给出AGW地址即加地址,可选加多个AGW地址,每次指定当前可用的AGW地址 |
| 设置交易路径 | set_path() | ✓ | config.set_path("./"); | 修改API生成的文档路径,如日志文件等,默认为当前路径 |
| 设置日志级别 | set_log_level() | - | config.set_log_level(ApiLogLevel::LOG_INFO); | 设置日志级别,默认为info级别 |
| 设置请求超时时间 | set_request_timeout() | - | config.set_request_timeout(10); | 单位秒,查询时的超时时长on_request_timeout |
| 设置订单超时时间 | set_order_timeout() | - | config.set_order_timeout(10); | 单位秒,委托时的超时时长on_order_timeout |
| 设置内存池大小 | set_memory_pool_size() | - | config.set_memory_pool_size(256, 8, 32); | 单位MB、包括交易、level1、level2行情内存,预留板块1,当前版本暂不调整 |
| 自定义订单序号设定 | set_order_seq_self_define(true) | - | config.set_order_seq_self_define(true); | 默认设为false,使用API内部序号来生成request_sequence字段值,用户须确保每天唯一的request_sequence字段值一 |
| 行情单线程模式 | receive_quote_in_single_thread() | - | 配置样例 | level1、上海level2快照,深圳level2快照在线程运行 |
| 行情快照多线程模式 | receive_quote_in_snap_tick_thread() | - | 配置样例 | level1、上海level2快照、上海level2逐笔、深圳level2快照、深圳level2逐笔分成独立线程运行 |
| 行情均匀分配模式 | receive_quote_in_channel_per_thread() | - | 配置样例 | level1及上海、深圳level2每个接收各独立线程运行,数据平均 |
cd cpp/demo
mkdir build
cd build && cmake ..
make && make install
cd ../targets/bin && ./xlt_api_demo
cd python && pip install py_xlt_api-1.5.1.2-py3-none-any.whl
cd demo/py_xlt_api_demo/
python runme.py
可能原因:
解决方案:
优化建议:
mem_pool_size减少内存分配