我编的Python模块的策略在免费版和标准版的金字塔上运行时,交易语句没有执行,是在实盘上运行模拟账户,Handle Bar段的代码是:
Trade=[]
for i in context.Label:
Trade1 = getextdata(i)
if Trade1 is not(None):
Trade.append( Trade1 )
write_logging (i)
print (Trade1)
portfolio=get_portfolio (i,0)
buy_position = portfolio.buy_quantity
sell_position = portfolio.sell_quantity
write_logging("Buy position")
print (buy_position)
print (context.PO)
if Trade1==1:
if sell_position>0:
buy_close(i, "Market",0,volume=sell_position)
if buy_position>0 and buy_position<context.PO:
buy_open(i, "Market", 0, volume=context.PO-buy_position)
if buy_position>context.PO:
sell_close(i, "Market",0,volume=buy_position-context.PO)
if buy_position==0:
buy_open(i, "Market",0,volume=context.PO)
if Trade1==0:
if buy_position>0:
sell_close(i, "Market",0,volume=buy_position)
if sell_position>0:
buy_close(i, "Market",0,volume=sell_position)
if Trade1==-1:
if buy_position>0:
sell_close(i, "Market",0,volume=buy_position)
if sell_position>0 and sell_position<context.PO:
sell_open(i, "Market", 0, volume=context.PO-sell_position)
if sell_position>context.PO:
buy_close(i, "Market",0,volume=sell_position-context.PO)
if sell_position==0:
sell_open(i, "Market", 0, volume=context.PO)
说明一下,context.Label是我的合约池,从全局变量得到原来金字塔策略指标的开平仓信号Trade1,然后根据Trade1信号与账户实际仓位发出开平仓指令,合约池的合约代码,全局变量得到的Trade1,都Print出来看了没有问题,有几个品种的Trade<>0且账户无仓位,但是运行中无任何交易发生,请帮分析一下是什么问题???
print (context.PO)
print(i)
buy_open(i, "Market",0,volume=context.PO)
把下面逻辑注释掉,用这个测试下呢,看下输出数量和品种代码都是怎么样