UT Bot MTF
- 指标
-
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
UT Bot MTF 是一条基于 ATR 的移动止损线,以及它所产生的翻转信号。止损线以所选 ATR 倍数为距离跟随价格,只朝行情方向收紧,绝不往回让步。价格收盘穿过它时,止损线翻到另一侧,指标随即标出一个 BUY 或一个 SELL。
整个引擎就是这些,而且是刻意做得简单。这个产品在引擎周围补上的,才是决定你能否真正用得起来的部分:四个彼此独立的过滤器、每个过滤器丢掉了什么的诚实交代,以及一块从不假装当前K线上的信号已经定型的面板。
可以选择让整套计算基于平均K线(Heikin Ashi)的收盘价而不是真实收盘价,这会让翻转更少、更晚。
四个过滤器
所有过滤器出厂即为关闭。每一个都是关于市场的一个独立假设,也都可以单独开启。趋势过滤器只保留与更高周期上某条移动平均线方向一致的信号,周期、参数长度和计算方法都由你选择。早于过滤器自身数据的信号不作判定、原样保留,面板会写明这样的信号有多少个。
时段过滤器只保留位于某个时间窗口内的信号,窗口以 GMT 的 HH:MM 形式给出。经纪商的 GMT 偏移可以手工填写,也可以从服务器时钟自动识别。波动率过滤器会丢弃在 ATR 低于某个以点数给出的下限时产生的信号;下限为零时什么都不会丢弃,面板会直接写明这一点,而不是假装过滤器在工作。新闻过滤器会丢弃财经日历事件前后所选分钟数以内、且重要性不低于所选级别的信号,读取的是终端自带的日历。若日历不可用,面板会指出具体错误,而不是默默放行一切。
面板会长期显示哪些过滤器已开启、使用了什么设置,并用一行说明在多少条原始信号中保留了多少条,同时按是哪个过滤器拒绝了其余信号来分项列出。已开启却无法完成自身工作的过滤器,会在自己的那一行里说明这一点。
图表上有什么
移动止损线,按它当前所处的一侧着色。其下可选叠加同一条线的更宽、更淡的副本,让它在信息密集的图表上一眼就能看清。可选在止损线与价格之间填充阴影。翻转K线上的 BUY 与 SELL 箭头。还可以选择把当前止损位以标签形式显示在价格刻度上,不必再用眼睛去量。所有绘制都在价格窗口内完成。
面板
价格图表上的画布面板,可拖动、可折叠、可关闭。它显示生效的周期、实际使用的 key value 与 ATR 参数长度,以及 Heikin Ashi 是否开启。它说明最近一根已收盘K线的结果:BUY 翻转、SELL 翻转,或没有翻转。当前K线的状态在其成立期间以警示色显示:或是当前K线上正在形成一个 BUY 且仍可能消失,或是 SELL 的同样一行,或是仅使用已收盘K线、信号将在收盘时出现。它还说明提前提醒是否开启,以及在收盘前多少秒发声。它承载上文所述的过滤器区块,没有任何过滤器开启时该区块保持沉默。它并且说明这些数字来自属性窗口还是来自面板,以及其中有多少个被改动过。
下方是面板可以调整的设置及其当前值。齿轮打开一个三页标签的设置表。Values 页涵盖周期、key value、ATR 参数长度、Heikin Ashi 数据源、当前K线上的信号、趋势过滤器及其周期、MA 长度与 MA 方法,以及波动率过滤器及其 ATR 下限;每一行都有步进按钮、取值范围和一句说明。Alerts 页涵盖总开关、按事件的开关、四个通道、以分钟计的冷却时间和一个测试提醒。Styles 页涵盖配色、填充、辉光、线条、箭头、线宽、箭头大小和价格刻度标签,只改变外观。
三套配色:深色、浅色,以及一套使用蓝色与橙色、从不让红绿相对的色觉友好配色。面板状态和设置表上的每一处改动都按图表分别保存,可跨越周期切换和终端重启。界面为英文。
未收盘K线上的信号
在输入参数中和 Values 页里都有一个开关,决定是否允许在尚未收盘的K线上写入缓冲区和箭头。它出厂即为开启,只要处于开启状态,面板就会以警示色持续说明这一点。开启时,市场一做出翻转你就能看到,而这个翻转有时会在K线收盘前被撤销,箭头随之消失。关闭时,未收盘K线上什么都不会写入:不会有任何重绘,代价是每个信号在结构上都晚一根K线到达。产品不替你做选择,也不隐瞒自己处于哪种模式。
提醒
出厂时保持静默。事件为 BUY 信号和 SELL 信号。通道为弹窗、声音、推送到移动终端和电子邮件,具备按事件和按通道的开关,以及默认两小时的冷却时间。
提醒在最近一根已收盘K线上触发。另有两个默认关闭的提醒,只在未收盘K线上、且距其收盘所选秒数以内发声;你处于哪种模式由面板直接写明,无需自行推断。本产品不包含 Telegram。
多周期
Timeframe 设置在更高周期上计算,并把结果绘制在这里。只读取已收盘的高周期K线,因此图表上的一根K线对应的是按它自身时间已经收盘的那根最新高周期K线。这与趋势过滤器的周期是两回事:后者是过滤器,不是显示设置。
外部序列在后台构建。首次读取可能返回空值,指标会重试,面板会说明它是在等待下载还是确实缺少历史数据。它绝不会因为缺少K线而导致初始化失败。
从 EA 中读取
共十五个缓冲区,全部可通过 iCustom 与 CopyBuffer 读取。缓冲区 0 Buy 在 BUY 翻转K线上存放箭头价格,其余位置为 EMPTY_VALUE,且不绘制。缓冲区 1 Sell 对 SELL 翻转同理。缓冲区 2 与 3 是趋势填充的两条边界,缓冲区 4 与 5 是线条辉光的两条边界。缓冲区 6 与 7 是绘制出来的移动止损线,分别为向上与向下。缓冲区 8 BuyMark 与缓冲区 9 SellMark 是缓冲区 0 与 1 的可绘制副本。缓冲区 10 Stop 是移动止损位,缓冲区 11 是它的颜色索引。缓冲区 12 Signal 在 BUY 翻转时为 +1,SELL 翻转时为 -1,没有翻转时为 0。缓冲区 13 Override 统计从面板改动过的设置数量。缓冲区 14 Atr 是止损所依据的 ATR。
缓冲区 0 与 1 是契约:永不绘制,无论 Styles 页显示什么都会在每一次计算中填充,并出现在数据窗口中。隐藏箭头、填充或线条,都不会让策略拿不到信号。契约上已经应用了过滤器,因此读取缓冲区 0 的 EA 看到的信号,与人在图表上看到的完全一致。
通过 iCustom 创建的实例只读,并且始终使用你传入的参数。缓冲区 13 让策略能够察觉图表实例正运行在被手工改动过的数值上。
来源
本产品是 TradingView 上「UT Bot Alerts」的移植:创意来自 HPotter,带提醒的版本由 QuantNomad 与 Yo_adriiiiaan 发布。该脚本为公开发布,因此按公式移植是可以接受的;此处的实现是把公式当作工作规格重新构建的,而不是逐行翻译。
产品沿用该方法的名称,是因为它实现的正是这一方法。原始作品归其作者所有,此处不主张对其拥有任何著作权。
诚实的局限
在未收盘K线信号开启时,也就是产品出厂时的状态,当前K线上的箭头可能在该K线收盘前消失。每当这一情形成立,面板都会以警示色说明。关闭该设置,未收盘K线上便不会写入任何内容。已收盘K线在两种模式下都不会改变。
移动止损线终究只是移动止损线。在震荡行情里它会被反复打掉,而每一次都是真实的翻转,也是一笔糟糕的交易。过滤器正是因此而存在,但没有任何一个能消除这个问题,它们只能降低你遇到它的频率。
新闻过滤器依赖终端的财经日历。如果你的账户或经纪商无法使用该日历,过滤器会处于闲置状态,面板会指出具体错误。它不会假装工作而默默放行一切。以 HH:MM 之外的格式给出的时段窗口会让时段过滤器处于闲置状态,面板会写明这一点,而不是以你看不见的理由丢弃信号。趋势过滤器无法判定早于它所拥有的高周期数据的信号;这类信号会被原样保留,并由面板计数。
此处不主张任何收益数字、胜率或回测结果。

