开平仓函数给出的信号价格与传入的参数有误差是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获取的建仓价出现以上误差
请问应该如何避免?谢谢


复权后映射真实价格与不映射的误差
请问老师,有指定价格的函数吗
回测报告的平仓价格与实盘交易的平仓价格相差太大。请问如何解决?
a函数平仓如何套利合约的持仓价格
如何在正确的在用户函数中传入数组
请问确认上一个交易信号是开入开仓还是卖出平仓用哪个函数??
有获取指定合约的最新价格的方法吗
自动交易中,开仓时发出的委托价格总比成交价格大10跳,是正常的吗?
MACD与KDJ结合的开平仓与信号控制问题
期货指数000 在回测的时候,进行开仓和平仓用的价格是指数加权价格,还是用的当前主力价格?

首先第一个 text是有输出精度的

第二个 信号价格也是有精度的,这个精度是最小跳动

因为你这里给出的信息很有限,我只能做出一些推测

比如第一个情况,price = 3837.9 sellshort是3837.8 这个可能就是因为你这个品种的最小跳动是0.2,不可能存在0.9这种小数,然后卖出所以向下取整到0.2跳,就变成了3837.8

第二个情况可能是price实际是浮点数,精度是4625.9999,这个数字按整数四舍五入确实是4626,但是如果按卖出信号向下取整的规则,那就是4625.8

具体是不是以上原因还要用更新的信息去确认,目前为止只能推测到这里

你是不是因为后复权导致的精度问题

建议发一个能复现的环境,否则很难定位到问题