XLight交易SDK的完整使用指南、配置说明和最佳实践
XLight交易SDK提供C++原生接口和Python绑定,支持Linux平台。以下是快速上手的步骤:
unzip xlt_api_sdk_v1.7.0.12.zip
cd xlt_api_sdk_v1.7.0.12
ls -la
cpp/ - C++ API头文件、库文件和示例
python/ - Python包和示例
doc/ - API文档 (Doxygen生成)
doc.html - 文档主入口
交易API使用结构化的配置对象,主要配置参数包括:
| 配置项 | 配置接口 | 说明 | 配置样例 |
|---|---|---|---|
| 交易日 | set_trading_day() | 格式YYYYMMDD;生产环境通常为当前交易日,测试环境为柜台指定交易日 | config.set_trading_day(20260402); |
| 本地网卡IP | set_local_addr() | 设置连接AGW与快速报单的本地网卡IP(生产需为对应接入网段) | config.set_local_addr("192.168.8.155", "192.168.2.155"); |
| AGW地址 | add_agw_addr() | 添加一个AGW地址(可重复添加多个) | config.add_agw_addr("192.168.5.64", 7060); |
| 订单超时 | set_order_timeout() | 单位秒;超时触发 on_order_timeout 回调 | config.set_order_timeout(10); |
| 自定义订单序号 | set_order_seq_self_define() | 启用后下单/撤单需填写 order_sequence 且需保证唯一 | config.set_order_seq_self_define(true); |
| 交易回报处理线程调度参数 | set_trade_report_handler_schedule() | 设置交易回报处理线程调度参数;若该接口开启绑核或忙等,需同时配置环境变量 XLT_MSG_RECV_CPU 与 XLT_MSG_RECV_BUSY_POLL |
config.set_trade_report_handler_schedule(8, true); |
行情API使用结构化的配置对象,主要配置参数包括:
| 配置项 | 配置接口 | 说明 | 配置样例 |
|---|---|---|---|
| 交易日 | set_trading_day() | 格式YYYYMMDD;生产环境通常为当前交易日,测试环境为柜台指定交易日 | config.set_trading_day(20260402); |
| 本地网卡IP | set_local_addr() | 设置连接AGW与行情接收的本地网卡IP(生产需为对应接入网段) | config.set_local_addr("192.168.8.155", "192.168.3.155"); |
| AGW地址 | add_agw_addr() | 添加一个AGW地址(可重复添加多个) | config.add_agw_addr("192.168.5.64", 7060); |
| 是否使用Level2行情 | set_use_level2() | 设置是否使用Level2行情,默认不开启 | config.set_use_level2(true); |
以下为进程级环境变量配置,通过系统环境变量设置。若同一进程中同时使用了交易API和行情API,则共用同一份环境变量。
| 环境变量 | 默认值 | 说明 | 配置样例 |
|---|---|---|---|
| XLT_FILE_PATH | .(当前路径) |
文件存放路径(如日志文件)。若路径不存在,API将无法初始化 | export XLT_FILE_PATH=/data/xlt |
| XLT_LOG_LEVEL | INFO | 日志级别,可选值:FATAL / ERROR / WARN / INFO / DEBUG / TRACE | export XLT_LOG_LEVEL=DEBUG |
| XLT_REQUEST_TIMEOUT | 5 | 请求超时时间,单位秒 | export XLT_REQUEST_TIMEOUT=10 |
| XLT_MSG_RECV_CPU | -1 | 接收线程绑核,-1 表示不绑核 |
export XLT_MSG_RECV_CPU=2 |
| XLT_MSG_RECV_BUSY_POLL | 0 | 接收线程忙等开关,0-关闭,1-开启 |
export XLT_MSG_RECV_BUSY_POLL=1 |
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.7.0.12-py3-none-any.whl
cd demo/py_xlt_api_demo/
python runme.py
可能原因:
解决方案:
优化建议: