Vars
Global Integer sendCount(0);
Events
OnBar(ArrayRef<Integer> indexs)
{
if(BarStatus == 2 && sendCount <= 2)
{//发开仓单
Array<Integer> orders;
//指定账户指定合约开多头单
Bool ret = A_Buy(Symbol, 1, Q_AskPrice, orders, "", "");
//Bool ret = Buy(1, Q_AskPrice,0);
Commentary("A_Buy:" + IIFString(ret, "True", "False") + "," + TextArray(orders));
if(ret)
{
sendCount = sendCount + 1;
Commentary("true");
Bool ret = FileAppend("C:\\aaa.txt", "true"+Text(Close),True);
Print("FileAppend:" + IIFString(ret, "True", "False"));
}Else
{
Commentary("false");
Bool ret = FileAppend("C:\\aaa.txt", "false"+Text(Close),True);
};
}
if(sendCount <= 2)
{
Print("-----------");
}Else{Print("==========");};
Commentary("sendCount"+Text(sendCount));
}
以上代码在A_Buy一直返回false,后续的打印sendCount一直是0,但是实际上成交了3手,后续便没有继续发单,与sendCount <= 2又是一致的
第一,a函数要执行成功需要两个条件,分别是在最新的实时bar上和必须启动自动交易
第二,实际成交了3手,你能100%确定是a函数发单的吗?按照你目前给的这些东西,无法确认
两点都能确认


我只能说,如果你都能确认,那就是bug了
请提交一份能复现这个问题的demo
问题里面的代码就是整个策略的代码了,本来就是在测试这个问题。新建策略单元,应用公式,开启自动运行策略就可以复现。版本v1.1.4.6
那明天盘中测试一下看看。