文档
测试

1)综合交易下单

POST

交易函数简介

交易函数下单跟界面人工点击下单走的下单、风控流程是一样的,唯一的区别是:交易函数下单通过解析下单函数接口传过来的参数,形成相应的下单任务;而界面人工点击下单通过解析界面的输入、选择,形成相应的下单任务。 运作流程: (1)编写测试策略 ![image.png](https://cos.easydoc.net/54915851/files/kgkue3sa.png) (2)运行策略 ![image.png](https://cos.easydoc.net/54915851/files/kgkuea16.png) (3)触发下单,解析参数 ![image.png](https://cos.easydoc.net/54915851/files/kgkuee97.png) (4)生成任务 ![image.png](https://cos.easydoc.net/54915851/files/kgkuek4d.png) ![image.png](https://cos.easydoc.net/54915851/files/kgkuep4t.png) (5)形成委托,过风控 ![image.png](https://cos.easydoc.net/54915851/files/kgkuevm5.png) (6)成交 ![image.png](https://cos.easydoc.net/54915851/files/kgkuf1ba.png) 3.2.4.1. 交易函数基本信息 iQuant 平台提供了一系列的 Python 下单函数接口,如下所示。 ## *注:在回测模式中,交易函数调用虚拟账号进行交易,在历史 K 线上记录买卖点,用以计算策略净值/回测指标;实盘运行调用策略中设置的资金账号进行交易,产生实际委托;模拟运行模式下交易函数无效。其中,can_cancel_order, cancel_task, cancel和do_order交易函数在回测模式中无实际意义,不建议使用。 ## (1)交易函数 函数名 释义 passorder -----------------------综合交易下单 smart_algo_passorder ----------智能算法交易 get_trade_detail_data -----------取交易细明数据函数 get_value_by_order_id ----------根据委托Id取委托或成交信息 get_last_order_id ----------------获取最新的委托或成交的委托Id can_cancel_order ---------------查询委托是否可撤销 cancel ---------------------------取消委托 cancel_task ----------------------撤销任务 pause_task ----------------------暂停任务 resume_task --------------------继续任务 do_order ------------------------实时触发前一根bar信号函数 stoploss_limitprice --------------以限价单方式止损/止盈 stoploss_marketprice -----------以市价单方式止损/止盈 get_new_purchase_limit --------获取账号新股申购额度 ## (2)股票下单函数 函数名 释义 order_lots ---------------指定手数交易 order_value ------------------------------指定价值交易 order_percent ---------------一定比例下单 order_target_value ---------------目标价值下单 order_target_percent ---------------目标比例下单 order_shares ---------------指定股数交易 ## (3)期货下单函数 函数名 释义 buy_open 买入开仓 sell_close_tdayfirst ---------------卖出平仓,平今优先 sell_close_ydayfirst ---------------卖出平仓,平昨优先 sell_open -------------------------卖出开仓 buy_close_tdayfirst ---------------买入平仓,平今优先 buy_close_ydayfirst ---------------买入平仓,平昨优先

综合交易下单

# (1)综合交易下单 passorder() 用法: passorder(opType, orderType, accountid, orderCode, prType, modelprice, volume[, strategyName, quickTrade, userOrderId], ContextInfo) 释义: 综合交易下单 参数: opType,操作类型,可选值: 期货六键: 0:开多 1:平昨多 2:平今多 3:开空 4:平昨空 5:平今空 期货四键: 6:平多,优先平今 7:平多,优先平昨 8:平空,优先平今 9:平空,优先平昨 期货两键: 10:卖出,如有多仓,优先平仓,优先平今,如有余量,再开空 11:卖出,如有多仓,优先平仓,优先平昨,如有余量,再开空 12:买入,如有空仓,优先平仓,优先平今,如有余量,再开多 13:买入,如有空仓,优先平仓,优先平昨,如有余量,再开多 14:买入,不优先平仓 15:卖出,不优先平仓 股票买卖: 23:股票买入,或沪港通、深港通股票买入 24:股票卖出,或沪港通、深港通股票卖出 融资融券: 27:融资买入 28:融券卖出 29:买券还券 30:直接还券 31:卖券还款 32:直接还款 33:信用账号股票买入 34:信用账号股票卖出 组合交易: 25:组合买入,或沪港通、深港通的组合买入 26:组合卖出,或沪港通、深港通的组合卖出 27:融资买入 28:融券卖出 29:买券还券 31:卖券还款 33:信用账号股票买入 33:信用账号股票卖出 40:期货组合开多 43:期货组合开空 46:期货组合平多,优先平今 47:期货组合平多,优先平昨 48:期货组合平空,优先平今 49:期货组合平空,优先平昨 期权交易: 50:买入开仓 51:卖出平仓 52:卖出开仓 53:买入平仓 54:备兑开仓 55:备兑平仓 56:认购行权 57:认沽行权 58:证券锁定 59:证券解锁 orderType,下单方式 *注: 一、期货不支持 1102 和 1202 二、对所有账号组的操作相当于对账号组里的每个账号做一样的操作,如 passorder(23, 1202, ‘testS’, ‘000001.SZ’, 5, -1, 50000, ContextInfo),意思就是对账号组 testS 里的所有账号都以最新价开仓买入 50000 元市值的 000001.SZ 平安银行;passorder(60,1101,”test”,’510050.SH’,5,-1,1,ContextInfo)意思就是账号test申购1个单位(900000股)的华夏上证50ETF(只申购不买入成分股)。 可选值: 1101:单股、单账号、普通、股/手方式下单 1102:单股、单账号、普通、金额(元)方式下单(只支持股票) 1113:单股、单账号、总资产、比例 [0 ~ 1] 方式下单 1123:单股、单账号、可用、比例[0 ~ 1]方式下单 1201:单股、账号组(无权重)、普通、股/手方式下单 1202:单股、账号组(无权重)、普通、金额(元)方式下单(只支持股票) 1213:单股、账号组(无权重)、总资产、比例 [0 ~ 1] 方式下单 1223:单股、账号组(无权重)、可用、比例 [0 ~ 1] 方式下单 2101:组合、单账号、普通、按组合股票数量(篮子中股票设定的数量)方式下单 > 对应 volume 的单位为篮子的份 2102:组合、单账号、普通、按组合股票权重(篮子中股票设定的权重)方式下单 > 对应 volume 的单位为元 2103:组合、单账号、普通、按账号可用方式下单 > (底层篮子股票怎么分配?答:按可用资金比例后按篮子中股票权重分配,如用户没填权重则按相等权重分配)只对股票篮子支持 2201:组合、账号组(无权重)、普通、按组合股票数量方式下单 2202:组合、账号组(无权重)、普通、按组合股票权重方式下单 2203:组合、账号组(无权重)、普通、按账号可用方式下单只对股票篮子支持 组合套利交易接口特殊设置(accountID、orderType 特殊设置) passorder(opType, orderType, accountID, orderCode, prType, hedgeRatio, volume, ContextInfo) accountID = ‘stockAccountID, futureAccountID’ orderCode = ‘basketName, futureName’ hedgeRatio:套利比例(0 ~ 2 之间值,相当于 %0 至 200% 套利) volume:份数 \ 资金 \ 比例 orderType(特殊设置) orderType 可选值: 2331:组合、套利、合约价值自动套利、按组合股票数量方式下单 2332:组合、套利、按合约价值自动套利、按组合股票权重方式下单 2333:组合、套利、按合约价值自动套利、按账号可用方式下单 accountID,资金账号 passorder(opType, orderType, accountID, orderCode, prType, price, volume, ContextInfo) *注:下单的账号ID(可多个)或账号组名或套利组名(一个篮子一个套利账号,如 accountID = ‘股票账户名, 期货账号’) orderCode,下单代码 passorder(opType, orderType, accountID, orderCode, prType, price, volume, ContextInfo) *注: 一、如果是单股或单期货、港股,则该参数填合约代码; 二、如果是组合交易,则该参数填篮子名称; 三、如果是组合套利,则填一个篮子名和一个期货合约名(如orderCode = ‘篮子名, 期货合约名’) prType,下单选价类型 passorder(opType, orderType, accountID, orderCode, prType, price, volume, ContextInfo) 可选值(特别的对于套利,这个 prType 只对篮子起作用,期货的采用默认的方式): -1:无效(实际下单时,需要用交易面板交易函数那设定的选价类型) 0:卖5价 1:卖4价 2:卖3价 3:卖2价 4:卖1价 5:最新价 6:买1价 7:买2价(组合不支持) 8:买3价(组合不支持) 9:买4价(组合不支持) 10:买5价(组合不支持) 11:(指定价)模型价(只对单股情况支持,对组合交易不支持) 12:涨跌停价 13:挂单价 14:对手价 27:市价即成剩撤(仅对股票期权申报有效) 28:市价即全成否则撤(仅对股票期权申报有效) 29:市价剩转限价(仅对股票期权申报有效) 42:最优五档即时成交剩余撤销申报(仅对上交所申报有效) 43:最优五档即时成交剩转限价申报(仅对上交所申报有效) 44:对手方最优价格委托(仅对深交所申报有效) 45:本方最优价格委托(仅对深交所申报有效) 46:即时成交剩余撤销委托(仅对深交所申报有效) 47:最优五档即时成交剩余撤销委托(仅对深交所申报有效) 48:全额成交或撤销委托(仅对深交所申报有效) 49:科创板盘后定价 price,下单价格 passorder(opType, orderType, accountID, orderCode, prType, price, volume, ContextInfo) *注: 一、单股下单时,prType 是模型价/科创板盘后定价时 price 有效;其它情况无效;即单股时, prType 参数为 11,49 时被使用。 prType 参数不为 11,49 时也需填写,填写的内容可为 -1,0,2,100 等任意数字; 二、组合下单时,是组合套利时,price 作套利比例有效,其它情况无效。 volume,下单数量(股 / 手 / 元 / %) passorder(opType, orderType, accountID, orderCode, prType, price, volume, ContextInfo) 根据 orderType 值最后一位确定 volume 的单位: 单股下单时: 1:股 / 手 2:金额(元) 3:比例(%) 组合下单时: 1:按组合股票数量(份) 2:按组合股票权重(元) 3:按账号可用(%) strategyName,string,自定义策略名,可缺省不写,用来区分 order 委托和 deal 成交来自不同的策略。根据该策略名,get_trade_detail_data,get_last_order_id 函数可以获取相应策略名对应的委托或持仓结果。 *注:strategyName 只对同账号本地客户端有效,即 strategyName 只对当前客户端下的单进行策略区分,且该策略区分只能当前客户端使用。 quickTrade,int,设定是否立即触发下单,可选值: 0:否 1:是 *注:passorder是对最后一根K线完全走完后生成的模型信号在下一根K线的第一个tick数据来时触发下单交易;采用quickTrade参数设置为1时,非历史bar上执行时(ContextInfo.is_last_bar()为True),只要策略模型中调用到就触发下单交易。quickTrade参数设置为2时,不判断bar状态,只要策略模型中调用到就触发下单交易,历史bar上也能触发下单,请谨慎使用。 userOrderId,string,用户自设委托 ID,可缺省不写,写的时候必须把起前面的 strategyName 和 quickTrade 参数也填写。对应 order 委托对象和 deal 成交对象中的 m_strRemark 属性,通过 get_trade_detail_data 函数或委托主推函数 order_callback 和成交主推函数 deal_callback 可拿到这两个对象信息。 userOrderParam,string,用户自定义交易参数模板名称,可缺省不写,写的时候必须把起前面的strategyName和quickTrade参数也填写。 返回: 无 示例: ```py def handlebar(ContextInfo): # 单股单账号期货最新价买入 10 手 passorder(0, 1101, 'test', target, 5, -1, 10, ContextInfo) # 单股单账号期货指定价买入 10 手 passorder(0, 1101, 'test', target, 11, 3000, ContextInfo) # 单股单账号股票最新价买入 100 股(1 手) passorder(23, 1101, 'test', target, 5, 0, 100, ContextInfo) # 单股单账号股票指定价买入 100 股(1 手) passorder(23, 1101, 'test', target, 11, 7, 100, ContextInfo) ```