开平仓函数给出的信号价格与传入的参数有误差是bug吗?

当SetTradeSide(1)允许双向持仓的情况下,经过反复测试在调用大量回测的时,以下代码 Commentary("set MyPrice = " + Text(MyPrice)); SellShort(Lots,MyPrice); 时不时会出现以下的输出情况: #set MyPrice = 3837.9 SellShort 4@3837.8 传入函数的价格会和建仓信号的价格存在+/-0.1~0.2的误差 策略单元设置滑点为0且MyPrice没有超出当前bar范围 如果使用Round()函数将MyPrice取整,出现类似情况的概率有所下降,但是偶尔还是会有: #set MyPrice = 4626 SellShort 4@4625.8 实测Buy/BuyToCover/Sell函数也有类似情况 因为以上原因,如果使用自建的序列变量存储MyPrice,会和EntryPrice获取的建仓价出现以上误差 请问应该如何避免?谢谢

首先第一个 text是有输出精度的第二个 信号价格也是有精度的,这个精度是最小跳动因为你这里给出的信息很有限,我只能做出一些推测比如第一个情况,price = 3837.9 sellshort是3837.8 这个可能就是因为你这个品种的最小跳动是0.2,不可能存在0.9这种小数,然后卖出所以向下取整到0.2跳,就变成了3837.8第二个情况可能是price实际是浮点数,精度是4625.9999,这个数字按整数四舍五入确实是4626,但是如果按卖出信号向下取整的规则,那就是4625.8具体是不是以上原因还要用更新的信息去确认,目前为止只能推测到这里

你是不是因为后复权导致的精度问题建议发一个能复现的环境,否则很难定位到问题