Xlight API用户手册 v1.6.0.23
Xlight极速柜台接口文档
载入中...
搜索中...
未找到
x1::XLTTradeApi类 参考

接口类 更多...

#include <xlt_trade_api.h>

类 x1::XLTTradeApi 继承关系图:
x1::XLTPrivilege

Public 成员函数

bool initialize (XLTTradeConfig *trade_config, XLTTradeSpi *trade_spi)
 初始化交易,登录之前必须调用此函数,只能初始化一次
 
void stop ()
 停止交易API 断开所有交易session连接,清空所有session上的回调指针,停止回调。
 
bool login (uint64_t request_id, uint16_t client_id, const char *account_name, const char *password, const char *pub_key, const xlt_user_terminal_info_t *info=nullptr)
 用户登录请求
 
bool logout (uint64_t session_id)
 登出请求
 
bool auth_trade (uint64_t session_id, uint64_t request_id, const char *account_name, const char *password, const char *pub_key, const xlt_user_terminal_info_t *info=nullptr)
 交易授权认证
 
bool deauth_trade (uint64_t session_id, uint64_t request_id, uint64_t trade_token)
 解除交易授权认证
 
uint32_t get_trading_day ()
 获取当前交易日。只有登录成功后,才能得到正确的交易日。
 
const xlt_init_asset_info_tget_init_assets (uint64_t session_id, uint64_t trade_token=0)
 获取初始资产信息
 
const XLTInitPositionListget_init_positions (uint64_t session_id, uint64_t trade_token=0)
 获取初始持仓信息
 
uint64_t get_account_index (uint64_t session_id, uint64_t trade_token=0)
 获取账户索引,只有登录成功后,才能得到正确的资金账户索引
 
void get_xid_sender (uint64_t xid, uint64_t &session_id, uint64_t &trade_token)
 根据订单ID获取订单发送者信息,包括session_id和trade_token
 
void get_biz_sender (char *biz_no, uint64_t &session_id, uint64_t &trade_token)
 根据业务编号获取发送者信息,包括session_id和trade_token
 
bool subscribe_trade_message (uint64_t session_id, uint64_t request_id, trade_message_type_t trade_message_type, TradeResumeType resume_type, uint64_t start_sequence)
 订阅交易数据 每个session_id,仅第一次调用有效。
 
bool rebuild_trade_message (uint64_t session_id, uint64_t request_id, trade_message_type_t trade_message_type, uint64_t start_sequence, uint64_t end_sequence, uint64_t account_index=0)
 重推消息
 
void init_local_send ()
 本地发送初始化函数,预分配本地发送资源,非必须调用。 若不调用,会在首次发送订单时自动进行初始化,故建议在用户线程调用发送接口前调用此函数以避免首次发送订单时的延迟。
 
uint64_t insert_order (uint64_t session_id, xlt_order_insert_info_t *order, uint64_t trade_token=0)
 委托 报单录入请求,所有业务统一报单接口,根据业务类型字段区分不同业务。 Xlight接收订单后,会在报单响应函数on_order_response, on_cancel_response, on_order_error_response中返回, 之后所有的成交明细会在on_trade_report中返回,当订单到达终止状态会触发订单状态结束响应。
 
uint64_t cancel_order (uint64_t session_id, xlt_cancel_order_info_t *cancel_order, uint64_t trade_token=0)
 撤单 撤单请求。 如果撤单成功,会在报单响应函数on_cancel_response里返回原单部撤或者全撤的消息, 如果不成功,会在on_order_error_response响应函数中返回错误原因。
 
bool resend_order_request (uint64_t session_id, uint64_t xid)
 重发订单请求
 
bool submit_counter_fund_transfer_request (uint64_t session_id, uint64_t request_id, FundTransSide side, amount_t amount, char *biz_no=nullptr, uint64_t trade_token=0)
 提交主柜资金划转请求
 
bool submit_cluster_fund_transfer_request (uint64_t session_id, uint64_t request_id, amount_t amount, char *biz_no=nullptr, uint64_t trade_token=0)
 提交双中心资金划转请求,方向固定为划入
 
bool query_assets (uint64_t session_id, uint64_t request_id, uint64_t account_index=0)
 请求查询资产
 
bool query_positions (uint64_t session_id, uint64_t request_id, const char *security_code, ExchangeIndex exchange_index=ExchangeIndex::INIT, uint64_t account_index=0)
 请求查询投资者持仓
 
