-- 作者:投资老友-WAN
-- 发布时间:2019/1/11 12:08:49
-- Python策略交易指令为什么没有执行
我编的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且账户无仓位,但是运行中无任何交易发生,请帮分析一下是什么问题???
|
-- 作者:yukizzc
-- 发布时间:2019/1/11 20:26:24
--
print (context.PO) print(i)
buy_open(i, "Market",0,volume=context.PO)
把下面逻辑注释掉,用这个测试下呢,看下输出数量和品种代码都是怎么样
|