画个K线,遇到的那些小问题

回复
头像
523066680
Administrator
Administrator
帖子: 573
注册时间: 2016年07月19日 12:14
联系:

画个K线,遇到的那些小问题

帖子 523066680 »

  • 有些K线图,可以显示多个波段顶部和底部的数值,是怎么实现的?
  • 如何算出所有跳空高开、低开后形成的缺口?考虑后续K柱遮挡和覆盖的问题。

有空再更

附件
600792-云煤能源.png
(91.67 KiB) 尚未被下载
头像
523066680
Administrator
Administrator
帖子: 573
注册时间: 2016年07月19日 12:14
联系:

辨别自相似的走势 Re: 画个K线,遇到的那些小问题

帖子 523066680 »

自相似的走势 ,假设涨为1,跌为0
走势为 110 110 110 这样的
又或者是 10101010 这样的

头像
523066680
Administrator
Administrator
帖子: 573
注册时间: 2016年07月19日 12:14
联系:

辨别波段的顶底(如果有)

帖子 523066680 »

像这种的
图片

初步的代码方案

代码: 全选

         /* 
        试求波段顶点
        思路,扫描7个元素,判断情况是否为  0,1,2 < ele[3] > 4,5,6 
        但不需要全部符合,只需要大致符合(容错) 例如 0<1 1<2 2<3 的判断中有2个或以上为true

        虽然有容错,但是,中间值一定是最大值,因此判断 e[2] < ele[3] 时可以提前进入到下一个循环
        */

        vector<float> ma;
        for ( auto &e : data)
            ma.push_back( *e.indicator["ma5"] );

        int test_range = 7; //奇数,比较左右两侧的元素

        FOR_M:
        //从 i >= 4-1 开始做比较
        for ( int i = 3; i < ma.size() - test_range/2; i++ )
        {
            int yep = 0;

            //i节点须是前后最大值
            if ( ma[i+1] > ma[i] || ma[i-1] > ma[i] )
                continue;

            for ( int j = i-3; j < i; j++ ) // 0 1 2 compare 1 2 3
            {
                if ( ma[j-1] < ma[j] )
                {
                    yep++;
                }
            }

            for ( int j = i; j < i+3; j++ ) // i(3 4 5) compare i+1 (4 5 6)
            {
                if ( ma[j] > ma[j+i] )
                {
                    yep++;
                }
            }

            if ( yep >= 4 )
            {
                cout << i << ", " << ma[i] << "<--" << yep << endl;
                tops.push_back( i );
            }
            else
            {
                cout << i << ", " << ma[i] << "<  " << yep << endl;
            }
        }
    }

另一个思路是 把所有相邻元素两两对比,得到 -1 0 或者 1 的序列,如果是上坡 1 1 1 下坡 -1 -1 -1 再次 上坡 1 1 1 -1 -1 -1 当然实际中肯定有很多参差不齐的情况, 有空再更

附件
temp2.png
(20.83 KiB) 尚未被下载
temp.png
(8.22 KiB) 已下载 4 次
回复

在线用户

正浏览此版面之用户: 没有注册用户 和 6 访客