MarketPosition() 获取到的状态不对

onbar{ .... range{ .... Print("开仓之前=" + Text(Date) + ",方向="+Text(MarketPosition())+", 合约=" + codePro.symbol + ", 当前持仓品种数=" + Text(symbolCount) +"最大持仓数=" + Text(MaxOpenSymbols)); ------- Print("开空之前时间=" + Text(Date) + ",方向="+Text(MarketPosition())+", 合约=" + codePro.symbol + ", 当前持仓品种数=" + Text(symbolCount) +"最大持仓数=" + Text(MaxOpenSymbols)); tradeReturn=SellShort(Lots,Close); if(tradeReturn) { if(MarketPosition() <> 0) { symbolCount = symbolCount + 1; } Print("[开空] 时间=" + Text(Date) + ",方向="+Text(MarketPosition())+", 合约=" + codePro.symbol + ", 当前持仓品种数=" + Text(symbolCount) +"最大持仓数=" + Text(MaxOpenSymbols)); } Else { Print("[开空] 失败 时间=" + Text(Date) + ",方向="+Text(MarketPosition())+", 合约=" + codePro.symbol + ", 当前持仓品种数=" + Text(symbolCount) +"最大持仓数=" + Text(MaxOpenSymbols)); }代码 163行对应的LOG 327行的打印,可以看到 开空成功了 MarketPosition() 为-1,但是下一个onbar的时候 MarketPosition() 就变成0了,LOG 328之后的打印对应的代码100行。 中间没有平仓过程如果有的话会打印出来的

发可复现的代码demo可以不是你的原文,你可以精简,但是必须是要能复现这个现象的

回复:老师很厉害,在一个品种的时候 总是能正常运行,但是 多品种的情况下 就会有问题,我会写一个demo然后 说明复现路径

回复:老师 demo已经 提供 一定会出现的问题 https://bbs.tbquant.net/thread/20250616152306846672 帮忙看一下 感谢

所以让你用全局数组自己统计嘿嘿

这是底层机制

回复:不合理但理解他接受他合理应用

回复:什么意思, 是什么机制导致的不一样