为什么该A函数代码,在执行时,一直触发挂单,跟官网教程的也一样,软件有bug

Params Numeric FastLength(5);// 短期指数平均线参数 Numeric SlowLength(20);// 长期指数平均线参数 Numeric lots(1); //手数 Vars Series<Numeric> AvgValue1; Series<Numeric> AvgValue2; Global Bool trade_mark; Events OnBarOpen(ArrayRef<Integer> indexs) { trade_mark =True; } OnBar(ArrayRef<Integer> indexs) { AvgValue1 = AverageFC(Close,FastLength); AvgValue2 = AverageFC(Close,SlowLength); PlotNumeric("MA1:", AvgValue1); PlotNumeric("MA2:", AvgValue2); If(AvgValue1[1] <= AvgValue2[1] && AvgValue1 > AvgValue2 && trade_mark) { Array<Integer> orderids; A_SendOrderEx(Enum_Buy, Enum_Exit, 1, Q_AskPrice, orderids); Print("[" + Text(Time) + "]" + "平空"); A_SendOrderEx(Enum_Buy, Enum_Entry, 1,Q_AskPrice, orderids); Print("[" + Text(Time) + "]" + "开多"); trade_mark =False; } //开空 If(AvgValue1[1] >= AvgValue2[1] && AvgValue1 < AvgValue2 && trade_mark) { Array<Integer> orderids; A_SendOrderEx(Enum_Sell, Enum_Exit,1 ,Q_BidPrice, orderids); Print("[" + Text(Time) + "]" + "多平"); A_SendOrderEx(Enum_Sell, Enum_Entry,1 ,Q_BidPrice, orderids); Print("[" + Text(Time) + "]" + "开空"); trade_mark =False; } }

只要满足条件了就会发单,最新的K线上实时运行是每个tick运行一次,每次运行都满足发单条件,就不停地发单。一直发单就是你的发单条件没有控制好,挂单是因为发单价格不合理或者交易的合约不活跃。

回复:OnBarOpen(),盘中每个 Tick 都会触发吗?不然我真的想不到上面代码什么问题。按理来说每根K线就交易操作一次,trade_mark就会阻止重复发单了。

回复:而且,我这个代码跟你们官网教程一样

回复:而且,都没有达到交叉提交,开启就直接一直买入

回复:我这边测试了并不会开启就买入,您是不是从官网上复制代码到软件里面复制出错了,检查一下代码是不是有缺失或者不同的地方。

回复:一模一样的代码,是不是开了交易助手的原因,反复撤单报单

回复:应该是的,如果发单没有成交,确实会被交易助手撤单重发

回复:我试了,还是直接开启自动交易就开始疯狂成交,连金叉死叉条件都没有达到?这个是什么bug