- get_accounts - 查询交易账号
- order_volume - 按指定量委托
- order_value - 按指定价值委托
- order_percent - 按总资产指定比例委托
- order_target_volume - 调仓到目标持仓量
- order_target_value - 调仓到目标持仓额
- order_target_percent - 调仓到目标持仓比例(总资产的比例)
- order_close_all - 平当前所有可平持仓
- order_cancel - 委托撤单
- order_close_all - 平当前所有可平持仓
- order_cancel_all - 撤销所有委托
- place_order - 按指定量委托
- get_orders - 查询所有委托
- get_unfinished_orders - 查询未结委托
- get_execution_reports - 查询成交
- get_cash - 查询资金
- get_position - 查询持仓
get_accounts - 查询交易账号
用于查询交易账号配置信息。多用于实盘时,策略同时关联多个交易账号的时候,获取所有交易账号的信息,所返回的账号id(account_id
)用于后续各个交易api的入参, 即指定操作某个交易账户。
如果关联的交易账号只有一个, 一般用不到此函数。
函数原型:
DataArray<Account>* get_accounts();
参数:
参数名 | 类型 | 说明 |
---|---|---|
返回值 | DataArray<Account>* |
一个Account结构数组 |
order_volume - 按指定量委托
按指定量委托, 如果调用成功,后续委托单状态变化将会触发on_order_status回调。
函数原型:
Order order_volume(const char *symbol, int volume, int side, int order_type, int position_effect, double price = 0, const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | const char * | 标的代码,只能单个标的 |
volume | int | 委托数量 |
side | int | 委托方向 参见 enum OrderSide |
order_type | int | 委托类型 参见 enum OrderType |
position_effect | int | 开平类型 参见 enum PositionSide |
price | double | 委托价格 |
account | const char * | 实盘账号id,关联多实盘账号时填写,可以从 get_accounts获取,也可以从终端实盘账号配置里拷贝。如果策略只关联一个账号,可以设置为NULL |
返回值 | Order | 一个Order结构, 如果函数调用失败, Order.status 值为 OrderStatus_Rejected , Order.ord_rej_reason_detail 为错误原因描述, 其它情况表示函数调用成功,Order.cl_ord_id 为本次委托的标识,可用于追溯订单状态或撤单 |
示例:
//以11块的价格限价买入10000股浦发银行
Order o = order_volume("SHSE.600000", 10000, OrderSide_Buy, OrderType_Limit, PositionEffect_Open, 11);
注意:
1.仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2.若下单数量输入有误,终端会拒绝此单,并显示委托量不正确
。股票买入最小单位为100
,卖出最小单位为1
,如存在不足100股的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3.若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4.Order_type优先级高于price,若指定OrderTpye_Market下市价单,使用价格为最新一个tick中的最新价,price参数失效。则price参数失效。若OrderTpye_Limit限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5.函数调用成功并不意味着委托已经成功,只是意味委托单已经成功发出去, 委托是否成功根据on_order_status,或 get_order来判断。
order_value - 按指定价值委托
按指定价值委托, 如果调用成功,后续委托单状态变化将会触发on_order_status回调。
函数原型:
Order order_value(const char *symbol, double value, int side, int order_type, int position_effect, double price = 0, const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | const char * | 标的代码,只能单个标的 |
value | int | 股票价值 |
side | int | 委托方向 参见 enum OrderSide |
order_type | int | 委托类型 参见 enum OrderType |
position_effect | int | 开平类型 参见 enum PositionSide |
price | double | 委托价格 |
account | const char * | 实盘账号id,关联多实盘账号时填写,可以从 get_accounts获取,也可以从终端实盘账号配置里拷贝。如果策略只关联一个账号,可以设置为NULL |
返回值 | Order | 一个Order结构, 如果函数调用失败, Order.status 值为 OrderStatus_Rejected , Order.ord_rej_reason_detail 为错误原因描述, 其它情况表示函数调用成功,Order.cl_ord_id 为本次委托的标识,可用于追溯订单状态或撤单 |
示例:
//下限价单,以11元每股的价格买入价值为100000元的SHSE.600000, 根据volume = value / price,计算并取整得到volume = 9000
Order o = order_value("SHSE.600000", 100000, OrderSide_Buy, OrderType_Limit, PositionEffect_Open, 11);
注意:
1.仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2.根据指定价值计算购买标的数量,即value/price
。股票买卖最小单位为100
,不足100部分向下取整
,如存在不足100的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3.若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4.Order_type优先级高于price,若指定OrderTpye_Market下市价单,使用价格为最新一个tick中的最新价,price参数失效。则price参数失效。若OrderTpye_Limit限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5.函数调用成功并不意味着委托已经成功,只是意味委托单已经成功发出去, 委托是否成功根据on_order_status,或 get_order来判断。
order_percent - 按总资产指定比例委托
按总资产指定比例委托, 如果调用成功,后续委托单状态变化将会触发on_order_status回调。
函数原型:
Order order_percent(const char *symbol, double percent, int side, int order_type, int position_effect, double price = 0, const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | const char * | 标的代码,只能单个标的 |
percent | double | 委托占总资产比例 |
side | int | 委托方向 参见 enum OrderSide |
order_type | int | 委托类型 参见 enum OrderType |
position_effect | int | 开平类型 参见 enum PositionSide |
price | double | 委托价格 |
account | const char * | 实盘账号id,关联多实盘账号时填写,可以从 get_accounts获取,也可以从终端实盘账号配置里拷贝。如果策略只关联一个账号,可以设置为NULL |
返回值 | Order | 一个Order结构, 如果函数调用失败, Order.status 值为 OrderStatus_Rejected , Order.ord_rej_reason_detail 为错误原因描述, 其它情况表示函数调用成功,Order.cl_ord_id 为本次委托的标识,可用于追溯订单状态或撤单 |
示例:
//当前总资产为1000000。下限价单,以11元每股的价格买入SHSE.600000,期望买入比例占总资产的10%,根据volume = nav * precent / price 计算取整得出volume = 9000
Order o = order_percent("SHSE.600000", 0.1, OrderSide_Buy, OrderType_Limit, PositionEffect_Open, 11);
注意:
1.仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2.根据指定比例计算购买标的数量,即(nav*precent)/price
,股票买卖最小单位为100
,不足100部分向下取整
,如存在不足100的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3.若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4.Order_type优先级高于price,若指定OrderTpye_Market下市价单,使用价格为最新一个tick中的最新价,price参数失效。则price参数失效。若OrderTpye_Limit限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5.函数调用成功并不意味着委托已经成功,只是意味委托单已经成功发出去, 委托是否成功根据on_order_status,或 get_order来判断。
order_target_volume - 调仓到目标持仓量
调仓到目标持仓量, 如果调用成功,后续委托单状态变化将会触发on_order_status回调。
函数原型:
Order order_target_volume(const char *symbol, int volume, int position_side, int order_type, double price = 0, const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | const char * | 标的代码,只能单个标的 |
volume | int | 期望的最终数量 |
position_side | int | 持仓方向 参见 enum PositionSide ) |
order_type | int | 委托类型 参见 enum OrderType |
price | double | 委托价格 |
account | const char * | 实盘账号id,关联多实盘账号时填写,可以从 get_accounts获取,也可以从终端实盘账号配置里拷贝。如果策略只关联一个账号,可以设置为NULL |
返回值 | Order | 一个Order结构, 如果函数调用失败, Order.status 值为 OrderStatus_Rejected , Order.ord_rej_reason_detail 为错误原因描述, 其它情况表示函数调用成功,Order.cl_ord_id 为本次委托的标识,可用于追溯订单状态或撤单 |
示例:
//当前SHSE.600000多方向持仓量为0,期望持仓量为10000,下单量为期望持仓量 - 当前持仓量 = 10000
Order o = order_target_volume("SHSE.600000", 10000, PositionSide_Long, OrderType_Limit, 11);
注意:
1.仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2.根据目标数量计算下单数量,系统判断开平仓类型。若下单数量有误,终端拒绝此单,并显示委托量不正确
。若实际需要买入数量为0,则订单会被拒绝,终端无显示,无回报
。股票买卖最小单位为100
,不足100部分向下取整
,如存在不足100的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3.若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4.Order_type优先级高于price,若指定OrderTpye_Market下市价单,使用价格为最新一个tick中的最新价,price参数失效。则price参数失效。若OrderTpye_Limit限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5.函数调用成功并不意味着委托已经成功,只是意味委托单已经成功发出去, 委托是否成功根据on_order_status,或 get_order来判断。
order_target_value - 调仓到目标持仓额
调仓到目标持仓额, 如果调用成功,后续委托单状态变化将会触发on_order_status回调。
函数原型:
Order order_target_value(const char *symbol, double value, int position_side, int order_type, double price = 0, const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | const char * | 标的代码,只能单个标的 |
value | int | 期望的股票最终价值 |
position_side | int | 持仓方向 参见 enum PositionSide ) |
order_type | int | 委托类型 参见 enum OrderType |
price | double | 委托价格 |
account | const char * | 实盘账号id,关联多实盘账号时填写,可以从 get_accounts获取,也可以从终端实盘账号配置里拷贝。如果策略只关联一个账号,可以设置为NULL |
返回值 | Order | 一个Order结构, 如果函数调用失败, Order.status 值为 OrderStatus_Rejected , Order.ord_rej_reason_detail 为错误原因描述, 其它情况表示函数调用成功,Order.cl_ord_id 为本次委托的标识,可用于追溯订单状态或撤单 |
示例:
//当前SHSE.600000多方向当前持仓量为0,目标持有价值为100000的该股票,根据value / price 计算取整得出目标持仓量volume为9000,目标持仓量 - 当前持仓量 = 下单量为9000
Order o = order_target_value("SHSE.600000", 100000, PositionSide_Long, OrderType_Limit, 11);
注意:
1.仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2.根据目标数量计算下单数量,系统判断开平仓类型。若下单数量有误,终端拒绝此单,并显示委托量不正确
。若实际需要买入数量为0,则订单会被拒绝,终端无显示,无回报
。股票买卖最小单位为100
,不足100部分向下取整
,如存在不足100的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3.若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4.Order_type优先级高于price,若指定OrderTpye_Market下市价单,使用价格为最新一个tick中的最新价,price参数失效。则price参数失效。若OrderTpye_Limit限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5.函数调用成功并不意味着委托已经成功,只是意味委托单已经成功发出去, 委托是否成功根据on_order_status,或 get_order来判断。
order_target_percent - 调仓到目标持仓比例(总资产的比例)
调仓到目标持仓比例(总资产的比例), 如果调用成功,后续委托单状态变化将会触发on_order_status回调。
函数原型:
Order order_target_percent(const char *symbol, double percent, int position_side, int order_type, double price = 0, const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | const char * | 标的代码,只能单个标的 |
percent | double | 期望的最终占总资产比例 |
position_side | int | 持仓方向 参见 enum PositionSide ) |
order_type | int | 委托类型 参见 enum OrderType |
price | double | 委托价格 |
account | const char * | 实盘账号id,关联多实盘账号时填写,可以从 get_accounts获取,也可以从终端实盘账号配置里拷贝。如果策略只关联一个账号,可以设置为NULL |
返回值 | Order | 一个Order结构, 如果函数调用失败, Order.status 值为 OrderStatus_Rejected , Order.ord_rej_reason_detail 为错误原因描述, 其它情况表示函数调用成功,Order.cl_ord_id 为本次委托的标识,可用于追溯订单状态或撤单 |
示例:
//当前总资产价值为1000000,目标为以11元每股的价格买入SHSE.600000的价值占总资产的10%,根据volume = nav * percent / price 计算取整得出应持有9000股。当前该股持仓量为零,因此买入量为9000
Order o = order_target_percent("SHSE.600000", 0.1, PositionSide_Long, OrderType_Limit, 11);
注意:
1.仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2.根据目标比例计算下单数量,为占总资产(nav)
比例,系统判断开平仓类型。若下单数量有误,终端拒绝此单,并显示委托量不正确
。若实际需要买入数量为0,则本地拒绝此单,终端无显示,无回报
。股票买卖最小单位为100
,不足100部分向下取整
,如存在不足100的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3.若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4.Order_type优先级高于price,若指定OrderTpye_Market下市价单,使用价格为最新一个tick中的最新价,price参数失效。则price参数失效。若OrderTpye_Limit限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5.函数调用成功并不意味着委托已经成功,只是意味委托单已经成功发出去, 委托是否成功根据on_order_status,或 get_order来判断。
order_close_all - 平当前所有可平持仓
平当前所有可平持仓, 如果调用成功,后续委托单状态变化将会触发on_order_status回调
函数原型:
DataArray<Order>* order_close_all();
参数:
参数名 | 类型 | 说明 |
---|---|---|
返回值 | DataArray<Order>* |
一个Order结构数组 |
order_cancel - 委托撤单
撤销单个委托单, 如果调用成功,后续委托单状态变化将会触发on_order_status回调
函数原型:
int order_cancel(const char *cl_ord_id, const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
cl_ord_id | const char * | 委托单的客户id, 可以在下单或查单时获得 |
account | const char * | 实盘账号id, 关联多实盘账号时填写,可以从 get_accounts获取,也可以从终端实盘账号配置里拷贝。如果策略只关联一个账号,可以设置为NULL |
返回值 | int | 成功返回0, 失败返回错误码 |
order_close_all - 平当前所有可平持仓
平当前所有可平持仓, 如果调用成功,后续委托单状态变化将会触发on_order_status回调
函数原型:
DataArray<Order>* order_close_all();
参数:
参数名 | 类型 | 说明 |
---|---|---|
返回值 | DataArray<Order>* |
一个Order结构数组 |
order_cancel_all - 撤销所有委托
撤销所有委托, 如果调用成功,后续委托单状态变化将会触发on_order_status回调
函数原型:
int order_cancel_all();
参数:
参数名 | 类型 | 说明 |
---|---|---|
返回值 | int | 成功返回0, 失败返回错误码 |
place_order - 按指定量委托
按指定量委托, 如果调用成功,后续委托单状态变化将会触发on_order_status回调。
函数原型:
Order place_order(const char *symbol, int volume, int side, int order_type, int position_effect, double price = 0, int order_duration = 0, int order_qualifier = 0, double stop_price = 0, int order_business = 0, const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | const char * | 标的代码,只能单个标的 |
volume | int | 委托数量 |
side | int | 委托方向 参见 enum OrderSide |
order_type | int | 委托类型 参见 enum OrderType |
position_effect | int | 开平类型 参见 enum PositionSide |
price | double | 委托价格 |
order_duration | int | 委托时间属性 参见 enum OrderDuration |
order_qualifier | int | 委托成交属性 参见 enum OrderQualifier |
stop_price | double | 止损价 |
order_business | int | 委托业务类型 参见 enum OrderBusiness |
account | const char * | 实盘账号id,关联多实盘账号时填写,可以从 get_accounts获取,也可以从终端实盘账号配置里拷贝。如果策略只关联一个账号,可以设置为NULL |
返回值 | Order | 一个Order结构, 如果函数调用失败, Order.status 值为 OrderStatus_Rejected , Order.ord_rej_reason_detail 为错误原因描述, 其它情况表示函数调用成功,Order.cl_ord_id 为本次委托的标识,可用于追溯订单状态或撤单 |
示例:
//以市价类型“五档即成剩撤”买入10000股浦发银行
Order o = place_order("SHSE.600000", 10000, OrderSide_Buy, OrderType_Market, PositionEffect_Open, 0, OrderDuration_Unknown, OrderQualifier_B5TL);
注意:
1.仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2.若下单数量输入有误,终端会拒绝此单,并显示委托量不正确
。股票买入最小单位为100
,卖出最小单位为1
,如存在不足100股的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3.若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4.Order_type优先级高于price,若指定OrderTpye_Market下市价单,使用价格为最新一个tick中的最新价,price参数失效。则price参数失效。若OrderTpye_Limit限价单,仿真模式价格错误,终端拒绝此单,显示委托价格错误,回测模式下对价格无限制
。
5.函数调用成功并不意味着委托已经成功,只是意味委托单已经成功发出去, 委托是否成功根据on_order_status,或 get_order来判断。
get_orders - 查询所有委托
查询所有委托单
函数原型:
DataArray<Order>* get_orders(const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
account | const char * | 账号IDaccount_id , 如果输入为NULL, 则返回所有账号的委托 |
返回值 | DataArray<Order>* |
一个Order结构数组 |
get_unfinished_orders - 查询未结委托
查询所有未结委托
函数原型:
DataArray<Order>* get_unfinished_orders(const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
account | const char * | 账号IDaccount_id , 如果输入为NULL, 则返回所有账号的委托 |
返回值 | DataArray<Order>* |
一个Order结构数组 |
get_execution_reports - 查询成交
查询所有成交
函数原型:
DataArray<ExecRpt>* get_execution_reports(const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
account | const char * | 账号IDaccount_id , 如果输入为NULL, 则返回所有账号的成交 |
返回值 | DataArray<ExecRpt>* |
一个ExecRpt结构数组 |
get_cash - 查询资金
查询资金
函数原型:
DataArray<Cash>* get_cash(const char *accounts = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
account | const char * | 账号IDaccount_id , 如果输入为NULL, 则返回所有账号的资金 |
返回值 | DataArray<Cash>* |
一个Cash结构数组 |
get_position - 查询持仓
查询所有持仓
函数原型:
DataArray<Position>* get_position(const char *account = NULL);
参数:
参数名 | 类型 | 说明 |
---|---|---|
account | const char * | 账号IDaccount_id , 如果输入为NULL, 则返回所有账号的持仓 |
返回值 | DataArray<Position>* |
一个Position结构数组 |