请老师帮忙看下

为什么下面的代码在图表上有错误划线?OnBar(ArrayRef<Integer> indexs) { minpiont =MinMove*pricescale; ma = Average((high+low+close+close[1])/4,malength); PlotNumeric(ma,ma); If(CurrentBar == 0) { my_upper = high; my_dnper = low; tem = 0; }Else { If(tem<= 0) { If(high > my_high) { my_high = high; } If(Low<=my_high*(1-mylength/100)) { my_upper = my_high; my_high = 0; tem = 1; PlotNumeric(高低点,my_upper); } } If(tem>=0) { If(low<my_low) { my_low = low; } If(high>=my_low*(1+mylength/100)) { my_dnper = my_low; my_low = 999999; tem = -1; PlotNumeric(高低点,my_dnper); } } } Commentary(my_upper:+text(my_upper)); Commentary(my_dnper:+text(my_dnper)); //PlotNumeric(my_upper,my_upper); //PlotNumeric(my_dnper,my_dnper);

Params //此处添加参数 Numeric huisuzhi(20); Numeric malength(120); numeric mylength(2);Vars //此处添加变量 Numeric minpiont; Numeric tem; series<Numeric> ma; series<Numeric> my_high(0); series<Numeric> my_low(999999); series<Numeric> my_upper; series<Numeric> my_dnper; Defs //此处添加公式函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() {//与数据源有关 Range[0:DataCount-1] { //=========数据源相关设置============== AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权 //AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格 //AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓 //AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算 //AddDataFlag(Enum_Data_OnlyDay()); //设置仅日盘 //AddDataFlag(Enum_Data_OnlyNight()); //设置仅夜盘 //AddDataFlag(Enum_Data_NotGenReport()); //设置数据源不参与生成报告标志 //=========交易相关设置============== SetMarginRate(0.12); //设置保证金率为10% SetCommissionRate(Enum_Rate_ByFillAmount,1.5); //设置手续费率为成交金额的1.5%% SetSlippage(Enum_Rate_PointPerHand,1); //设置滑点为2跳/手 SetOrderPriceOffset(1); //设置委托价为叫买/卖价偏移2跳 SetOrderMap2MainSymbol(); //设置委托映射到主力 //SetOrderMap2AppointedSymbol(symbols, multiples); //设置委托映射到指定合约,symbols是映射合约数组,multiples是映射倍数数组 } //与数据源无关 //SetBeginBarMaxCount(10); //设置最大起始bar数为10 //SetBackBarMaxCount(10); //设置最大回溯bar数为10 //=========交易相关设置============== SetInitCapital(100000); //设置初始资金为10万 //AddTradeFlag(Enum_Trade_Ignore_Buy()); //设置忽略多开 //AddTradeFlag(Enum_Trade_Ignore_Sell()); //设置忽略多平 //AddTradeFlag(Enum_Trade_Ignore_SellShort()); //设置忽略空开 //AddTradeFlag(Enum_Trade_Ignore_Buy2Cover()); //设置忽略空平 } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { minpiont =MinMove*pricescale; ma = Average((high+low+close+close[1])/4,malength); PlotNumeric(\"ma\",ma); If(CurrentBar == 0) { my_upper = high; my_dnper = low; tem = 0; }Else { If(tem<= 0) { If(high > my_high) { my_high = high; } If(Low<=my_high*(1-mylength/100)) { my_upper = my_high; my_high = 0; tem = 1; PlotNumeric(\"高低点\",my_upper); } } If(tem>=0) { If(low<my_low) { my_low = low; } If(high>=my_low*(1+mylength/100)) { my_dnper = my_low; my_low = 999999; tem = -1; PlotNumeric(\"高低点\",my_dnper); } } } Commentary(\"my_upper:\"+text(my_upper)); Commentary(\"my_dnper:\"+text(my_dnper)); //PlotNumeric(\"my_upper\",my_upper); //PlotNumeric(\"my_dnper\",my_dnper); If(high>my_upper and MarketPosition <> 1 and my_upper > ma[1]) { buy(1,max(open,my_upper+minpiont)); } If(low<my_dnper and MarketPosition <> -1 and my_dnper < ma[1]) { SellShort(1,min(open,my_dnper-minpiont)); } If(MarketPosition == 1 and low<my_dnper and BarsSinceEntry>0) { sell(0,min(open,my_dnper-minpiont)); } If(MarketPosition == -1 and high >my_upper and BarsSinceEntry>0) { BuyToCover(0,Max(open,my_upper+minpiont)); } }

回复:tem改成序列变量

代码不完整