bool query_orders (uint64_t session_id, uint64_t request_id, const xlt_order_query_param_t *order_query_param, uint64_t account_index=0)
 请求查询订单
 
bool query_orders_by_page (uint64_t session_id, uint64_t request_id, uint32_t request_count, const xlt_page_query_reference_t *query_reference, uint64_t account_index=0)
 分页请求查询报单
 
bool query_trades (uint64_t session_id, uint64_t request_id, uint64_t xid, uint64_t account_index=0)
 请求查询成交回报
 
bool query_init_assets (uint64_t session_id, uint64_t request_id, uint64_t account_index=0)
 请求查询初始资产
 
bool query_init_positions (uint64_t session_id, uint64_t request_id, const char *security_code, ExchangeIndex exchange_index, uint64_t account_index=0)
 请求查询初始持仓
 
bool query_trade_account_info (uint64_t session_id, uint64_t request_id, uint64_t account_index=0)
 请求查询交易账户信息
 
bool dump_api_performance_info ()
 

静态 Public 成员函数

static XLTTradeApicreate ()
 创建实例(只能创建一次)
 
static const char * get_api_version ()
 获取API版本号
 
static xlt_error_info_t get_last_error ()
 获取错误信息
 
static uint64_t get_order_sequence (uint64_t xid)
 根据订单ID获取订单序列号
 

Protected 成员函数

 XLTTradeApi ()=default
 

详细描述

接口类

构造及析构函数说明

◆ XLTTradeApi()

x1::XLTTradeApi::XLTTradeApi ( )
protecteddefault

成员函数说明

◆ auth_trade()

bool x1::XLTTradeApi::auth_trade ( uint64_t session_id,
uint64_t request_id,
const char * account_name,
const char * password,
const char * pub_key,
const xlt_user_terminal_info_t * info = nullptr )

交易授权认证

参数
session_id会话ID,登录时得到
request_id用于用户定位请求的ID,由用户自定义
account_name交易账号
password登录密码
pub_key用户公钥(长度64字节),用户开户时申请得到,暂未启用
info终端信息,若当前API为最终端则填nullptr,否则填写终端信息
返回
true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ cancel_order()

uint64_t x1::XLTTradeApi::cancel_order ( uint64_t session_id,
xlt_cancel_order_info_t * cancel_order,
uint64_t trade_token = 0 )

撤单 撤单请求。 如果撤单成功,会在报单响应函数on_cancel_response里返回原单部撤或者全撤的消息, 如果不成功,会在on_order_error_response响应函数中返回错误原因。

参数
session_id会话id,登录时得到
cancel_order撤单信息
trade_token如果是普通交易账号填0;如果为授权认证的账号,填写认证成功时on_auth_trade回调函数返回的trade_token。
返回
撤单xid(在xLight系统中的ID),如果为‘0’表示撤单发送失败,非"0"表示撤单发送成功,用户需要记录下返回的order_cancel_xid,它保证一个交易日内唯一,不同的交易日不保证唯一性。

◆ create()

static XLTTradeApi * x1::XLTTradeApi::create ( )
static

创建实例(只能创建一次)

返回
返回交易接口实例

◆ deauth_trade()

bool x1::XLTTradeApi::deauth_trade ( uint64_t session_id,
uint64_t request_id,
uint64_t trade_token )

解除交易授权认证

参数
session_id会话ID,登录时得到
request_id用于用户定位请求的ID,由用户自定义
trade_token交易令牌,交易授权认证时得到
返回
true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ dump_api_performance_info()

bool x1::XLTTradeApi::dump_api_performance_info ( )

◆ get_account_index()

uint64_t x1::XLTTradeApi::get_account_index ( uint64_t session_id,
uint64_t trade_token = 0 )

获取账户索引,只有登录成功后,才能得到正确的资金账户索引

参数
session_id会话id,登录时得到
trade_token交易令牌,交易授权认证时得到,如果登录账户即为交易账户,填0即可
返回
账户索引,0表示失败,非0表示成功

◆ get_api_version()

static const char * x1::XLTTradeApi::get_api_version ( )
static

获取API版本号

返回
API版本号

◆ get_biz_sender()

void x1::XLTTradeApi::get_biz_sender ( char * biz_no,
uint64_t & session_id,
uint64_t & trade_token )

根据业务编号获取发送者信息,包括session_id和trade_token

参数
biz_no业务编号
session_id发送者的session_id
trade_token发送者的trade_token

