一个下单写法请教老师们,感谢(实时发单的条件没有运行成功)

老师们好,想实现一个简单的实盘下单策略如下: (ru2107买1价 - ru2105卖1价 小于150时; ru2107买价+一跳挂单;) 目前写法如下: Params //此处添加参数 String SymbolA("ru2107.SHFE"); String SymbolB("ru2105.SHFE"); Numeric StopPrice(150); Vars //此处添加变量 Integer cnt(0); //账户个数 Integer i(0); //遍历数组 Integer j(0); //遍历数组 Integer nstatus(0); Integer ncount(0); Numeric MinPoint; // 一个最小变动单位,也就是一跳 Numeric MyEntryPrice; // 开仓价格 Tick tickdata; Global Integer K; Global Array<Tick> lastTickData; // 缓存的最新 Tick 数据 Global Array<bool> tickDataValid; // Tick 数据是否有效标识 Global Bool dataReady; // 检查数据是否正确的标识 Defs //确认tick数据有效 bool CheckTickData(TickRef tickData) { /* Commentary("symbol="+tickData.symbol); //合约名 Commentary("time="+text(tickData.datetime)); //时间 Commentary("AskPrice="+text(tickData.bidask1.askP)); //申卖价 1 Commentary("AskVol="+text(tickData.bidask1.askV)); //申卖量 1 Commentary("BidPrice="+text(tickData.bidask1.bidP)); //申买价 1 Commentary("BidVol="+text(tickData.bidask1.bidV)); //申买量 1 Commentary("Last="+text(tickData.last)); //现价 Commentary("Open="+text(tickData.open)); //开盘价 Commentary("High="+text(tickData.high)); //最高价 Commentary("Low="+text(tickData.low)); //最低价 Commentary("Volume="+text(tickData.volume)); //现手 Commentary("TotalVolume="+text(tickData.totalVolume)); //总成交 Commentary("---------------separator---------------"); */ If(tickData.last > 0 && tickData.totalVolume > 0) Return True; Else Return False; } Events //初始化事件函数,订阅2个合约 OnInit() { SubscribeBar(SymbolA,"tick"); SubscribeBar(SymbolB,"tick"); A_SubscribeTradeByCreateId(Enum_Trade_Source_ALL);//订阅账户的所有委托,默认只触发本策略发出的委托 } OnBar(ArrayRef<Integer> indexs) { For k=0 To GetArraySize(indexs)-1 { Data[indexs[k]].GetTick(tickdata); if(CheckTickData(TickData)) { tickDataValid[indexs[k]] = True; lastTickData[indexs[k]] = TickData; } } dataReady = True; For k=0 To DataCount-1 { If(!tickDataValid[indexs[k]]) { dataReady = False; Break; } } if (lastTickData[0].bidask1.bidP-lastTickData[1].bidask1.askP > StopPrice) { MinPoint = MinMove*PriceScale; MyEntryPrice = Q_BidPrice+MinPoint; Data0.A_SendOrder(Enum_Buy,Enum_Entry,1,MyEntryPrice); } } 问题1 :下面这个条件,ru2107买1价 - ru2105卖1价 小于150时挂单,在运行程序的时候,这个条件不满足也会自动挂单,请问原因和程序问题在哪里呢?感谢老师! if (lastTickData[0].bidask1.bidP-lastTickData[1].bidask1.askP > StopPrice) 问题2 :请问老师,A_SendOrder实时发单会满足条件后不停地发单,请问怎么样可以实现一次只发一个单

这个一时半会儿给不出解答 关于模型开发工作是一项很系统化的工作 论坛里只能回答零散的语法或者简单实例