策略不循环

程序循环一次后就不再继续循环,麻烦老师给改一下,先给解决这个问题,程序后续还会加入委托撤单的条件。Params Numeric Length1(5); Numeric Length2(90); Numeric jiaoyishoushu(1); //建仓数量 Numeric WinStopLength(2); //平仓跳数 Vars Global Integer sendCount(0); //变量 Global Integer fillCount(0); //变量 Numeric mairuPrice; //多单开仓价 Numeric WinStopPrice; //多单平仓价 Series<Numeric> EMAValue1; Series<Numeric> DbEMAValue1; Series<Numeric> TEMAValue1; Series<Numeric> EMAValue2; Series<Numeric> DbEMAValue2; Series<Numeric> TEMAValue2; Events OnReady() { //根据操作源订阅委托 Bool ret = A_SubscribeTradeByCreateSource(A_GetOrderCreateSource); Print("A_SubscribeTradeByCreateSource:" + IIFString(ret, "True", "False")); } OnBar(ArrayRef<Integer> indexs) { //计算三重平滑均线 Range[0:DataSourceSize() - 1] { EMAValue1 = XAverage(Close,Length1); DbEMAValue1 = XAverage(EMAValue1,Length1); TEMAValue1 = XAverage(DbEMAValue1,Length1); EMAValue2 = XAverage(Close,Length2); DbEMAValue2 = XAverage(EMAValue2,Length2); TEMAValue2 = XAverage(DbEMAValue2,Length2); PlotNumeric("EMA1",TEMAValue1); PlotNumeric("EMA2",TEMAValue2); } if(BarStatus == 2 && sendCount == 0 && Q_Last > TEMAValue1 ) //如果(当前bar为最后一根bar & 变量sendCount = 0 && 最新价 > 均线1 ) { //发开仓单 mairuPrice = TEMAValue1 - (WinStopLength*MinMove*PriceScale); Array<Integer> orders; //整数型变量名称 //账户下单操作 Bool ret = A_SendOrderEx(Enum_Buy, Enum_Entry, jiaoyishoushu, mairuPrice, orders, "", A_GetOrderCreateSource); //布尔型变量ret=账户下单(买入,开仓,1手,最新买盘价格,变量名称,将数组转为字符串,获取报单源名称 Print("Buy,A_SendOrderEx:" + IIFString(ret, "True", "False") + "," + TextArray(orders)); //提示信息(多头建仓是否成功) if(ret) { sendCount = sendCount + 1; } } if(BarStatus == 2 && sendCount > 0 && sendCount <= fillCount ) //如果(当前bar为最后一根bar && 变量sendCount > 0 && 变量sendCount <= 变量fillCount) {//发平仓单 WinStopPrice = TEMAValue1 + (WinStopLength*MinMove*PriceScale); Array<Integer> orders; //账户下单操作 Bool ret = A_SendOrderEx(Enum_Sell, Enum_Exit, jiaoyishoushu, WinStopPrice, orders, "", A_GetOrderCreateSource); //布尔型变量ret=账户下单(卖出,平仓,1手,最新卖盘价格,变量名称,将数组转为字符串,获取报单源名称 Print("Sell,A_SendOrderEx:" + IIFString(ret, "True", "False") + "," + TextArray(orders)); //提示信息(多头平仓是否成功) sendCount = -1; } } OnFill(FillRef ordFill) { fillCount = fillCount + 1; Print("fillCount:" + Text(fillCount)); }

完整模型结构分析,要么付费代写业务,要么看置顶直播投稿