◆ get_init_assets()

const xlt_init_asset_info_t * x1::XLTTradeApi::get_init_assets ( uint64_t session_id,
uint64_t trade_token = 0 )

获取初始资产信息

参数
session_id会话ID,登录时得到
trade_token交易令牌,交易授权认证时得到,如果登录账户即为交易账户,填0即可
返回
初始资产信息指针,如果未登录或不存在则返回nullptr

◆ get_init_positions()

const XLTInitPositionList * x1::XLTTradeApi::get_init_positions ( uint64_t session_id,
uint64_t trade_token = 0 )

获取初始持仓信息

参数
session_id会话ID,登录时得到
trade_token交易令牌,交易授权认证时得到,如果登录账户即为交易账户,填0即可
返回
初始持仓信息列表指针,如果未登录或不存在则返回nullptr

◆ get_last_error()

static xlt_error_info_t x1::XLTTradeApi::get_last_error ( )
static

获取错误信息

返回
错误信息

◆ get_order_sequence()

static uint64_t x1::XLTTradeApi::get_order_sequence ( uint64_t xid)
static

根据订单ID获取订单序列号

参数
xid订单ID
返回
返回订单序列号
备注
若用户启用自定义订单序号功能(XLTTradeConfig::set_order_seq_self_define),则此接口将返回用户自定义的订单序号xlt_order_insert_info_t.order_sequence,否则返回系统生成的订单序号。

◆ get_trading_day()

uint32_t x1::XLTTradeApi::get_trading_day ( )

获取当前交易日。只有登录成功后,才能得到正确的交易日。

返回
返回日期,格式为YYYYMMDD

◆ get_xid_sender()

void x1::XLTTradeApi::get_xid_sender ( uint64_t xid,
uint64_t & session_id,
uint64_t & trade_token )

根据订单ID获取订单发送者信息,包括session_id和trade_token

参数
xid订单ID
session_id订单发送者的session_id
trade_token订单发送者的trade_token

◆ init_local_send()

void x1::XLTTradeApi::init_local_send ( )

本地发送初始化函数,预分配本地发送资源,非必须调用。 若不调用,会在首次发送订单时自动进行初始化,故建议在用户线程调用发送接口前调用此函数以避免首次发送订单时的延迟。

◆ initialize()

bool x1::XLTTradeApi::initialize ( XLTTradeConfig * trade_config,
XLTTradeSpi * trade_spi )

初始化交易,登录之前必须调用此函数,只能初始化一次

参数
trade_config配置参数
trade_spi派生自交易响应类的实例,请在登录之前设定
返回
初始化是否成功

◆ insert_order()

uint64_t x1::XLTTradeApi::insert_order ( uint64_t session_id,
xlt_order_insert_info_t * order,
uint64_t trade_token = 0 )

委托 报单录入请求,所有业务统一报单接口,根据业务类型字段区分不同业务。 Xlight接收订单后,会在报单响应函数on_order_response, on_cancel_response, on_order_error_response中返回, 之后所有的成交明细会在on_trade_report中返回,当订单到达终止状态会触发订单状态结束响应。

参数
session_id资金账户对应的session_id,登录时得到
order委托信息
trade_token交易令牌,如果是普通交易账号填0;如果为授权认证的账号,填写认证成功时on_auth_trade回调函数返回的trade_token。
返回
返回系统生成的订单ID,如果为‘0’表示订单发送失败,非"0"表示订单发送成功,用户需要记录下返回的order_xid,它保证一个交易日内唯一,不同的交易日不保证唯一性。

◆ login()

bool x1::XLTTradeApi::login ( uint64_t request_id,
uint16_t client_id,
const char * account_name,
const char * password,
const char * pub_key,
const xlt_user_terminal_info_t * info = nullptr )

用户登录请求

参数
request_id用于用户定位请求响应的ID,由用户自定义
client_id客户端标识ID
account_name交易账号
password登录密码
pub_key用户公钥(长度64字节),用户开户时申请得到,暂未启用
info终端信息,若当前API为最终端则填nullptr,否则填写终端信息
返回
查询请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ logout()

bool x1::XLTTradeApi::logout ( uint64_t session_id)

登出请求

参数
session_id会话id,登录时得到
返回
true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ query_assets()

bool x1::XLTTradeApi::query_assets ( uint64_t session_id,
uint64_t request_id,
uint64_t account_index = 0 )

请求查询资产

