趋势线乖离率统计直方图
Params
    array<Numeric> timepoint([20241121.2244,20241202.2259]);
    array<Numeric> price_value([1945.30,1862.07]);
    integer column_number(5);
Vars
    global numeric x1;
    global Numeric x2;
    global Numeric y1;
    global Numeric y2;
    global Numeric k;
    global numeric b;
    global numeric i;
    numeric x;
    numeric y;
    plot trend;
    TimeStamp my_time;
    Global array<Numeric> delta_data;
    Global array<Numeric> deltaT;
    Numeric size;
    Numeric width;
    plot deltaT_plot;

Defs
    //此处添加策略函数
    
Events
    //此处实现事件函数
    
    //初始化事件函数,策略运行期间,首先运行且只有一次
    OnInit()
    {
        PrintClear;
        deltaT_plot.figure(1);
        deltaT_plot.setOption("gant","fill",true);
        deltaT_plot.setOption("target","fill",true);
        deltaT_plot.setOption("gant", "color", white);
        deltaT_plot.setOption("target", "color", Yellow);
        
    }


    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBaropen(ArrayRef<Integer> indexs)
    {
        
        my_time.date = timepoint[0];
        my_time.time = 0;
        x1 = DateTimeToBarIndex(my_time);
        my_time.date = timepoint[1];
        my_time.time = 0;
        x2 = DateTimeToBarIndex(my_time);
        
        y1 = Price_value[0];
        y2 = price_value[1];
        k = (y2-y1)/(x2-x1);
        b = y2-k*x2;
        
        If(date+time>=timepoint[0])
        {
            x = DateTimeToBarIndex(date + time);
            y = k*x+b;
            trend.line("trend", y);//作图
            Commentary("x="+text(x));
            Commentary("y="+text(y));
        }
        
          
        If(date+time==timepoint[0])
        {
            delta_data[0] = close-y;
        }
        If(date+time>timepoint[0])
        {
            numeric i;
            print("currentbar="+text(CurrentBar));
            print("数组大小="+text(GetArraySize(delta_data)));
            for i = 0 to GetArraySize(delta_data)-1
            {
                If(close-y > delta_data[i]) Continue;
                Else
                {
                    ArrayInsert(delta_data,i,close-y);
                    Break;
                }
            }
            print("i="+text(i));
            print("数组大小="+text(GetArraySize(delta_data)));
            if(i == GetArraySize(delta_data))
            {
                delta_data[i] = close-y;
                print("尾部插入");
            }
        }
        //bar开盘时把上一根bar的数据插入
        
        If(BarStatus==2)
        {
            //print(TextArray(delta_data));
            //直方图
            
            size = GetArraySize(delta_data);//取数据容量
            width = round((delta_data[size-1]-delta_data[0])/column_number,0);
           
            print(TextArray(delta_data));
            print("column_number=" + text(column_number));
            print("size =" + text(size));
            print("width =" + text(width));
            numeric i = 0;
            Numeric j = 0;
            Numeric numb = 0;
            for i = 0 to size - 1//构造直方图统计数据
            {
                If(delta_data[i] > delta_data[0] + (j + 1)*width)
                {
                    deltaT[j] = numb;
                    j = j + 1;
                    numb = 0;
                }
                numb = numb + 1;
            }
            numeric sum;
            for i = 0 to column_number - 2//作图
            {
                sum = sum + deltaT[i];
                print("delta="+text(close-y));
                print(text(delta_data[0] + i*width));
                print(text(delta_data[0] + (i + 1)*width));
                If(close-y>delta_data[0] + i * width and close-y<=delta_data[0] + (i + 1)*width)
                {
                    deltaT_plot.barv("target", i, deltaT[i]);
                    print("作图");
                }Else
                {
                    deltaT_plot.barv("deltaT", i, deltaT[i]);
                }
            }
            deltaT[column_number - 1] = size - sum;
            If(close-y>delta_data[0] + (column_number - 1) * width)
            {
                deltaT_plot.barv("target", i, deltaT[i]);
                print("作图");
            }
            deltaT_plot.barv("deltaT", column_number - 1, deltaT[column_number - 1]);
            print("deltaT:"+TextArray(deltaT));
        }
        
    }


乖离率买卖点公式如何写
直方图
如何写趋势线
获取趋势线的最新价格
提取手工画的趋势线价格
如何实现从某根k线开始统计?
【离场逻辑】【不触发】
“从当前K线周期向前计算,统计连续阳线的K线个数”用TB语言怎么表示?
保正金率
区域统计是否存在Bug?

附件解压导入失败

刘老师您好,非常喜欢您的直播分享,讲的课也特别好,这些直播录屏啥的如果方便可以分享到您的B站吗,这样可以多看几次

现在不让分享到b站了...这个一般都在官网视频区会上架的