请指教定义bar的表述是不是有问题?

Params
     Numeric SLength(200);         
    Numeric FastLength(12);  
    Numeric SlowLength(26);
    Numeric MACDLength(9); 
    Numeric NearMAPer(2); 
        Numeric Lots(1);    
        Numeric StartPer3(10); //3级跟踪止盈,盈利6%启动
    Numeric StopPer3(10);  //3级跟踪止盈,盈利回撤10%触发          
    Numeric StartPer2(2); //3级跟踪止盈,盈利2%启动
    Numeric StopPer2(2);  //3级跟踪止盈,盈利回撤2%触发
    Numeric a;
Vars  
     Bool BuyEntry1(False);    
    Bool SellEntry1(False);
    NumericSeries MA1;
    NumericSeries MACDValue;  
    NumericSeries AvgMACD;
    NumericSeries MACDDiff;        
    NumericSeries HighestAfterEntry;        // 开仓后出现的最高价
    NumericSeries LowestAfterEntry;         // 开仓后出现的最低价
    NumericSeries BarsEntry;
    
Begin    
    MA1 = AverageFC(Close,SLength);    
    MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;    
    AvgMACD = XAverage(MACDValue,MACDLength);
    MACDDiff = MACDValue - AvgMACD;    
    BarsEntry = BarsSinceEntry;
    HighestAfterEntry = Highest(High,BarsSinceEntry); 
    LowestAfterEntry = Lowest(low,BarsSinceEntry);
     If(MarketPosition==1 && BarsSinceLastEntry>0) Commentary("开仓后最大盈利比率:"+Text((HighestAfterEntry[1]-LastEntryPrice)/LastEntryPrice*100)+"%");
     If(MarketPosition==-1 && BarsSinceLastEntry>0) Commentary("开仓后最大盈利比率:"+Text((LastEntryPrice-LowestAfterEntry[1])/LastEntryPrice*100)+"%");
   //记录开仓后高低点
    If(BarsSinceentry == 0)
    {
        HighestAfterEntry = High;
        LowestAfterEntry = Low;
    }
    else
    {
        HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
        LowestAfterEntry = Min(LowestAfterEntry,Low);    // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
        Commentary("持仓k线数量:"+Text(BarsEntry[1]));    
    }     

   //主体程序
     //开仓方式1:
    BuyEntry1 = MACDValue[1] > AvgMACD[1] && MACDValue[1]> 0 && c[1] > MA1[1] ;   
    SellEntry1 = MACDValue[1] < AvgMACD[1]  && MACDValue[1]< 0 && c[1] < MA1[1]  ;  

    If((MarketPosition == -1&& BuyEntry1 && BarsSinceEntry > a) || (MarketPosition == 0 && BuyEntry1))
    { 
        Buy(lots,Open);  
    }

    If((MarketPosition == 1 && SellEntry1 && BarsSinceEntry > a) || (MarketPosition == 0 && SellEntry1 ))
    {
        SellShort(lots,Open);
    }
 //止盈
     If(MarketPosition==-1 && BarsSinceLastEntry>0 && LowestAfterEntry[1]<=LastEntryPrice*(1-0.01*StartPer3)  && High>=LowestAfterEntry[1]+(LastEntryPrice-LowestAfterEntry[1])*0.01*StopPer3) 
    {
        BuyToCover(0,Max(Open,LowestAfterEntry[1]+(LastEntryPrice-LowestAfterEntry[1])*0.01*StopPer3));
        Commentary("最大盈利达到"+Text(StartPer3)+"%之后盈利回撤"+Text(StopPer3)+"%平空");
    }
    If(MarketPosition==1 && BarsSinceLastEntry>0 && HighestAfterEntry[1]>=LastEntryPrice*(1+0.01*StartPer3) && Low<=HighestAfterEntry[1]-(HighestAfterEntry[1]-LastEntryPrice)*0.01*StopPer3) 
    {
        Sell(0,Min(Open,HighestAfterEntry[1]-(HighestAfterEntry[1]-LastEntryPrice)*0.01*StopPer3));
        Commentary("最大盈利达到"+Text(StartPer3)+"%之后盈利回撤"+Text(StopPer3)+"%平多");
    }    
    //止损
    If(MarketPosition==-1 &&  BarsSinceLastEntry>0 && LowestAfterEntry[1]>=LastEntryPrice*(1-0.01*StartPer2) && High>=LowestAfterEntry[1]*(1+StopPer2*0.01)) 
    {
        BuyToCover(0,Max(LowestAfterEntry[1]*(1+StopPer2*0.01),Open));
        Commentary("最大盈利不超过"+Text(StartPer2)+"%之后回撤"+Text(StopPer2)+"%平空");
    }
    If(MarketPosition==1 && BarsSinceLastEntry>0 && HighestAfterEntry[1]<=LastEntryPrice*(1+0.01*StartPer2) && Low<=HighestAfterEntry[1]*(1-StopPer2*0.01)) 
    {
        Sell(0,Min(HighestAfterEntry[1]*(1-StopPer2*0.01),Open));
        Commentary("最大盈利不超过"+Text(StartPer2)+"%之后回撤"+Text(StopPer2)+"%平多");
    }    
    
//画线
PlotNumeric("MA1",MA1);  
    
End

请高手指教
我这个策略很难成交是不是委托价格有问题
交易单元一启动立刻就用A函数获取信息是不是有问题?
帮忙看看这个代码是不是有问题?
请老师指教信号闪烁的问题
请指教:套利合约模拟交易真实的交易时间和价格与图表差距太大?
调用自定义函数
自定义函数调用问题
关于on bar 的问题
我在均线编程测试时发现一个问题,每当多定义一根均线后(仅仅是定义,还未画图),原来收益结果,就会产生改变。求指教!!!

好的,我发个图片

上来就是一大堆代码,没人会有耐心研究的,

起码把 哪里觉得不对,为什么不对,实际的实例展示一下

 

怎么添加不了图片啊?