参数
session_id会话id,登录时得到
request_id用于用户定位查询响应的ID,由用户自定义
account_index交易账号索引,0表示查所有或者当前登录交易账号索引,非0表示指定交易账号索引。可通过get_account_index或者query_trade_account_info获取交易账号索引
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ query_init_assets()

bool x1::XLTTradeApi::query_init_assets ( uint64_t session_id,
uint64_t request_id,
uint64_t account_index = 0 )

请求查询初始资产

参数
session_id会话id,登录时得到
request_id用于用户定位查询响应的ID,由用户自定义
account_index交易账号索引,0表示查所有或者当前登录交易账号索引,非0表示指定交易账号索引。可通过get_account_index或者query_trade_account_info获取交易账号索引
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ query_init_positions()

bool x1::XLTTradeApi::query_init_positions ( uint64_t session_id,
uint64_t request_id,
const char * security_code,
ExchangeIndex exchange_index,
uint64_t account_index = 0 )

请求查询初始持仓

参数
session_id会话id,登录时得到
request_id用于用户定位查询响应的ID,由用户自定义
security_code需要查询持仓的合约代码,可以为空表示查询全市场,如果不为空,请不带空格,并以'\0'结尾
exchange_index需要查询持仓的合约所在市场,默认为INIT。
account_index交易账号索引,0表示查所有或者当前登录交易账号索引,非0表示指定交易账号索引。可通过get_account_index或者query_trade_account_info获取交易账号索引
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ query_orders()

bool x1::XLTTradeApi::query_orders ( uint64_t session_id,
uint64_t request_id,
const xlt_order_query_param_t * order_query_param,
uint64_t account_index = 0 )

请求查询订单

参数
session_id会话id,登录时得到
request_id用于用户定位查询响应的ID,由用户自定义
order_query_param需要查询的订单相关筛选条件,其中xid如果不为0,则只查询指定订单,否则根据后续条件进行查询: 其中证券代码可以为空,则默认所有存在的证券代码,如果不为空,请不带空格, 其中起始时间格式为YYYYMMDDHHMMSSsss,为0则默认当前交易日0点,结束时间格式为YYYYMMDDHHMMSSsss,为0则默认当前时间
account_index交易账号索引,0表示查所有或者当前登录交易账号索引,非0表示指定交易账号索引。可通过get_account_index或者query_trade_account_info获取交易账号索引
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ query_orders_by_page()

bool x1::XLTTradeApi::query_orders_by_page ( uint64_t session_id,
uint64_t request_id,
uint32_t request_count,
const xlt_page_query_reference_t * query_reference,
uint64_t account_index = 0 )

分页请求查询报单

参数
session_id会话id,登录时得到
request_id用于用户定位查询响应的ID,由用户自定义
request_count分页请求的订单数量,建议小于1000
query_reference需要分页查询订单的条件,如果第一次查询,那么page_query_param.reference填0
account_index交易账号索引,0表示查所有或者当前登录交易账号索引,非0表示指定交易账号索引。可通过get_account_index或者query_trade_account_info获取交易账号索引
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。
备注
该方法支持分页查询,注意用户需要记录下最后一笔查询结果的reference以便用户下次查询使用

◆ query_positions()

bool x1::XLTTradeApi::query_positions ( uint64_t session_id,
uint64_t request_id,
const char * security_code,
ExchangeIndex exchange_index = ExchangeIndex::INIT,
uint64_t account_index = 0 )

请求查询投资者持仓

参数
session_id会话id,登录时得到
request_id用于用户定位查询响应的ID,由用户自定义
security_code需要查询持仓的合约代码,可以为空表示查询全市场,如果不为空,请不带空格,并以'\0'结尾
exchange_index需要查询持仓的合约所在市场,默认为INIT。如果想正确查询指定持仓,请指定exchange_index
account_index交易账号索引,0表示查所有或者当前登录交易账号索引,非0表示指定交易账号索引。可通过get_account_index或者query_trade_account_info获取交易账号索引
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。
备注
该方法如果用户提供了合约代码,则会查询此合约的持仓信息,如果合约代码为空,则默认查询所有持仓信息。

◆ query_trade_account_info()

bool x1::XLTTradeApi::query_trade_account_info ( uint64_t session_id,
uint64_t request_id,
uint64_t account_index = 0 )

请求查询交易账户信息

