超简单的均线策略,也能给我闪烁,为什么啊啊啊

//------------------------------------------------------------------------

// 简称: MA_Offset_Strategy

// 名称: 基于5日均线偏移的买卖策略(带止损)

// 类别: 公式应用

// 类型: 用户应用

// 输出: Void

//------------------------------------------------------------------------


Params

   Numeric Lots(3);           // 每次交易手数

   Numeric OffsetBuyIn(6);        // 偏移点数

   Numeric OffsetSellIn(6);

   Numeric OffsetSellCover(6);        // 偏移点数

   Numeric OffsetBuyCover(8);        

   Numeric StopLoss(10);       // 止损点数


Vars

   Numeric MA5;               // 5日均线

   Numeric BuyInLevel;          // 买入价格

   Numeric SellCoverLevel;         // 卖出价格

   Numeric SellInLevel;        // 做空价格

   Numeric BuyCoverLevel;        // 平空价格

   Numeric EntryPrice;        // 开仓价(用于止损计算)


Events

   OnInit()

   {

       Commentary("基于5日均线偏移的买卖策略启动(带止损)");

   }


   OnBar(ArrayRef<Integer> indexs)

   {

       MA5 = Average(Close, 5);

       BuyInLevel = MA5 - OffsetBuyIn;

       SellCoverLevel = MA5 + OffsetSellCover;

       SellInLevel = MA5 + OffsetSellIn;

       BuyCoverLevel = MA5 - OffsetBuyCover;


       // 开仓

       if (MarketPosition == 0)

       {

if (High >= SellInLevel)

{

SellShort(Lots, SellInLevel);

EntryPrice = SellInLevel;

Commentary("做空开仓,价格:" + Text(SellInLevel));

}

if (Low <= BuyInLevel)

{

Buy(Lots, BuyInLevel);

EntryPrice = BuyInLevel;

Commentary("做空开仓,价格:" + Text(BuyInLevel));

}

}


       // 持有多仓时

       if (MarketPosition == 1)

       {

           // 原有平仓逻辑

           if (High >= SellCoverLevel)

           {

               Sell(Lots, SellCoverLevel);

               Commentary("卖出平多,价格:" + Text(SellCoverLevel));

           }

           // 止损逻辑(当前价低于开仓价 StopLoss 点)

           else if (Low <= EntryPrice - StopLoss)

           {

               Sell(Lots, EntryPrice - StopLoss);

               Commentary("多仓止损,价格:" + Text(EntryPrice - StopLoss));

           }

       }


       // 持有空仓时

       if (MarketPosition == -1)

       {

           // 原有平仓逻辑

           if (Low <= BuyCoverLevel)

           {

               BuyToCover(Lots, BuyCoverLevel);

               Commentary("平空仓,价格:" + Text(BuyCoverLevel));

           }

           // 止损逻辑(当前价高于开仓价 StopLoss 点)

           else if (High >= EntryPrice + StopLoss)

           {

               BuyToCover(Lots, EntryPrice + StopLoss);

               Commentary("空仓止损,价格:" + Text(EntryPrice + StopLoss));

           }

       }

   }



以上,看了一圈没有可以闪烁的地方啊,都是high和low,没有多图层,请各位大神们解答

为什么用最简单的均线交易策略时 平仓后反手显示资金不足呢?
使用ma均线导致的信号闪烁如何处理
均线策略
均线对策略的控制问题
使用ma均线价格作为判断条件,导致信号闪烁
均线策略出错
均线策略的开平价格
跨周期均线策略
关于均线对策略指令的控制
【策略分享】强普适性,止盈细腻,夏普率超1.5量化策略分享

SellInLevel 这个用了最新close吧  盲猜是这个

还有 buy是这个两个

👍

那我应该如何实时更新ma5的值呀,不能用Average(Close[1], 5)吧

均线你回溯了才会不闪烁Average(Close[1], 5)

那这样得到的就不是包括当日的ma5日均线了吧?是前6天到前一天的,我的代码逻辑是不是要改了