各位老师:
请教一下,程序中我使用了bool ok = A_SendOrderEx(Enum_Buy, Enum_Entry, gL_TargetQty, px, ids, "", ""),出现了已经成交并持仓,但A_SendOrderEx函数的返回值为false的情况,如果是false的话,不是意味着发单没有成功么?既然没有把单子发出去,那为何又成交了呢?有点费解。麻烦有经验的老师帮忙看一下可能得原因以及怎么解决?感谢!
https://bbs.tbquant.net/thread/forum11688 这篇帖子中讨论了同样的问题,但我是没有完全理解,求老师们指点。大概意思是因为“策略单元自动交易模式”和“辅助K线图表”区别引起的。
不在辅助K线上看结果
单独在K线上加载策略,交易或者模拟交易看看,看看打印结果是不是true
如果是,那就是这个帖子一样的问题:https://bbs.tbquant.net/thread/20250724103631701104
里面这个解释应该是挺清楚的

我在有图标的自动交易里试了一下,发现可以正常执行,返回的是true,并且执行了iF true里的代码段
所以结论就是,如果是测试公式,那还是要在图表自动交易里去做,跑通之后,再可以选择在策略单元里跑实盘,我说的对么
你能保证你说的这个false是你说的那个成交的单子返回的吗?
老师,我这边是单图层单策略的执行,然后找到成交的那个时间print了一下以下语句,返回的是“下单失败”,那是不是至少说明ok不是true。
ok = A_SendOrderEx(Enum_Buy, Enum_Entry, gL_TargetQty, px, ids, "", "");
if (ok){ // 执行 }
else
{
// 执行
Print("下单失败");
}