- 有些K线图,可以显示多个波段顶部和底部的数值,是怎么实现的?
- 如何算出所有跳空高开、低开后形成的缺口?考虑后续K柱遮挡和覆盖的问题。
有空再更
有空再更
自相似的走势 ,假设涨为1,跌为0
走势为 110 110 110 这样的
又或者是 10101010 这样的
像这种的
初步的代码方案
代码: 全选
/*
试求波段顶点
思路,扫描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 当然实际中肯定有很多参差不齐的情况, 有空再更
正浏览此版面之用户: Ahrefs [Bot] 和 5 访客