之前的震荡区间你会记下最高最低值。新来一个tick,你把这个tick的两个最值与原来的分别比较,并更新区间的最高最低值,如果它们之差超过0.5%,那么这个tick应该就是突破了。
不知道符不符合你的要求。
我记得银河证券的金融工程去年有篇文章:《行业深度报告模板 波幅异动择时策略(一):策略的特性与优势》
里面的思路和你的描述有点相近。它的步骤是:
1、计算收盘价到收盘价的每日收益率序列{x};
2、计算{x}近一段时间(比如20天)每日收益率的方差D;
3、设定一个突破比例a,然后从最近一天的收益率往前累加得到S,一旦往某个方向的累计收益率大于D*a,就认为往某个方向有趋势。
直观看,上证综指,从2017-12-12到2017-12-29是横盘没方向的,而2018-01-02(累积了三天涨幅)或者2018-01-03(累积了四天涨幅)开始认为是有向上的趋势(看a的大小如何设置了)。另外,新年虽然十一连阳,但是最近几天的累积收益率其实并不高,再在3400附近磨几天,按银河的策略就会认为趋势结束。
不过报告里面的公式好像描述得不是特别清楚,有些地方我也是猜的。
这份报告和它的系列报告写的思路还不错,但是给的计算公式好像不是很有诚意,不太容易看明白。