如图,在判断顶底条件时,需要相邻的三根K线,而在出第三根判定条件成立时,这时只能给正在运行的第三根Bar也是最后一根进行条件赋值,但真实的顶底发生时却是在中间的第二根Bar,所以想把条件变量序列中的所有元素向前移一位,这该怎么办呢?
这个问题很有意思,因为最近本人也一直在学习缠论,所以就多说几句。
首先,画顶底分形前,要先处理完K的包含关系。肉眼观察你的截图下方图层从第2到4根的Bar柱没有处理K线包含关系,处理后数量上会合并为1根Bar。如果不处理,不仅会影响到顶底分形,而且会影响画笔对于有效Bar数量要求。
其次,顶底分形的确认从理论上来讲必须要走完3根(第n-1根、第n根、第n+1根)处理完包含的Bar柱才能最终得到结果。这句话的含义映射到TBQ的事件域机制的话,必须运行到第n+1根Bar的OnBarClose事件域之后,你才能在数据上得到是不是顶底分形。
然后,在你使用 IdentifyFractal 函数进行顶底分形判断,返回布尔型。这里的关键在于你设计的时候所选取的数据类型,虽然你的截图掐头去尾的,粗略一看也不知道存放缠论Bar的高低价的【CanunBar_High】、【CanunBar_Low】到底是【序列变量】还是【一维数组】甚至是其他数据类型。但是因为缠论规定的连续3根Bar的高低判断,所以基本上可以确定CanunBar_High[1]的写法语法上是序列变量回溯取值的写法,而不是数组下标的写法。
问题:
1.序列变量能够向历史回溯取值,但是不能向历史回溯修改值。TB在设计序列变量类型,这种变量的运行环境是强依附于图表系统、依附于每根Bar的,所以即使你将CanunBar_High放到函数IdentifyFractal中执行,其实也是受到调用函数时,OnBar事件域当前所处的CurrentBar的位置影响的。
所以,你想实现保存、随意修改历史数据值,那就放弃序列变量,改用数组数据结构来实现。
2.你想标记顶底在第n根Bar上而不是第n+1根Bar上,应该不仅仅局限于PlotString的输出显示吧,因为这个理论上还可以通过Unplot擦除或PlotString的回溯参数实现,画图的修改。因为这个还只是视觉不舒服的影响,更重要的是,画笔时顶底折线,会有连线结构的错误。所以,还是回到第1个问题的数据结构选择的问题上。另外,提一嘴,我画折线时用的是ployline函数,还算方便。
下面是我处理完K线包含关系的顶底分形标注、原始K线分别放2个图层进行对比显示的效果图:
又看大神下场解答问题
👍
问一下
分型回溯盈亏比如何
有效的话
我也写一个
哇 好厉害 这是把工具用到如四肢般灵活呀
我那里是什么神,不过是修炼2年不到的小妖,都还不能成人形。
你问的【分型回溯盈亏比如何】,我看不懂啥意思,但是你谈到了【盈亏比】,我猜测你应该是想问【利用顶底分型编写策略,然后回测的盈亏比】。如果你想问这个问题,那我暂时还回答不了。首先当初第一次接触到【顶底分型】概念是在去年11月19日的智大领峰的直播课,听完以后似懂非懂的感觉,不过这种感觉完全不同于学量化的体验,感觉是找到了认知市场的一条正道,后来今年2月18日刘老师的直播课又开始谈顶底指标的应用。
这之后决定自己动手编写顶底指标,之所以自己编,一是因为自己对期货市场的敬畏,还没有开通实盘账号,而模拟账号无法在智大领峰上使用顶底分型技术指标,二是即使能使用也不知道里面实现的源码逻辑。所以一时冲动,决定自己按照直播课的PPT内容动手在TBQ3上编写。
但是在自己动手编写的过程中,发现很多细节在直播课中是未知的,查资料后,才知道这玩意儿源自于缠论。
最初给自己的目标还仅仅是画出顶底分型,边写、边学、边查、边调试,3月初基本成型为截图的样子,期间也发现很多细节要处理:左包含右、右包含左,向上\向下处理、结合律等。所以这只是缠论基础的基础,从分型、到笔、再到线段、最后到中枢都是为了分析、结构、认识市场的工具,而不是直接实盘的策略。
所以当初的冲动决定,又让我陷入一个更大的“坑”,从零开始学缠论。只有这样,才能形成很多不同的量化策略,其实,光画出顶底分型然后加1根停顿确认分型是中继分型还是转折分型就是一个比较初级又实用是策略。所以,目前我已经深陷学缠1个多月了,不能自拔。
666
成神了😀
你标注的顶底,可以向前回溯
PlotString最后一个参数可以设置回溯
文字可以回溯,那连线能回溯吗?
👍
图表显示其实没毛病
如果非要对齐
1 打印回溯
或
2 指标计算时候,barstatus!=2时候用未来
线也可以呀plotnumeric最后一个值也是回溯
序列变量不能向前赋值