Half Trend 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
Half Trend MTF 画出一条阶梯状的趋势线:在市场把它的位置夺走之前,它一直守住自己的水平;一旦被夺走,它就翻到另一侧。围绕这条线的是一个 ATR 通道。
它支持的判断很简单,而且可以直说:线告诉你趋势目前守在哪一侧,翻转告诉你这一点是在哪一刻改变的,通道则告诉你在这次翻转开始产生意义之前,当前波动率给价格留下了多大余地。
由于只有当最近 N 根K线的极值朝着不利于它的方向移动时这条线才会挪动,它不会像移动平均线那样在震荡中来回游走。它先是纹丝不动,然后翻转。
图表上有什么
按趋势颜色绘制、在翻转K线上不断开的 Half Trend 线:上升阶段用一条曲线,下降阶段用另一条,在交接处彼此相连。ATR 通道,即上下两条带,其与线的距离为 ATR 一半的若干倍,每条带都是各自颜色的细线。两者之间是两片柔和的填充:线上方为多头色,线下方为空头色,价格处于通道的哪一半一眼可读。以及翻转K线上的 BUY 与 SELL 箭头。所有绘制都在价格窗口内完成。
面板
价格图表上的画布面板,可拖动、可折叠、可关闭。它显示生效的周期和实际使用的振幅(amplitude)。它说明最近一根已收盘K线的结果:BUY 翻转、SELL 翻转,或没有翻转。它并且说明屏幕上的数字来自属性窗口还是来自面板,以及其中有多少个被改动过。
下方是面板可以调整的设置及其当前值。齿轮打开一个三页标签的设置表。
Values 页涵盖周期、振幅、是否显示未收盘K线上的信号、通道偏差和 ATR 参数长度。每一行都有步进按钮、取值范围和一句说明,页面上还有一个计数器显示有多少个值已不再是属性窗口里的数字,以及一个把它们全部恢复的按钮。
Alerts 页涵盖总开关、按事件的开关、各个通道、以分钟计的冷却时间和一个测试提醒。Styles 页涵盖配色、是否绘制线条、ATR 通道与箭头、各带独立开关的两片通道填充、线宽和箭头大小;它只改变外观,绝不会触发重新计算。
三套配色:深色、浅色,以及一套用蓝色与橙色代替红绿的色觉友好配色。面板的一切,包括在设置表上改动过的每一个值,都按图表分别保存,可跨越周期切换和终端重启。界面为英文。
提醒
出厂时保持静默。共有三个事件:BUY 翻转、SELL 翻转,以及价格触及 Half Trend 线,最后这一个是回撤事件,而不是反转事件。
通道为弹窗、声音、推送到移动终端和电子邮件。具备按事件和按通道的开关,冷却时间默认两小时。
提醒在最近一根已收盘K线上触发。另有两个默认关闭的提醒,在未收盘K线上、距其收盘所选秒数以内发声;它们之所以被称为提前提醒,是因为K线中途出现的翻转可能被撤销。本产品不包含 Telegram。
未收盘K线上的信号
有一个开关比其他开关更重要,它同时出现在 Values 页和输入参数中:是否允许在尚未收盘的K线上写入缓冲区和箭头。
开启时,也就是产品出厂时的状态,市场一做出翻转你就能看到。这个翻转有时会在K线收盘前被撤销,箭头随之消失。关闭时,未收盘K线上什么都不会写入:不存在任何形式的重绘,代价是每个信号在结构上都晚一根K线到达。
两种行为都是正当的。产品不替你做选择,也不隐瞒自己正在采用哪一种:面板和设置名称都会说明这一点。
多周期
Timeframe 设置在更高周期上计算,并把结果绘制在这里。只读取已收盘的高周期K线:图表上的一根K线对应的是到这根K线自身收盘时已经收盘的那根最新高周期K线,因此翻转落在与高周期K线同时收盘的那根K线上,图上不会出现任何实时无法得知的内容。
外部序列在后台构建。首次读取可能返回空值,指标会重试,面板会说明它是在等待下载,还是确实遇到了历史数据不足。它绝不会因为缺少K线而导致初始化失败。
从 EA 中读取
共十六个缓冲区,全部可通过 iCustom 和 CopyBuffer 读取。缓冲区 0,Buy,在 BUY 翻转K线上携带箭头价格,其余为 EMPTY_VALUE,且不绘制。缓冲区 1,Sell,对 SELL 翻转同理。缓冲区 2 到 5 属于两片通道填充:绘图机制,不用于读取。缓冲区 6,Half Trend Up,是上升阶段的趋势线;缓冲区 7,Half Trend Down,是下降阶段的同一条线;在翻转K线上两者都有值,正是这一点让绘出的线保持连续。缓冲区 8,ATR High,是通道上带;缓冲区 9,ATR Low,是下带。缓冲区 10,BuyMark,和缓冲区 11,SellMark,是缓冲区 0 和 1 的绘制副本。缓冲区 12,Signal,在 BUY 翻转时为 +1,SELL 翻转时为 -1,无翻转时为 0。缓冲区 13,Override,统计有多少设置被面板改动。缓冲区 14 以一条连续序列保存这条线,缓冲区 15 保存趋势本身,上升为 0,下降为 1,因此策略无需再靠哪个线缓冲区为空来推断方向。
缓冲区 0 与 1 是契约:永不绘制,无论 Styles 页怎么设置都会在每一次计算中填充,并出现在数据窗口中。隐藏箭头不会让策略拿不到信号。
通过 iCustom 创建的实例只读,并且始终使用你传入的参数。缓冲区 13 让策略能够察觉图表实例正运行在被手工改动过的数值上。
来源
本产品是 everget 在 TradingView 上发布的「HalfTrend」的移植,而那份脚本本身又是一个更早的 MT4 指标的移植。该算法是经典算法,源头在 MT4。TradingView 上的脚本为公开发布,因此按公式移植是可以接受的;此处的实现是依据公式重新构建的,而不是逐行翻译。
产品名为 Half Trend MTF,是因为 Half Trend 是该方法的名称,而不是因为有人主张对它的著作权。原始作品归其作者所有。
诚实的局限
在未收盘K线信号开启时,也就是产品出厂时的状态,当前K线上的箭头可能在该K线收盘前消失。关闭该设置,未收盘K线上便不会写入任何内容。已收盘K线在两种模式下都不会改变。
阶梯状趋势线在设计上就是滞后翻转的。在震荡行情里它会反复翻转,而每一次都是这条线真实的翻转,也是一笔糟糕的交易。这里没有任何机制去判断趋势是否真的存在。
ATR 通道描述的是波动率。它不是目标位,不是止损位,也不是关于价格将走向何处的论断。
振幅、通道偏差和 ATR 参数长度都会移动翻转的位置。两套配置会产生两组不同的箭头,其中没有哪一组是正确答案。
此处不主张任何收益数字、胜率或回测结果。

