账户与交易
账户信息查询
获取已登入账户列表-getaccountlist
accoutlist=api.getaccountlist()
print(accoutlist)
获取已登入账户列表-getgroupaccount
grouplist=api.getgroupaccount()
print(grouplist)
获取账户资金信息-getaccmargin
参数 | 类型 | 空 | 默认 | 注释 |
---|---|---|---|---|
basecurrency基币 | bool | 否 | True | 默认只返回基础币别资金信息,填False时,返回所有币别资金信息 |
if accoutlist:
print(api.getaccmargin(accoutlist[0]['AccMask']))
订阅账户资金信息-submargin
订阅资金信息后,实时资金信息变动会通过onmargin(self,accmask,data)返回数据
参数 | 类型 | 空 | 默认 | 注释 |
---|---|---|---|---|
basecurrency基币 | bool | 否 | True | 默认只订阅基础币别资金信息,填False时,返回所有币别资金信息 |
api.submargin()
获取账户持仓-getposition
print(api.getposition("CTP_NHGPQQ_SIM-8050-90096859"))
订阅账户持仓-subposition
订阅持仓信息后,实时持仓信息变动会通过事件onposition(self,accmask,data)返回数据
api.subposition()
获取期权持仓监控-getpositionmoniter
print(api.getpositionmoniter())
订阅期权持仓监控-subpositionmoniter
订阅期权持仓监控后,实时期权持仓监控信息变动会通过事件onpositionmoniter(self,data)返回数据
api.subpositionmoniter()
获取当天全部委托-getorderreport
print(api.getorderreport())
获取当天全部挂单,尚未成交的挂单-getactiveorder
print(api.getactiveorder())
获取当天全部成交回报-getfilledreport
filled=api.getfilledreport()
print(len(filled)," ",filled)
获取当天全部成交回报明细-getdetailfilledreport
detailfilled=api.getdetailfilledreport()
组合合约操作
查询组合报单记录-getcombinationorder
comborderreport=api.getcombinationorder(strAccountMask)
print(comborderreport)
查询组合持仓-getcombposition
combposition=api.getcombposition(strAccountMask)
print(combposition)
订阅组合持仓-subcombposition
订阅组合持仓信息后,实时组合持仓信息变动会通过事件oncombposition(self,accmask,data)返回数据
api.api.subcombposition()
拆分组合持仓-optcombsplit
参数 | 类型 | 空 | 默认 | 注释 |
---|---|---|---|---|
Account账户 | string | 否 | "CTP_NHGPQQ_SIM-8050-90096859" | |
Symbol组合持仓合约代码 | string | 否 | "TC.O.SSE.510050.202303.C.2.65&TC.O.SSE.510050.202303.C.2.7" | |
Quantity拆分数量 | int | 否 | 1 | |
CombinationType组合类型 | int | 否 | 1 | |
OptCombID组合持仓ID | string | 否 | "2023020300003226" |
api.optcombsplit(strAccountMask,combposition[0]['Symbol'],combposition[0]['Quantity'],combposition[0]['CombinationType'],combposition[0]['OptCombID'])
建组合持仓-optcomb
参数 | 类型 | 空 | 默认 | 注释 |
---|---|---|---|---|
Account账户 | string | 否 | "CTP_NHGPQQ_SIM-8050-90096859" | |
SymbolA组合A合约代码 | string | 否 | "TC.O.SSE.510050.202303.C.2.65" | |
SymbolB组合B合约代码 | string | 否 | "TC.O.SSE.510050.202303.C.2.7" | |
Quantity组合数量 | int | 否 | 1 | |
CombinationType组合类型 | int | 否 | //CombinationType 1:认购牛市价差 2:认沽熊市价差 3:认沽牛市价差 4:认购熊市价差 5:跨式空头or期权跨式(大商所) 6:宽跨式空头or期权宽跨式(大商所) 7:认购期权保证金转备兑 8:认购期权备兑转保证金 9:期货同合约对锁(大商所) 10:期货跨期套利(大商所) 11:期货跨品种(大商所) 12:卖出期货期权(大商所) 13:买入期货期权(大商所) 14:期权同品种对锁(大商所) 15:日历日价差大商所) |
api.optcomb(strAccountMask,'TC.O.SSE.510050.202303.C.2.65','TC.O.SSE.510050.202303.C.2.7',1,4)
委托单操作
新增委托单-neworder
api.neworder(OrderStruct)
- 下单参数
字段 | 类型 | 空 | 默认 | 注释 |
---|---|---|---|---|
Account | string | 否 | 下单账户 | |
BrokerID | string | 否 | 账户的 BrokerID | |
Symbol | string | 否 | 下单合约 | |
Side | OrderSide | 否 | 买卖别 (复式单为整体买卖方向) 1:Buy 2:Sell | |
OrderQty | int | 否 | 下单数量 | |
OrderType | OrderType | 否 | 1 : Market 市价单 2 : Limit 限价单 3 : Stop 停损单 4 : StopLimit 停损限价单 5 : 追踪停损价 6 : 追踪停损限价 7 : 触价发市价单 8 : 触价发limit限价单 9 : 追踪限价 10 : 对方价 11 : 本方价 15: 中间价 20 : 最优价 21 : 最优价转限价 (BSTL) 22 : 五档市价 (5LvlMKT) 23 : 五档市价转限价 (5LvlMTL) 24 : 市价转限价 (MTL) 25 : 一定范围市价 |
|
TimeInForce | TimeInForce | 否 | 0 : None None 1 : ROD 日内有效 2 : IOC 立即成交否则取消 3 : FOK 全部成交否则取消 |
|
PositionEffect | PositionEffect | 否 | 0 : 开仓 1 : 平仓 2 : 平今 3 : 平昨 4 : 自动判断开平 10 : 备兑开仓 11 : 备兑平仓 |
|
SymbolA | string | 是 | 空 | 复式单脚1商品TCore代码 |
SymbolB | string | 是 | 空 | 复式单脚2商品TCore代码 |
Price | float | 是 | 0 | 委托价格 or 字段 + or - 价格 字段 + or - 跳数T(加减跳 大写的T) Ex : ASK+1T,ASK+2T , BID-2T 字段為固定字,可为 LAST or BID or ASK or FILLED FILLED为OTO, OTOCO使用, 其他单不可使用FILLED ex. FILLED-150000000000 |
StopPrice | float | 是 | 0 | 停损价 or 字段 + or - 价格 字段 + or - 跳数T(加减几跳 大写的T) Ex : ASK+1T,ASK+2T , BID-2T 字段为固定字, 可为LAST or BID or ASK or MID or FILLED FILLED为OTO, OTOCO使用, 其他单不可使用FILLED |
Side1 | float | 是 | 0 | 买卖别(复式单脚1) 1:Buy 2:Sell |
Side2 | float | 是 | 0 | 买卖别(复式单脚2) 1:Buy 2:Sell |
ContingentSymbol | string | 是 | 空 | 追踪Symbol 仅Synthetic = 1 OrderType=7 或 OrderType=8使用 |
TrailingAmount | float | 是 | 0 | 仅Synthetic = 1且OrderType=5 或 OrderType=6使用 TrailingType=1时, TrailingAmount为百分比 TrailingType=2时, TrailingAmount为点数 TrailingType=3时, TrailingAmount为几跳 |
TrailingField | float | 是 | 0 | 仅Synthetic = 1且OrderType=7 或 OrderType=8使用 触发价 or 字段 + or - 价格 字段 + or - 跳数T(加减几跳 大写的T)Ex : ASK+1T,ASK+2T , BID-2T 字段为固定字, 可为LAST or BID or ASK or FILLED FILLED为OTO, OTOCO使用, 其他单不可使用FILLED |
TrailingType | float | 是 | 0 | 仅Synthetic = 1且OrderType=5 或 OrderType=6使用 0 : None 1 : 依价格 2 : 依TrailingPrice百分比 3 : 依TickSize几跳 |
TouchCondition | float | 是 | 0 | 仅Synthetic = 1且OrderType=7 或 OrderType=8使用 0 : touch or 穿价 1 : Greater 2 : GreaterEqual 3 : Equl 4 : LessEqual 5 : Less |
TouchField | float | 是 | 0 | 仅Synthetic = 1且OrderType=7 或 OrderType=8使用 0 : None 1 : Last 2 : Bid 3 : Ask |
TouchPrice | string | 是 | 空 | 仅Synthetic = 1且OrderType=7 或 OrderType=8使用 触发价 or 字段 + or - 价格 字段 + or - 跳数T(加减几跳 大写的T) Ex : ASK+1T,ASK+2T , BID-2T 字段为固定字, 可为LAST or BID or ASK or FILLED FILLED为OTO, OTOCO使用, 其他单不可使用FILLED |
Synthetic | float | 是 | 0 | 0 : None 1 : Synthetic |
GroupID | string | 是 | 空 | GroupID or OCOID or OTOID or OTOCOID |
GroupType | float | 是 | 0 | 0 : None 1 : Normal 2 : OCO 3 : OTO 4 : OTOCO |
GrpAcctOrdType | float | 是 | 0 | |
ChasePrice | string | 是 | 空 | 追价 格式为[每次增加价格or跳数|追价几次|每次追价几秒|最后下市价或删单(M or C)] PS:增加价格若为跳数尾端带入T,EX:1T(1跳) |
Strategy | string | 是 | 空 | 策略名称 |
UserKey1 | string | 是 | 空 | 将可在回报的UserKey1字段得到相同的字符串 |
SlicedPriceField | float | 是 | 0 | 0 : None 1 : Last 2 : Bid 3 : Ask 4 : 对方价 5 : 本方价 |
SlicedTicks | float | 是 | 0 | SlicedPriceField 非零使用 TickSize几跳 |
SlicedType | float | 是 | 0 | 不支援群组单 0 : None 1 : Iceberg 2 : TimeSliced 3 : VolumeSliced 4 : AllSliced 5 : AllSliced After PriceTrigger |
DiscloseQty | float | 是 | 0 | 逐笔揭露数量 |
Variance | float | 是 | 0 | 逐笔变动比例% 仅SlicedType =1 或 SlicedType =2或 SlicedType =3使用 |
Interval | float | 是 | 0 | 仅SlicedType =2或 SlicedType =3使用 SlicedType =2 : 间隔时间,ms SlicedType =3 : 间隔成交量 |
LeftoverAction | float | 是 | 0 | 仅SlicedType =2或 SlicedType =3使用 0 : Leave 继续挂着(默认) 1 : Merge 取消该笔,剩余数量加入下笔下单 2 : Market 转市价单 |
SelfTradePrevention | float | 是 | 0 | 0 : 或是不带入该参数,不启用自成交侦测 1 : 所有委托时间条件带IOC用来规避自成交 2 : 所有委托时间条件带FOK用来规避自成交 3 : 侦测到自成交时,直接拒绝送出委托,并提示委托错误 |
ExtCommands | string | 是 | 空 | 延伸下单参数 一. 下单前 将平仓挂单都删单 CancelCloseWorking=1 or 2 平净仓 CancelCloseWorking=2 全平 1. stock CancelCloseWorking=2 2. future/option a. 多空并存 CancelCloseWorking=1 b. 只有单边 CancelCloseWorking=2 二. 下单速度自适应於交易安全设定值 FitOrderFreq=1 |
TradeType | float | 是 | 0 | 0 : Normal 1 : Purchase on Margin 2 : ShortSell |
OrderStruct.Symbol="TC.F.CZCE.SR.HOT"
OrderStruct.BrokerID=accoutlist[0]['BrokerID']
OrderStruct.Account=accoutlist[0]['Account']
OrderStruct.Price=4044
#OrderStruct.StopPrice=4044
OrderStruct.TimeInForce=TimeInForce.IOC
OrderStruct.Side=OrderSide.Sell
OrderStruct.OrderType=OrderType.Limit
OrderStruct.OrderQty=100
OrderStruct.PositionEffect=PositionEffect.Auto
OrderStruct.Synthetic=0
OrderStruct.SelfTradePrevention=3
ordkey,msg=api.neworder(OrderStruct)
print(ordkey,msg)
if ordkey!=None:
while True:
if api.getorderinfo(ordkey):
print("#####################新增委托:",api.getorderinfo(ordkey)[-1]['ReportID'])#,TCoreAPI.QryReport()[-1]['ReportID'])
break
改单-replaceorder
api.replaceorder(api.getorderinfo(ordkey)[-1]['ReportID'],price=839)
删单-cancelorder
api.cancelorder(api.getorderinfo(ordkey)[-1]['ReportID'])
订阅期权持仓监控-subpositionmoniter
订阅期权持仓监控后,实时期权持仓监控信息变动会通过事件onpositionmoniter(self,data)返回数据
api.subpositionmoniter()
实时交易事件
实时交易事件需要创建继承自TradeEvent的子类,并重写TradeEvent回调方法
交易API连线成功通知
当交易API连线成功被建立时,该事件被触发
def onconnected(self, strapi):
pass
交易API断线通知
当交易API断线时,该事件被触发
def ondisconnected(self, strapi):
pass
其他交易接口事件通知
def onsystemmessage(self,MsgType, MsgCode, MsgString):
pass
交易账户状态更新事件
当连线被建立时,如果已有交易账户时登入状态,或者有交易账户登出或者登入,该事件被触发
#资金账户列表,当有资金账户登出或者登入时
def onaccountlist(self,data,count):
print(data,count)
群组账户状态更新事件
当连线被建立时,如果群组账户新增更新或删除,或者群组账户中的实际账户状态发生变化时,该事件被触发
def ongroupaccount(self,grouplist,nCount):
pass
实时委托信息
def onordereportreal(self,data):
print(data)
实时成交信息
def onfilledreportreal(self,data):
print(data)
账户登出登入时委托资料需要清理通知
def onorderreportreset(self):
print("onorderreportreset")
期权持仓监控信息
def onpositionmoniter(self,data):
print(data)
账户资金信息更新
def onmargin(self,accmask,data):
pass
持仓更新
def onposition(self,accmask,data):
pass
期权组合持仓更新
def oncombposition(self,accmask,data):
pass
组合报单更新
def oncombinationorder(self,accmask,data):
pass