多图层期权合约平仓失败

策略目的是想将常用的期货策略转为期权策略,所以订阅了多个期权图层,满足不同条件时对不同的期权合约进行交易。

但编写期权程序的时候却发生了异常,开仓能成功,但平仓失败。

请老师sell函数执行失败的原因可能有哪些?

代码如下:

图层data4开始都是期权图层,我把执行sell函数之前和之后的currentcontracts都打印出来,发现没有变化,都为2。然后尝试判断sell函数的执行结果,确实为false,打印出“平空失败”的提示。打印结果如下:

订阅的合约如下图:

1、请老师告知sell函数执行失败的原因可能有哪些?

2、是否用A函数直接对指定合约发单和平仓较订阅众多期权合约更为高效?

多图层问题
自动平仓失败
多图层
遍历期权图层,引用symbol时仍是0号图层的品种代码,要如何解决
在多图层主连合约和指数合约里如何获取某个合约的持仓量?
请教!关于多品种,跨周期,多图层
A_SellOrder()函数平仓下单失败
获取合约属性失败
期权合约和期货合约的映射
关于多图层策略

打印失败?不能作为判断

实际委托里怎么拒绝的

另外根据打印内容,猜测对应图层没有持仓,所以平失败

不是打印失败,是以执行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函数执行失败的原因可能有哪些?