Squeeze Momentum Scanner MT4
- 指标
-
Evgenii Sutulov
I build trading indicators, strategies, and dashboards that don't repaint.
Seven years doing this. MetaTrader 4, MetaTrader 5, TradingView.
Closed bars only. What you see is what happened.
The bar being formed never changes a published value. - 版本: 1.3
- 激活: 20
挤压释放只持续几根柱线,绝不会等你在图表之间来回切换。Squeeze Momentum Scanner 同时在最多四个周期上监视你的品种列表,打印出每次压缩释放的精确柱线,以及动量当时站在哪一边,并标记出各周期一致的行。出厂默认扫描十五个品种;一个设置可以把这个数字提高到二十八。振荡器本身就绘制在这张图表的子窗口里,所以你可以直接根据表格找到的结果采取行动,不需要再挂一个第二指标。
每售出10份,价格上涨10美元。
挤压释放是一个短命的事件,会在不同品种上于不同时间发生,这正是需要一块看板的情形:表格负责找到它们,下方的子窗口则显示出产生某一次释放的那个柱状图本身。
看板
每个品种一行,每个被扫描的周期一列,最多四列、最多二十八个品种;出厂默认扫描十五个,最大值只差一个设置。品种列表用逗号分隔给出,或者看板也可以改用 Market Watch 列表。经纪商的前缀和后缀会从你所在的图表中检测出来,也可以手动指定。出厂默认看板扫描四个周期:M15、H1、H4 和 D1。
一个单元格读起来像 ^14b:挤压释放那一刻动量站在哪一边,以及那次释放是在多少根柱线之前发生的。flat 这个词表示计算已经运行,但在窗口内没有找到释放。三个点表示这个单元格还没有被测量,如果打开了提示,把鼠标悬停在上面会解释原因。比新鲜度阈值更旧的释放会保留色相,但会失去权重。任何位置带有新鲜释放的行都会被涂上一层强调色。
AGREE 列取出一个品种上可见的各周期列,找出多数一方,打印出类似 v3/4 的内容:方向,以及可见周期中有多少站在那一边。完全一致会用那一方的颜色加粗显示。打平会打印一个横线符号,不算作判定,因为把一比一的分裂称为信号等于凭空捏造出一种确信。当只有一个周期可见时,这一列会被完全去掉,而不是打印一个只是重复旁边单元格的 1/1。
列标题都是按钮。点击某个周期标题会按该列排序,最新鲜的排在最前,空白行排在最后;再次点击会反转顺序。点击 AGREE 会按一致程度排序,完全一致排在最前。活动标题会带上强调色和一个箭头符号。另有一个 Sort 按钮会循环切换新鲜度、等级和名称。
一个 Show 按钮会循环切换 all、buys、sells 和 fresh。buys 和 sells 遵循的是 AGREE 的判定,而不是单个单元格,所以显示在 buys 下面的行在 AGREE 中总是显示一个向上的符号,而打平的情况不会出现在这两者中的任何一个下面。这个过滤器作用于显示,而不作用于计算。
表格上方的图例说明了这些记号的含义,可以关闭。周期按钮可以显示或隐藏一列,而不会停止其测量。点击某个单元格会把这张图表切换到对应的品种和周期。
可见行数会根据面板大小自动调整,行数设置只是一个上限。分页按钮只有在行放不下时才会出现。因为看板从不会画出比面板能容纳更多的行,所以无论行数设置有多大,分页按钮始终显示在屏幕上,并且始终可以点到。
两行状态信息始终显示:已就绪品种数占总数、距上次更新经过的时间、回溯窗口内发现的释放数;之后是看门狗提示行,或者一句解释为什么什么都没显示的话,二者取其一。
诊断
第二个面板默认关闭,用来回答"为什么没有信号"这个问题:品种覆盖情况、哪些序列的柱线不够、窗口内找到了多少信号,以及这个指标在 Market Watch 中打开了多少个品种。测量不了的单元格会给出解释,而不是留空。
图表指标
绘制在它自己的子窗口里:四色动量柱状图和三种状态的挤压点。它的周期是单独设置的,与看板扫描的周期无关。
设置表
齿轮图标会打开三个标签页。Values 涵盖周期、布林长度、布林乘数、肯特纳长度、肯特纳乘数,以及肯特纳区间使用的是真实波幅还是简单的最高价减最低价。每一行都有步进按钮、取值范围和一句帮助说明。改动其中任何一项都会让整块看板重新计算,面板会在此期间报告进度。
Alerts 涵盖总开关、按事件的开关、四个通道、冷却时间和一个测试按钮。
Styles 涵盖图例、调色板、动量柱状图、挤压点以及点的大小。这些正是对应的单图表版指标在同样的名称下所携带的显示控件,因此在一处设置好的图表可以在另一处复现。
有三套配色方案,其中一套对色盲友好,使用蓝色和橙色而不是红色和绿色。面板位置、配色方案、排序、过滤器、可见列,以及设置表上改动过的每一个数值都会按图表分别保存,跨越周期切换和终端重启依然保留。界面是英文。
提醒
出厂默认关闭,面板上有一个总开关,旁边有一个 Test alert 按钮。
事件是新鲜的 BUY 和新鲜的 SELL,针对每个被扫描的周期分别声明,此外还有数据健康状态,会在某个品种数据丢失或恢复时发声。这里有一个最低等级的设置;这个移植版本不进行分级,所以对它而言每个信号都算作等级一。
这些通道是弹出窗口、声音、推送到手机终端以及电子邮件。冷却时间按单元格和按事件分别保持,默认三十分钟。这个产品不包含 Telegram。
开销
这份工作是有预算的:每个计时器周期刷新固定数量的品种,这样一份很长的列表也能分摊负载,而不是让终端卡住。第一轮扫描是渐进式的,面板会报告已测量的百分比。
从 EA 读取
图表指标的十二个缓冲区都可以通过 iCustom 读取。MetaTrader 4 只绘制靠前的缓冲区,所以绘制出来的序列排在前面,可读取的契约排在它们后面。这张映射表不是 MetaTrader 5 版本的映射表:为那个版本编写的 EA 必须重新指向下面的索引。
缓冲区 0 到 3 是动量柱状图的显示拆分,每种状态一个单色柱状图:正值扩大、正值减弱、负值扩大、负值减弱。缓冲区 4 到 6 是挤压点的显示拆分,每种状态一行:无挤压、挤压中、挤压释放。缓冲区 7 是 Momentum,去趋势序列线性回归的终点,作为一条连续的序列。缓冲区 8 是与它对应的颜色索引:0 表示上升且扩大,1 表示上升且减弱,2 表示下降且扩大,3 表示下降且减弱。缓冲区 9 是 Squeeze,将该点作为一条序列,缓冲区 10 是它的颜色索引:0 表示无挤压,1 表示挤压进行中,2 表示挤压已释放。缓冲区 11 是 Signal:看涨释放为 +1,看跌释放为 -1,没有释放时为 0。
数据窗口列出七行绘制内容、柱状图的四列以及点的三行。契约部分,即缓冲区 7 到 11,不会出现在那里,这并不能说明什么:iCustom 同样能读取上面的每一个索引。这个产品既没有独立的 Buy 和 Sell 价格缓冲区,也没有 Override 缓冲区,这恰恰是这张映射表与单图表版 Squeeze Momentum 指标不一致的那个索引:在那边,面板的覆盖计数器为映射表收尾,在这里则根本不存在。事件就是缓冲区 11。
MQL4 没有输入分组,所以 EA 在这里传给 iCustom 的参数列表比 MetaTrader 5 版本更短,位置也不同。请按照这个版本的输入列表来构建调用,而不是另一个平台的。
Styles 标签页隐藏一条曲线的方式是拿走它的颜色,绝不会清空缓冲区。由 iCustom 创建的实例是只读的,始终使用你传入的参数。
看板是一个面板,而不是一个缓冲区。它靠肉眼阅读,也靠提醒来读取。
来源
这是对 "Squeeze Momentum Indicator [LazyBear]" 的移植,来自作者本人的开源发布。该发布没有附带任何许可协议,这使得对公式进行贴近原样的移植成为可以接受的做法,这个实现是按照公式来实现的,而不是靠猜测。
这个产品沿用了该方法的名字,因为它实现的正是这个方法。原创工作属于 LazyBear,这里并不主张对它的著作权。
诚实的局限
看板读取的是已收盘的柱线,并以已收盘柱线的数量计算一个单元格的年龄。在子窗口里,尚未收盘那根柱线的柱状图和点是实时的,会一直变化到收盘为止,所以柱线中途可见的释放,到收盘时可能已经不存在。已收盘柱线发布过的内容此后不会再改变。
挤压释放是一句关于波动率的陈述,而不是关于方向的陈述。动量的正负号说明释放那一刻能量站在哪一边。挤压也可能释放成什么都没有:压缩是扩张的必要条件,而不是充分条件。
AGREE 统计的是周期数量,而不是估计概率,同一品种上四个相关读数彼此一致,并不等同于四个独立的确认。打平会刻意不给出任何判定,并且会同时被 buys 过滤器和 sells 过滤器隐藏。
布林和肯特纳的设置会明显改变检测到的挤压数量。更宽的肯特纳乘数会给出更多,更窄的会给出更少,两种设置都不是所谓正确的那个。
扫描是有开销的。四个周期上扫描二十八个品种意味着一百一十二个单元格;在慢速机器上需要调低的正是这个负载预算设置。
这里不主张任何利润数字、胜率或回测结果。

