
// 变量定义区:声明全局变量和系列变量
Vars
    Series<Numeric> ma5;                     // 5日均线
    Series<Numeric> ma20;                    // 20日均线
    Plot pltX;                               // 主图表绘图对象
    Bool isAlerted(false);                   // 警报状态标记
    Integer i;                               // 循环计数器
    Integer sss;                             // 临时变量
// 事件处理区:系统回调函数
Events
    // 初始化事件:订阅数据
    OnInit()
    {
        SubscribeBar(Symbol, "1m", BeginDateTime);  // 订阅1分钟K线
        SetBasePeriod("1m");                         // 基础周期1分钟
        data0.Hide;                                  // 隐藏默认图表
    }
    // K线更新事件:全量刷新+标记特定位置
    OnBar(ArrayRef<Integer> indexs)
    {
        // 计算指标
        ma5 = Average(C, 5);
        ma20 = Average(C, 20);
        Range[1:1]
        {
            // 修正:避免向前引用,使用当前K线索引
            sss = Data0.BarCount - 1;
            // 注意:这个条件可能永远不会满足,需要根据实际需求调整
            If(Data0.BarCount-Data0.CurrentBar == 1)
            {
                // 修正:使用Data0.H[CurrentBar]引用当前K线的最高价
                pltX.text("日K", Data0.H,  "1111111111111111");
            }
        }
    }这样可以If(Data0.BarCount-Data0.CurrentBar == 1)
If(Data0.BarCount-Data0.CurrentBar == 2) 就没显示了

不引用周期的话,显示的很好,就是现在那个K线上显示都可以


各位老师如何搞定,或者别的方法
你图里都只有一个图层,你为什么要range1:1a???
为什么我看不懂这个帖子在说什么?
012
COUNT = 3
3-2=1
状态=1相当于 d0.barstatus==2 ?
=2没显示
那就往前翻
1m数据太多了