请问一下 回测里面,有关交易函数里面有关开仓平仓命令失败返回 -1,具体的错误日志 在什么地方能够找到?
下单失败,order_status 函数里面也没有响应
我看一下,日志里面是 实盘交易或 模拟交易的记录,但是 没有 回测里面的交易日志。
---我主要的问题,python 策略,回测中间,有时 开仓命令 不生效,返回-1值,不是资金问题,但是 找不到 错误所在。
本程序目的:用于股指期货交易,为避免 平今的大额手续费,开仓:采用先平昨天相反头寸,剩下开仓今天头寸; 平仓:先平昨天头寸,剩下则开相反方向头寸;
回测 2019年4月4日14点20分:
1)满足S1空头开仓条件,但因为有昨多头,采用直接平仓昨天多头,代替开空头的方法。
2) 具体的下单指令 sid=buy_close(order_book_id=code,style="Market", volume = s_v) ,平多1手,s_v 设定为1
3)但是 回测委托交易记录中,结果是是平空, 出错,
4)附件 开仓代码,回测委托明细,程序输出
############################################################################################################
portfolio=get_portfolio (context.s1, 0)
buy_today_quantity=portfolio.buy_today_quantity #今多仓
buy_quantity=portfolio.buy_quantity #多头总持仓
buy_old_qty=buy_quantity-buy_today_quantity #昨多头数量
sell_today_quantity=portfolio.sell_today_quantity #今空仓
sell_quantity=portfolio.sell_quantity#空头总持仓
sell_old_qty=sell_quantity-sell_today_quantity #昨空头数量
############################################################################################################
if s1: #开空
print((now,'s1 多总,昨多,空总,昨空',buy_quantity,buy_old_qty,sell_quantity,sell_old_qty,c))
context.st=0 #空头开仓时间0
context.last=-1 #方向空头
if buy_old_qty<=0: #没有昨天多头仓位
sid=sell_open(order_book_id=code, style="Market", volume = s_v) # 市价开空全部数量
print(('没有昨天多头仓,直接开空',sid))
else:
if s_v<=buy_old_qty: #小于昨天多头数量,直接平仓昨天多头
sid=buy_close(order_book_id=code,style="Market", volume = s_v)
print(('小于昨天多头数量,直接平仓昨天多头',sid))
else: #大于 昨天多头数量
sid1=buy_close(order_book_id=code,style="Market", volume = s_v) #平仓昨天多头
sid2=sell_open(order_book_id=code, style="Market", volume = (s_v-buy_old_qty)) #开仓剩余空头
print(('大于昨天多头数量,先平仓昨天多头,后开仓多头',sid1,sid2))