Vespa314 / chan.py

开放式的缠论python实现框架,支持形态学/动力学买卖点分析计算,多级别K线联立,区间套策略,可视化绘图,多种数据接入,策略开发,交易系统对接;
MIT License
796 stars 288 forks source link

BI.parent_seg数据似乎有点问题,求解 #51

Closed AlexYY0 closed 3 months ago

AlexYY0 commented 3 months ago

现在总共有4 seg image 最后一段的end bi是21 image 现在总共有24 bi image bi_list的21 bi还对应的上seg,是3,且seg.next is None image 但是22 bi的seg_idx 是4,这个可以理解,但是parent_seg那里来的 image 而且4 seg pre -> 3 seg,但是3 seg next -> 竟然有了,是 4 seg,有点奇怪 image 而到了23 bi,seg_idx 也是4,但是parent_seg就为 None了,没有了 image

请问这是什么原因,因为left_seg_method配置吗,感觉悬空出来一个seg,对应不上号

AlexYY0 commented 3 months ago

断点地方为 计算买卖点的类,所以我bsg_bi取seg出现了问题,理论上这时候都计算完了,数据应该一致才对?请问大佬这是哪里的问题 @Vespa314

Vespa314 commented 3 months ago

方便补个带bi_num的画图么? 或者提供一下可以复现的main.py和数据源类

AlexYY0 commented 3 months ago

方便补个带bi_num的画图么? 或者提供一下可以复现的main.py和数据源类

数据是从我数据库里取的,暂时不太好提供,标的是510300.SH. 30m 开始时间2012.05.25,大佬有其他数据源可以看看,图的话我晚上看看

AlexYY0 commented 3 months ago

方便补个带bi_num的画图么? 或者提供一下可以复现的main.py和数据源类

image 数据我只能提供序列化版本的,如果需要,我可以序列化出来。 @Vespa314 最后两笔应该整合成虚段吗?left_seg_method我这边没动,用的默认配置。 我看collect_left_seg_peak_method调用了collect_left_as_seg方法 image 那么这里是什么意思,我之前以为只可能存在最后一笔parent_seg == None,现在看不是这么回事? last_bi = bi_lst[-1],不就是最后一笔吗,last_bi.idx-1就是倒数第二笔 image

Vespa314 commented 3 months ago

按照设计,(根据画出来的图)如果一笔没有对应的线段,那么 parent_seg 应该是 None,但是 seg_idx 的值等于最后一根线段+1;

我没数据复现你上面的结果(我可以花时间找找,但是懒了),但是我大概猜到问题了,你可以拉一下 fix_0706这个分支,看看还会不会有问题,如果还有,麻烦提供下数据的 CSV 文件和你的 CChanConfig,我再排查下。

如果没问题,我就合进主分支了。

AlexYY0 commented 3 months ago

按照设计,(根据画出来的图)如果一笔没有对应的线段,那么 parent_seg 应该是 None,但是 seg_idx 的值等于最后一根线段+1;

我没数据复现你上面的结果(我可以花时间找找,但是懒了),但是我大概猜到问题了,你可以拉一下 fix_0706这个分支,看看还会不会有问题,如果还有,麻烦提供下数据的 CSV 文件和你的 CChanConfig,我再排查下。

如果没问题,我就合进主分支了。

这是数据文件,fix_0706这个分支我还没有测试,晚点看看 stock_data.xlsx

Vespa314 commented 3 months ago

嗯,测了一下,fix_0706已经修复这个问题了,主分支代码已更新。

AlexYY0 commented 3 months ago

嗯,测了一下,fix_0706已经修复这个问题了,主分支代码已更新。

请问程序什么情况下一笔会没有对应的线段,我看collect_left_seg_peak_method的collect_left_as_seg方法,以为最多会存在一笔没有线段,现在看好像不是这样?

Vespa314 commented 3 months ago

最多出现在尾部的两笔

AlexYY0 commented 3 months ago

最多出现在尾部的两笔

left_seg_method这个配置不会处理这些这两笔吗,还是说处理后剩下的不确定笔

Vespa314 commented 3 months ago

有些情况下不会。

AlexYY0 commented 3 months ago

嗯,测了一下,fix_0706已经修复这个问题了,主分支代码已更新。

感谢V神,试了一下,确实已经没问题了

AlexYY0 commented 3 months ago

有些情况下不会。

好的,大概了解了,感谢