成交回报实时主推函数
# 3.2.5. 实时主推函数
# (1)资金账号状态变化主推 account_callback()
提示
- 仅在实盘运行模式下生效。
- 需要先在init里调用ContextInfo.set_account后生效。
用法: account_callback(ContextInfo, accountInfo)
释义: 当资金账号状态有变化时,这个函数被客户端调用
参数:
返回: 无
示例:
def init(ContextInfo):
# 设置对应的资金账号
ContextInfo.set_account('6000000058')
def handlebar(ContextInfo):
pass
def account_callback(ContextInfo, accountInfo):
print('accountInfo')
print(accountInfo.m_strStatus) # m_strStatus 为资金账号的属性之一,表示资金账号的状态
2
3
4
5
6
7
8
9
10
# (2)账号任务状态变化主推 task_callback()
提示
- 仅在实盘运行模式下生效。
- 需要先在init里调用ContextInfo.set_account后生效。
用法: task_callback(ContextInfo, taskInfo)
释义: 当账号任务状态有变化时,这个函数被客户端调用
参数:
- ContextInfo:特定对象
- taskInfo 任务对象
返回: 无
示例:
def init(ContextInfo):
# 设置对应的资金账号
ContextInfo.set_account('6000000058')
def handlebar(ContextInfo):
pass
def task_callback(ContextInfo, taskInfo):
print('taskInfo')
2
3
4
5
6
7
8
9
# (3)账号委托状态变化主推 order_callback()
提示
- 仅在实盘运行模式下生效。
- 需要先在init里调用ContextInfo.set_account后生效。
用法: order_callback(ContextInfo, orderInfo)
释义: 当账号委托状态有变化时,这个函数被客户端调用
参数:
- ContextInfo:特定对象
- orderInfo:委托
返回: 无
示例:
def init(ContextInfo):
# 设置对应的资金账号
ContextInfo.set_account('6000000058')
def handlebar(ContextInfo):
pass
def order_callback(ContextInfo, orderInfo):
print('orderInfo')
2
3
4
5
6
7
8
9
# (4)账号成交状态变化主推 deal_callback()
提示
- 仅在实盘运行模式下生效。
- 需要先在init里调用ContextInfo.set_account后生效。
用法: deal_callback(ContextInfo, dealInfo)
释义: 当账号成交状态有变化时,这个函数被客户端调用
参数:
- ContextInfo:特定对象
- dealInfo:成交
返回: 无
示例:
def init(ContextInfo):
# 设置对应的资金账号
ContextInfo.set_account('6000000058')
def handlebar(ContextInfo):
pass
def deal_callback(ContextInfo, dealInfo):
print('dealInfo')
2
3
4
5
6
7
8
9
# (5)账号持仓状态变化主推 position_callback()
提示
- 仅在实盘运行模式下生效。
- 需要先在init里调用ContextInfo.set_account后生效。
用法: position_callback(ContextInfo, positonInfo)
释义: 当账号持仓状态有变化时,这个函数被客户端调用
参数:
- ContextInfo:特定对象
- positonInfo:持仓
返回: 无
示例:
def init(ContextInfo):
# 设置对应的资金账号
ContextInfo.set_account('6000000058')
def handlebar(ContextInfo):
pass
def position_callback(ContextInfo, positonInfo):
print('positonInfo')
2
3
4
5
6
7
8
9
# (6)账号异常下单主推 orderError_callback()
提示
- 仅在实盘运行模式下生效。
- 需要先在init里调用ContextInfo.set_account后生效。
用法: orderError_callback(ContextInfo,orderArgs,errMsg)
释义: 当账号下单异常时,这个函数被客户端调用
参数:
- ContextInfo:特定对象
- orderArgs:下单参数
- errMsg:错误信息
返回: 无
示例:
def init(ContextInfo):
# 设置对应的资金账号
ContextInfo.set_account('6000000058')
def handlebar(ContextInfo):
pass
def orderError_callback(ContextInfo,orderArgs,errMsg):
print('orderArgs')
print(errMsg)
2
3
4
5
6
7
8
9
10
# (7)查询信用账户明细 query_credit_account()
用法: query_credit_account(accountId,seq,ContextInfo)
释义: 查询信用账户明细。本函数只能有一个查询,如果前面的查询正在进行中,后面的查询将会提前返回。本函数从服务器查询数据,建议平均查询时间间隔30s一次,不可频繁调用。
参数:
accountId:string,查询的两融账号
seq:int,查询序列号,建议输入唯一值以便对应结果回调
示例:
query_credit_account(ContextInfo.accid,int(time.time()),ContextInfo);
# 查询accid账号某时刻资金账号详细
2
# (8)查询信用账户明细回调 credit_account_callback()
用法: credit_account_callback(ContextInfo,seq,result)
释义: 查询信用账户明细回调
参数:
- ContextInfo:策略模型全局对象
- seq:query_credit_account时输入查询seq
- result: 信用账户明细
# (9)查询两融最大可下单量 query_credit_opvolume()
用法: query_credit_opvolume(accountId,stockCode,opType,prType,price,seq,ContextInfo)
释义: 查询两融最大可下单量。本函数一次最多查询200只股票的两融最大下单量,且同时只能有一个查询,如果前面的查询正在进行中,后面的查询将会提前返回。本函数从服务器查询数据,建议平均查询时间间隔30s一次,不可频繁调用。
参数:
- accountId:查询的两融账号
- stockCode:需要查询的股票代码,stockCode为List的类型,可以查询多只股票
- opType:两融下单类型,同passorder的下单类型
- prType:报单价格类型,同passorder的报价类型
- seq:查询序列号,int型,建议输入唯一值以便对应结果回调
- price:报价(非限价单可以填任意值),如果stockCode为List类型,报价也需要为长度相同的List
示例:
query_credit_opvolume(ContextInfo.accid,'600000.SH',33,11,10,int(time.time()),ContextInfo);
#查询accid账号担保品买入600000.SH限价10元的最大可下单量
query_credit_opvolume(ContextInfo.accid,['600000.SH','000001.SZ'],33,11,[10,20],int(time.time()),ContextInfo);
#查询accid账号担保品买入600000.SH限价10元,000001.SZ担保品买入限价20元的最大可下单量
2
3
4
# (10)查询两融最大可下单量的回调 credit_opvolume_callback()
用法: credit_opvolume_callback(ContextInfo,accid,seq,ret,result)
释义: 查询两融最大可下单量的回调。
参数:
- ContextInfo:策略模型全局对象
- accid:查询的账号
- seq:query_credit_opvolume时输入查询seq
- ret:查询结果状态。正常返回:1,正在查询中-1,输入账号非法:-2,输入查询参数非法:-3,超时等服务器返回报错:-4
- result:查询到的结果