参数
session_id会话id,登录时得到
request_id用于用户定位查询响应的ID,由用户自定义
account_index交易账号索引,0表示查所有或者当前登录交易账号索引,非0表示指定交易账号索引。可通过get_account_index或者query_trade_account_info获取交易账号索引
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ query_trades()

bool x1::XLTTradeApi::query_trades ( uint64_t session_id,
uint64_t request_id,
uint64_t xid,
uint64_t account_index = 0 )

请求查询成交回报

参数
session_id会话id,登录时得到
request_id用于用户定位查询响应的ID,由用户自定义
xid需要查询的订单ID
account_index交易账号索引,0表示查所有或者当前登录交易账号索引,非0表示指定交易账号索引。可通过get_account_index或者query_trade_account_info获取交易账号索引
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ rebuild_trade_message()

bool x1::XLTTradeApi::rebuild_trade_message ( uint64_t session_id,
uint64_t request_id,
trade_message_type_t trade_message_type,
uint64_t start_sequence,
uint64_t end_sequence,
uint64_t account_index = 0 )

重推消息

参数
session_id会话ID,登录时得到
request_id用于用户定位请求的ID,由用户自定义
trade_message_type交易数据类型,可以同时订阅多种类型,用按位或方式组合
start_sequence数据推送的起始序列号,从start_sequence+1开始推
end_sequence数据推送的结束序列号,end_sequence必须大于start_sequence
account_index交易账号索引,0表示查所有或者当前登录交易账号索引,非0表示指定交易账号索引。可通过get_account_index或者query_trade_account_info获取交易账号索引
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

◆ resend_order_request()

bool x1::XLTTradeApi::resend_order_request ( uint64_t session_id,
uint64_t xid )

重发订单请求

参数
session_id会话id,登录时得到
xid需要重发的订单ID
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。
备注
当委托超时时,用户可以调用此函数来重发订单请求,xid为订单ID。

◆ stop()

void x1::XLTTradeApi::stop ( )

停止交易API 断开所有交易session连接,清空所有session上的回调指针,停止回调。

备注
调用stop后,所有未完成的回调将不再触发,用户可安全地释放对象。

◆ submit_cluster_fund_transfer_request()

bool x1::XLTTradeApi::submit_cluster_fund_transfer_request ( uint64_t session_id,
uint64_t request_id,
amount_t amount,
char * biz_no = nullptr,
uint64_t trade_token = 0 )

提交双中心资金划转请求,方向固定为划入

参数
session_id会话id,登录时得到
request_id由用户自定义
amount划入金额,放大10000倍
biz_no输出参数,返回系统生成的业务流水号,缓冲区至少20字节。传nullptr则不返回。划拨结果通过on_cluster_fund_transfer_result返回。
trade_token如果是普通交易账号填0;如果为授权认证的账号,填写认证成功时on_auth_trade回调函数返回的trade_token。
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误代码

◆ submit_counter_fund_transfer_request()

bool x1::XLTTradeApi::submit_counter_fund_transfer_request ( uint64_t session_id,
uint64_t request_id,
FundTransSide side,
amount_t amount,
char * biz_no = nullptr,
uint64_t trade_token = 0 )

提交主柜资金划转请求

参数
session_id会话id,登录时得到
request_id由用户自定义
side划转方向,IN-划入(从主柜划入到xlight),OUT-划出(从xlight划出到主柜)
amount划转金额,放大10000倍
biz_no输出参数,返回系统生成的业务流水号,缓冲区至少20字节。传nullptr则不返回。划拨结果通过on_counter_fund_transfer_result返回。
trade_token如果是普通交易账号填0;如果为授权认证的账号,填写认证成功时on_auth_trade回调函数返回的trade_token。
返回
请求发送是否成功,true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误代码

◆ subscribe_trade_message()

bool x1::XLTTradeApi::subscribe_trade_message ( uint64_t session_id,
uint64_t request_id,
trade_message_type_t trade_message_type,
TradeResumeType resume_type,
uint64_t start_sequence )

订阅交易数据 每个session_id,仅第一次调用有效。

参数
session_id会话ID,登录时得到
request_id用于用户定位请求的ID,由用户自定义
trade_message_type订阅的交易数据类型,可以同时订阅多种类型,用按位或方式组合
resume_type消息推送方式
start_sequence数据推送的起始序列号,默认值为0,当resume_type为TradeResumeType::SPECIFY时有效
返回
true表示成功,false表示出错,此时用户可以调用get_last_error()来获取错误信息。

该类的文档由以下文件生成: