Skip to main content

账户与交易

账户信息查询

获取已登入账户列表-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'])

实时交易事件

实时交易事件需要创建继承自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