A_SendOrderEx总是返回False

//代理信号事件,该事件会接管当前策略单元的所有信号,用户要在该事件内处理要不要发单。 OnSignal(ArrayRef<Signal> sigs) { //只有实时行情的Bar才处理发单 If( BarStatus<>2 ) return; Integer i; Integer j; Bool ret = False; String Type; Numeric ordPrice = 0; //查询指定合约的最新Tick Tick tickData; Array<Integer> orderIds; //遍历所有信号 For i = 0 To GetArraySize(sigs) - 1 { SignalRef sig = sigs[i]; //历史信号不处理 If( BitHas(sig.flag,Enum_Signal_History) ) continue; //不是实时行情,不处理 If( BitHas(QuoteStatus,Enum_QuoteStatus_RealTime)==False ) Continue; ret = GetTick( ActiveSymbol, tickData ); If( sig.side==Enum_Buy ) { type = \"买\"; ordPrice = tickData.bidask1.askP+1; } Else If( sig.side==Enum_Sell ) { type = \"卖\"; ordPrice = tickData.bidask1.bidP-1; } Range[j=0:A_AccountCount()-1] { ret = A_SendOrderEx(RelativeSymbol,sig.side,sig.combOffset,sig.volume,ordPrice,orderIds,\"主力发单\",A_GetOrderCreateSource(),j); Print(\"OnSignal \"+\"账户\"+Text(j)+\" \"+ActiveSymbol+\" \"+type+\" 价格=\"+Text(ordPrice)+\" 手数=\"+Text(sig.volume)+ IIFString(ret, \" 成功\", \" 失败\")); Print(\"OnSignal \"+\"GetArraySize(orderIds)=\"+Text(GetArraySize(orderIds))); } } }上面代码A_SendOrderEx执行后总是返回失败,orderIds没有内容,请问可能是什么原因?

对,我的辅助K线图是橙色脸。橙色脸和绿脸区别在哪儿,和代码有关系吗,或怎么通过系统界面设置?

账户在界面关联了,代码也显示关联成功;开启自动交易虽然返回False但账户交易成功,请问A_SendOrderEx发单必须依靠自动交易来完成账户交易吗?

回复:我猜测,你是用策略交易的交易单元运行的a函数,然后打开了辅图k线,看到辅图k线上print了false,是吗?

回复:是的。我现在没办法,就不管他返回值了,反正自动交易模式下,交易是正常的,委托后的处理就交给交易助手吧

回复:你看到的false,是辅图k线的公式回报的结果。这个辅图的脸应该不是绿脸。你看到的成功的报单,是策略单元的执行结果。两边不是一回事。辅图并不是展示策略单元,而是以策略单元的参数配置重新新建一个k线图表,等于说克隆一个。所以如果你辅图k线如果也启动自动交易,变成绿脸,就变成双份报单了。

回复:您的意思是说,实际交易成交是交易助手接管理论信号的执行结果,代码里接管信号发出的A函数还是失败的?

回复:你这个概念好像有点混乱嘛你这里用a函数报单,跟交易助手无关,跟信号也无关,你的问题我都看不懂a函数执行完,如果符合报单状态并成功执行了报单业务操作,就返回true,这个时候账户的委托列表里必定会生成一个单子如果返回false,那委托列表里就没有,大概率是因为没启动自动交易或者账户没关联。右上方的脸是表示当前自动交易状态的一个标志,具体建议去帮助中心查看一下对应的状态说明。另外,建议跟着官方的0基础教学视频先掌握基础常识,否则无法有效沟通

回复:好的,谢谢您的耐心回答,我再仔细看看教程!

回复:确实之前概念比较混乱,现在明白了,辅助K线因没有自动交易所以返回False,量化看盘里日志是正常的。

sendorder返回false一般是没有关联账户或者没开启自动交易

补充一下测试过程: 在策略交易中,策略单元加载000指数,绑定TB模拟账户,此操作正确; 发单的合约ActiveSymbol是获取到的主力合约代码,订阅了主力Tick数据且获取正确; 策略运行模式我分别测试了自动交易和不自动交易两种情况:启动自动交易情况,账户下单及成交正常,但自己写的发单代码A_SendOrderEx返回False;不选择自动交易仅启动策略,A_SendOrderEx也返回False,且账户没有发生任何交易。