策略目的是想将常用的期货策略转为期权策略,所以订阅了多个期权图层,满足不同条件时对不同的期权合约进行交易。
但编写期权程序的时候却发生了异常,开仓能成功,但平仓失败。
请老师sell函数执行失败的原因可能有哪些?
代码如下:
图层data4开始都是期权图层,我把执行sell函数之前和之后的currentcontracts都打印出来,发现没有变化,都为2。然后尝试判断sell函数的执行结果,确实为false,打印出“平空失败”的提示。打印结果如下:
订阅的合约如下图:
1、请老师告知sell函数执行失败的原因可能有哪些?
2、是否用A函数直接对指定合约发单和平仓较订阅众多期权合约更为高效?
打印失败?不能作为判断
实际委托里怎么拒绝的
另外根据打印内容,猜测对应图层没有持仓,所以平失败
不是打印失败,是以执行data[i].Sell(data[i].CurrentContracts,10)语句的结果来决定打印出来的内容。当执行结果为false时,就执行Print("平空失败");
“实际委托里怎么拒绝的”,这也是我想向老师请教的内容。
“另外根据打印内容,猜测对应图层没有持仓,所以平失败”,从 Print("平仓前"+data[i].Symbol+"有"+text(data[i].CurrentContracts)+"手");语句执行的结果就可以看出,该期权是有持仓的,从工作区上也可以看该期权有持仓。
你用的是buysell指令,平仓前依靠图表上的持仓,你截图的只是账户持仓
这不是账户持仓,就是图表持仓。
图表持仓的话 你看你后面没有出现sell信号
另外你可以拿出IF来看看
我知道没有出现sell信号,这正是我的问题啊😅.............执行了sell命令,但执行结果却是false,然后print出了“平仓失败”的结果
拿出if来看啥?那个sell命令我之前是单独执行的,但发现currentContracts一直为2,说明执行失败。所以特地把执行结果放到 if语句中,根据其执行结果是true还是false,打印出不同的文字进行判断。
您能告诉我在主帖中的问题:sell函数执行失败的原因可能有哪些?