UT Bot Scanner
- 指标
-
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
- 更新: 2 九月 2026
- 激活: 20
UT Bot Scanner 是一个文件里的两个产品。第一个是 UT Bot MTF 本身,画在你眼前的这张图上:按所处一侧着色的 ATR 移动止损,以及翻转箭头,并带有与单图表产品相同的四个可选过滤器。
第二个是一块看板,把同一套计算同时跑在一串品种和若干周期上。看板告诉你哪些品种翻转了、翻转了多久;它下面的图表让你看到移动止损,因此不必再挂第二个指标去执行表格找到的东西。
两半跑的是同一套过滤器,所以看板和图表对"什么算信号"永远不会给出互相矛盾的答案。
过滤器
每个过滤器出厂时都是关闭的。每一个都是关于市场的一个独立假设,都可以单独打开。趋势过滤器只保留与高周期均线方向一致的信号,周期、参数和均线算法都由你选。比过滤器自身数据更早的信号不作评判而是原样保留,面板会统计这些。
时段过滤器只保留落在以 GMT 的 HH:MM 给出的窗口内的信号,经纪商的 GMT 偏移可以手工给出,也可以从服务器时钟识别。波动率过滤器丢弃 ATR 低于某个点数下限时产生的信号;下限为零时它从不拒绝任何东西,面板会直说,而不是假装过滤器在工作。新闻过滤器读取终端自带的财经日历,丢弃指定重要度以上事件前后指定分钟内的信号。日历不可用时,面板会把错误说出名字。
面板长期显示哪些过滤器开着、用的什么设置,并用一行说明原始信号多少条、留下多少条,以及其余各被哪个过滤器拒掉。一个开着却无法履职的过滤器,会在自己那一行说出来。
看板
每个品种一行,每个扫描周期一列,最多四列、最多二十八个品种。品种列表用逗号分隔,也可以直接取 Market Watch 的列表。经纪商前缀和后缀从当前图表识别,也可手工给定。开箱默认扫描四个周期:M15、H1、H4 和 D1。
单元格读作 ^14b:移动止损站在哪一侧,以及多少根K线之前翻到那一侧。flat 表示计算跑过了但在窗口内没找到翻转。三个点表示这个单元格还没有被测量,把鼠标停上去会用文字说明原因,并附上 ATR 距离。超过新鲜度阈值的翻转保留色相、失去分量。行内任何位置有新鲜翻转时,整行会铺上一层强调色。
AGREE 列对每个品种取可见的周期列,找出多数一侧,打印成 v3/4 这样的形式:方向,以及可见周期中有几个站在那一侧。完全一致用该方向的颜色加粗绘制,因为看板存在的意义就是把这样的行捞出来。平局打一个短横,这是刻意为之,它不是结论。只有一个周期可见时,整列会被丢弃,而不是打印一个只重复旁边单元格的 1/1。
列标题就是按钮。点击周期标题按该列排序,最新在上,该列为空的行沉到底部;再点一次反向。点击 AGREE 按一致程度排序,完全一致排在最前,同样数量时全员一致优先于部分一致。活动标题带上强调色和一个尖角。另有一个 Sort 按钮,在 freshest、grade、name 之间循环。
Show 按钮在 all、buys、sells、fresh 之间循环。buys 和 sells 跟随 AGREE 的结论而不是任何单个单元格,因此出现在 buys 下的行在 AGREE 里一定读到向上的符号,平局的行在两边都不出现。这是对视图的过滤而不是对计算的过滤:被隐藏的行仍在测量,仍会发出提醒。
表格上方的图例解释记号,可以关闭。周期按钮只显示或隐藏某一列,不会停掉它背后的测量。点击单元格会把当前图表切换到那个品种和那个周期,而不是每点一次开一个窗口。
可见行数按图表窗格自动适配,行数设置是上限。只有当行放不下时才出现翻页按钮;放得下时不会画出无效的控件。因为看板从不画出比窗格能容纳更多的行,所以无论行数设置多大,翻页按钮永远在屏幕内、永远够得着。
两行状态始终显示:已就绪品种数与总数、距上次更新多久、回看窗口内的信号数;然后是看门狗那一行,或者一句解释为什么什么都没显示。
诊断
第二块面板默认关闭,回答"为什么没有信号":品种覆盖情况、哪些序列K线不足以及差多少、窗口内找到多少信号,以及这个指标在 Market Watch 里打开了多少品种。无法测量的单元格会给出解释,而不是留空。
图表指标
画在价格窗口里:按所处一侧着色的移动止损,以及 BUY 和 SELL 箭头。如果你只要看板,可以在 Styles 标签页里关掉它。它的周期与看板扫描的周期分开设置,也与趋势过滤器的周期再分开一层,因为后者是过滤器而不是显示设置。
设置页
齿轮打开三个标签页。Values 涵盖周期、key value、ATR 周期、Heikin Ashi 数据源、趋势过滤器及其周期与 MA 长度和 MA 算法,以及带 ATR 下限的波动率过滤器。每一行都带步进按钮、取值范围和一句帮助。改动其中一项会重算整块看板,面板会同时报告进度。
Alerts 涵盖总开关、各事件开关、四个通道、冷却时间和一个测试按钮。
Styles 涵盖图例、是否在本图上绘制指标、调色板、止损线、箭头、线宽、箭头大小、趋势填充、线条辉光、价格轴上的止损位,以及给止损标签留的右侧空白。这些与配套的单图表指标是同一组显示控件,名称也相同,因此在一边调好的图表可以在另一边复现。
三套配色,其中一套是色盲友好的,用蓝色和橙色代替红色和绿色。面板位置、配色、排序、过滤、可见列,以及在设置页上改过的每一个值,都按图表分别保存,跨周期切换和终端重启后依然保留。界面为英文。
提醒
开箱默认关闭,总开关在面板上,旁边的 Test alert 按钮会通过当前打开的每一个通道发送一次。
事件是新鲜的 BUY 和新鲜的 SELL,对每个扫描周期分别声明,另加 data health,它在某个品种失去或恢复数据时开口。有一个最低等级设置;本移植不做等级评定,因此每个信号都算等级一。
通道是弹窗、声音、推送到手机端和电子邮件。冷却按单元格和事件分别保持,默认三十分钟,因为盯着许多品种的看板比单张图表有多得多的机会重复自己。Telegram 不属于本产品。
开销
工作量是有预算的:每个定时器节拍只刷新固定数量的品种,因此长列表会把负载摊开,而不是让终端卡住。首轮是渐进的,面板会报告已测量的百分比。
从 EA 读取
图表指标公开十二个缓冲区,全部可通过 iCustom 和 CopyBuffer 读取。缓冲区 0 Buy 在 BUY 翻转K线上携带箭头价格,其余为 EMPTY_VALUE,且不绘制;缓冲区 1 Sell 对 SELL 翻转同理。缓冲区 2 和 3 是趋势填充的两条边界。缓冲区 4 Glow 是止损线下方更宽更淡的副本,缓冲区 5 是它的颜色索引。缓冲区 6 Stop 是移动止损位,缓冲区 7 是它的颜色索引。缓冲区 8 BuyMark 和缓冲区 9 SellMark 是缓冲区 0 和 1 的绘制副本。缓冲区 10 Signal 在 BUY 翻转时为 +1,SELL 翻转时为 -1,没有翻转时为 0。缓冲区 11 Atr 是止损背后的 ATR。
过滤器已经作用在这些缓冲区所报告的内容上,因此 EA 看到的与人看到的一致。
缓冲区 0 和 1 是 EA 契约。它们从不被绘制,并且无论 Styles 标签页怎么设置都在每一轮被填充,因此显示侧的任何东西都不可能让策略拿不到信号。你在图上看到的是与契约保持同步的绘制副本。隐藏是通过改变一个 plot 的绘制方式完成的,从不通过清空缓冲区,所以上面列出的每一个索引在显示开关关掉时仍可被 iCustom 和 CopyBuffer 读取,也仍然出现在 Data Window 里。
这张映射表是扫描器自己的,与单图表产品 UT Bot MTF 并不相同:那一个把填充、辉光和止损放在不同的槽位上,并公开十五个缓冲区。请以上面的列表为准。
看板本身是面板而不是缓冲区。它靠眼睛读,靠提醒送达。
来源
本产品移植自 TradingView 上的 "UT Bot Alerts",构想出自 HPotter,带提醒的变体由 QuantNomad 和 Yo_adriiiiaan 发布。该脚本为公开发布,因此按公式移植是允许的,本实现是把公式当作工作规格重建的,而不是逐行翻译。
产品沿用该方法的名称,是因为它实现的就是这个方法。原作归其作者所有,此处不主张对其的著作权。
诚实的边界
看板读取已收盘的K线,单元格的年龄也按已收盘K线计数。图表指标不是这样:它也计算未完成的K线,所以未完成K线上的箭头和止损翻转可能出现,又在该K线收盘前消失。一根K线一旦收盘,它的箭头和止损位此后不再改变。
移动止损就是移动止损。在震荡区间里它会被反复打掉,放到看板上,这意味着在同一个安静的小时里会有好几个货币对亮起来,每一次翻转都是真的,每一次都是糟糕的交易。过滤器正是因此存在,而它们没有一个能消除这个问题。
新闻过滤器依赖终端的财经日历。如果它在你的账户或经纪商处不可用,过滤器就闲置,面板会把错误说出名字,而不是悄悄放行一切。时段窗口若不是以 HH:MM 给出,时段过滤器同样闲置,面板会直说,而不是无声地丢弃信号。趋势过滤器无法评判比它持有的高周期数据更早的信号,那些信号原样保留并被统计。
AGREE 数的是周期,它不估计概率。对同一个品种的四次相关读数一致,不等于四次独立确认。平局刻意不给结论,并且在 buys 过滤和 sells 过滤下都被隐藏。
扫描是有代价的。二十八个品种乘四个周期是一百一十二个单元格,趋势过滤器还会为每个品种再叠加一条高周期序列。要调低的是预算设置。
此处不主张任何收益数字、胜率或回测结果。

