Nadaraya Watson Envelope MTF 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
一种不会重绘的核回归,而这正是关键所在。Nadaraya Watson Envelope MTF在价格上绘制一条平滑的中心线以及围绕它的误差包络线,标记出价格在拉伸后重新回到内部的K线,并且每根K线仅根据其之前的K线计算,因此已收盘的K线永远不会再移动。图表网站上常见的这类线是双向拟合的,会在您脚下不断改写;而这一版本在设计上就是因果的。免费,无试用,无锁定功能。
它回答的问题很窄,也是它唯一试图回答的问题:价格已经从其近期中心拉伸开来,并且刚刚停止拉伸。您是把它当作均值回归的入场信号,还是当作在趋势仓位上获利了结的位置,抑或什么都不当,这由您决定。该指标定位事件,而不对其做出评判。
线是如何构建的
中心线是一种Nadaraya-Watson核回归:每根K线都是其之前K线的加权平均,权重是随距离衰减的高斯权重。包络线位于该中心上下选定数量的平均绝对误差处,因此当价格在线周围表现嘈杂时它会变宽,而当价格表现驯服时它会收窄。
该估计是因果的。K线i根据K线i、i-1、i-2以及更早的K线计算,而绝不会根据其右侧的K线计算。这是对图表网站上通常展示核回归方式的刻意背离,那里的拟合是双向的,随着新K线到来线会在您脚下移动。而在这里,一旦某根K线收盘,中心线就不再改变。
图表上显示的内容
中心线按其自身的斜率着色,上升时一种颜色,下降时另一种颜色。上下包络线以虚线带的形式绘制。BUY和SELL标记出现在价格重新回到包络线内的K线上,分别置于最低价之下和最高价之上。
绘制在价格窗口内,位于K线之上。
面板
图表上的一个画布面板,可通过拖动移动、可折叠、可关闭。它承载三行实时文本:数学计算实际运行的时间周期,连同当前生效的窗口和带宽;上一根收盘K线做了什么,即中心值以及BUY回归、SELL回归或两者皆无;以及数字来自何处,是来自属性对话框还是面板,以及其中有多少被手动更改。
下方列出面板可以调整的每一项设置及其当前值。被更改的值会高亮显示,以便一眼就能看出图表并非以默认值运行。
设置表
齿轮图标打开一个含三个标签页的设置表。
Values包含可能影响信号的四项内容:时间周期、窗口N、带宽h和包络线倍数。每一行都有加减步进按钮、允许范围以及一句说明更改作用的话。顶部的计数器会显示四项中有多少已不再与属性对话框所显示的一致,一个按钮即可将它们全部还原。
Alerts包含主开关、按事件划分的开关、四个通道以及以分钟为单位的冷却时间,还有一个按钮可向每个已开启的通道发送测试提醒。
Styles只包含外观:调色板、是否绘制中心线、包络线和箭头、线宽以及箭头大小。此标签页中的任何内容都不会触发重新计算。隐藏中心线不会停止它的计算、提醒,也不会影响EA对它的读取。
三种配色方案:深色、浅色,以及一种绝不将红色与绿色相对、使用蓝色和橙色的色觉友好方案。方案按钮位于面板标题栏,图表调色板可以设置为跟随它。
面板位置、方案、折叠状态以及在设置表上更改的每一个值都按图表单独保存,并且在时间周期切换和终端重启后依然保留。界面是英语。
提醒
出厂即为关闭。主开关以关闭状态出厂,因此附加该指标不会发出任何声音,直到您自己开启为止。
事件:一次BUY信号,一次SELL信号。通道:弹出窗口、声音、向移动终端推送、电子邮件。每个事件和每个通道都有自己的开关,默认两小时的冷却时间会阻止同一事件重复触发。
提醒在最后一根收盘K线上触发。此外还有两个可选的形成中K线提醒,默认关闭,它们只在当前K线仍处于形成状态、且在其收盘前选定的秒数内才会发声。它们在面板和输入中被标记为提前提醒,这是有原因的:存在于K线中途的回归可能在该K线收盘前就不复存在。
Telegram不属于本产品。
多时间周期
Timeframe设置让该指标在更高的时间周期上计算,并将结果绘制在您正在查看的图表上。只读取已收盘的高级别K线:某根图表K线所显示的值,是截至该图表K线自身时间点为止已经收盘的最新高级别K线,而不是包含它的那根高级别K线。包含它的那根K线仍在形成中,无法在实时状态下得知。
BUY和SELL标记落在高级别K线发生变化的那唯一一根图表K线上。中心线、包络线和斜率在整个高级别K线的跨度内保持不变,这正是阶梯状外观的成因。
外部时间周期由终端在后台构建,第一次读取合理地可能返回空值。该指标每秒重试一次,并在面板上说明它是在等待下载,还是面对真正的历史数据不足。初始化绝不会因缺失K线而失败。
从EA读取
十三个缓冲区,全部可通过iCustom读取,两个信号缓冲区排在最前面,因此策略无需自行计数。这张映射表与MetaTrader 5版本的映射表不同:MQL4没有按颜色索引的绘图,因此按斜率着色的中心线被绘制为一对普通线,其后面的索引也随之移位。
缓冲区0,Buy,携带信号K线上BUY标记的价格,其余情况下为EMPTY_VALUE;缓冲区1,Sell,对SELL标记同理。缓冲区2和3是中心线的两个显示半段,一个用于上升期间,一个用于下降期间。缓冲区4,Upper,和缓冲区5,Lower,是包络线的两条边界。缓冲区6和7,BuyMark和SellMark,是缓冲区0和1的绘制副本。缓冲区8是中心线作为一条连续序列,与MetaTrader 5版本在其索引2处发布的值相同,缓冲区9是其颜色索引。缓冲区10,Signal,在从下方回归时读取+1,从上方回归时读取-1,无回归时读取0。缓冲区11,Slope,在中心上升时为+1,下降时为-1。缓冲区12,Override,报告有多少设置是从面板更改的。
Data Window列出从Buy到SellMark的八行绘制内容。它们背后的契约,即缓冲区8到12,并不出现在那里,而这并不能说明什么:iCustom对上述每一个索引的读取方式都完全相同。想要按值获取中心线的EA应读取缓冲区8。
缓冲区0和1是契约。它们不上色,且无论Styles标签页设置为何,每一遍都会被填充。您在图表上看到的箭头是索引6和7的副本,与契约保持同步,因此关闭箭头永远不会让EA失去信号。
MQL4没有输入组,因此EA在此传递给iCustom的参数列表比MetaTrader 5版本更短,位置也不同。请按照本版本的输入列表构建调用,而不是另一平台的。缓冲区12的存在是为了让EA能够知道它读取的数字并非按其传入的参数计算得出:通过iCustom创建的实例是只读的,并且始终遵循您赋予它的参数。
诚实的局限
当前尚未收盘的K线上的标记可能出现后又消失。当K线处于开盘状态时价格在包络线内,而到收盘时它落到了外面,标记随之消失。一旦K线收盘,其标记和线条便不再改变。
这不是一个策略。这里没有出场规则,没有仓位规模管理,没有止损设置,也没有针对市场是否处于均值回归合理成立的状态的过滤器。在强劲趋势中,价格可能长时间停留在包络线之外,而它最终产生的每一次回归都将逆着该趋势。
这里不主张任何利润数字、胜率或回测结果,也不应推断出任何此类结论。
在更高的时间周期上,图表最早的那些K线可能没有任何在那个时刻已经收盘的高级别K线,这些K线被有意地留空。
核窗口是一个K线数量。在历史较短,或者您的经纪商不保留其历史的品种上,线会从有足够K线可供计算的位置开始,而不会更早。

