请教各位老师关于卖1价即时成交的问题

我想写一个卖一价不超过我设定的最高价格才成交的策略,但是我发现市场上挂单价格明明符合,却策略却不发生成交,直到市场发生交易后,我的策略才能发生交易,请问是什么原因呢

部分主要代码如下:

If(BarStatus == 2 And Q_AskPrice() <= maxPrice And myCount < maxCount And sendOrderCount == 0 and mylimit == 1)

{

Array<Integer> buyorders;

           //账户下单操作

           Bool ret1 = A_SendOrderEx(Enum_Buy, Enum_Entry, 1, Q_AskPrice(), buyorders, "", A_GetOrderCreateSource);

           Print("Buy,A_SendOrderEx:" + IIFString(ret1, "True", "False") + "," + TextArray(buyorders));

           If(ret1)

           {

sendOrderCount = 1;

           }

           //创建5秒的定时器

           cancelId1 = createTimer(5000);

}


另外,市场没发生交易时,我的委托好像还发出失败了,print的结果是:Buy,A_SendOrderEX:False,[]

这到底是什么原因呢?还是我代码逻辑上有问题

关于申买申卖成交的问题
向各位大佬请教关于平仓反手的问题
关于偷价的问题
Q_askPrice和bidask1.ask 哪个是实时行情中的卖一价
请教各位代码问题
请教老师关于000和888的使用问题
回测时如何取得买一价和卖一价
请问老师,Buy(1,10.5);开多单命令的执行机制,是市价成交?,还是对手价成交?还是必须价格在10.5的时候成交
请教老师,关于套利,自己系统如何与帮助中的代码结合
问一个行情数据问题,所有行情都有卖1,卖2吗?

先单独验证你写的语句能不能发单

A_SendOrderEx(Enum_Buy, Enum_Entry, 1, Q_AskPrice(), buyorders, "", A_GetOrderCreateSource);

再研究你的条件能不能发单

If(BarStatus == 2 And Q_AskPrice() <= maxPrice And myCount < maxCount And sendOrderCount == 0 and mylimit == 1)


可以发单的,就是在一个不活跃市场里,要市场出现真实交易时才能发单成功和交易成功,所以想了解了解是不是存在一个如果没有交易数据流就会导致不能发出委托的交易机制,以及如何解决的办法

有真实交易才会有tick推送

而发送委托不需要任何行情

所以你要考虑两边的权衡问题

关于发出委托不需要行情,我找了个交易极其不活跃的品种试验了以下不要条件就开仓的代码,发现并不如老师你说的那样,还是没有真实交易就不发出委托,请问是不是我的代码有问题呢?

If(BarStatus == 2)

{

Array<Integer> buyorders;

           //账户下单操作

           Bool ret1 = A_SendOrderEx(Enum_Buy, Enum_Entry, 1, Q_AskPrice(), buyorders, "", A_GetOrderCreateSource);

           Print("Buy,A_SendOrderEx:" + IIFString(ret1, "True", "False") + "," + TextArray(buyorders));

           //创建5秒的定时器

           cancelId1 = createTimer(5000);

}