Structure Flow and Trailing Stop
- 指标
-
Narayanan Mohanan Mohanan Krishnan
我为 MetaTrader 开发测量工具。它们描述市场已经发生了什么,并明确说明每项测量的局限,而不是加以掩饰。
三十年的生产系统与自动化经验,2020 年转向量化研究。研究工作在 Python 中进行——回测框架、前向验证、对大量候选策略的统计评估——经受住检验的成果才会成为指标或智能交易系统。方法论以证伪为先:在样本外得到验证之前,任何结果都被视为假象。上架的每件工具都载明自身测量的局限,说明读数在何处不再具有意义,并记录两个平台出现分歧之处,而不是悄悄取平均值。
此处发布的任何产品都不产生交易信号,也都不附带任何业绩宣称。 - 版本: 1.0
- 激活: 5
本指标在价格图表上绘制两条线:一条跟随市场方向的自适应流向线,以及一条只朝该方向移动、绝不回退的跟踪止损。一个小面板显示其背后的市场状态。
跟踪止损可以用五种不同的方法计算。它们并非同一思路的变体——每一种锚定的对象都不同,在同一张图表上它们经常给出不一致的结论。
流向线
一条自适应均线。当价格来回震荡时它平滑得更重,当价格单向行进时平滑得更轻,因此在行情推进时紧贴价格,又不会在震荡区间里追逐每一次波动。三个参数控制它:测量窗口,以及所允许的最快与最慢平滑程度。
噪声过滤会在价格尚未离开该线足够远时保持它不动。该阈值以 ATR 表示,因而会随品种自动缩放,而不是假定某个固定的点值。
跟踪止损及其五种方法
止损只朝趋势方向推进。它绝不逆趋势移动,也绝不回撤,因此在盘整期间会保持原有水平,而不会向价格靠拢。当价格穿越它时,趋势反转,止损移至另一侧。
- 摆动枢轴 — 锚定于流向线最近一次的摆动位置,若 ATR 跟踪更贴近则改用后者。属于结构型:它位于市场上一次转向的位置。
- ATR 跟踪 — 与流向线保持固定的 ATR 距离,逐根K线棘轮式推进。五者中最平滑的一种,因为它继承了流向线自身的平滑特性。
- SuperTrend — 围绕每根K线中位价的 ATR 通道,收盘价穿越时反转。它并不平滑而是呈阶梯状:随K线逐级推移,而非随均线弯曲。
- 吊灯止损 — 锚定于回溯期内流向线的最高点或最低点。能扛住那些更紧的方法早已放弃的回调。
- 唐奇安通道 — 回溯期内的最高价与最低价,完全不含 ATR 成分。五者中最宽、反转最慢的一种。
由于锚定对象不同,它们给出的答案也不同。其中一张截图展示了同一张比特币日线图上的三种方法:一种已看跌 111 根K线,一种看跌 61 根,另一种看涨 20 根。相同的数据、相同的设置,却有三种都站得住脚的解读。哪一种适合您,取决于您如何交易,而非哪一种才是正确的。
同一图表上可运行多个实例,各自采用不同的方法并拥有各自的面板——上述截图正是这样制作的。
状态面板
每根K线上评估四项条件:流向的方向、它相对于波动率通道的位置、市场的摆动结构,以及当前推动力的强弱。面板显示其中有多少项达成一致、方向如何,同时给出流向的趋势持续时间、波动率状态与压缩读数。
这是对市场当前所处位置的概括,而非行动指令。四项条件一致描述的是当下,并不预测随后会发生什么。
面板可置于任意角落或垂直居中,当同一图表上运行多个实例时,还可切换为仅两行的紧凑形式。
从 EA 中读取
全部八个缓冲区均已开放并有完整文档。其中四个根本不绘制——它们的存在是为了让 EA 以数值形式读取指标的结论,而不必从图形中推断。
int h = iCustom(_Symbol, _Period, "StructureFlowTrailingStop"); double stop[], regime[]; ArraySetAsSeries(stop, true); ArraySetAsSeries(regime, true); CopyBuffer(h, 2, 0, 100, stop); // 跟踪止损位 CopyBuffer(h, 7, 0, 100, regime); // 1..5,见下文
- 0 — 流向线
- 1 — 流向线颜色索引
- 2 — 跟踪止损位
- 3 — 止损颜色索引
- 4 — 条件质量,0 至 100
- 5 — 条件位掩码:1 流向、2 波动率、4 结构、8 推动力,故 15 表示四项全部一致
- 6 — 趋势方向,+1 或 −1
- 7 — 市场状态:1 趋势、2 震荡、3 压缩、4 扩张、5 衰竭
缓冲区 7 尤其值得留意。需要在轮动行情中暂停操作的系统,可以直接读取它,而不必自行推导一套状态判断。
其中一张截图展示了数据窗口中单根K线上这些数值及其标签。
输入参数
- 流向线 — 自适应窗口、最快与最慢平滑,以及以 ATR 表示的噪声阈值
- 跟踪止损 — 方法、ATR 周期与倍数、通道回溯期,以及枢轴设置
- 市场结构 — 两侧各需多少根K线构成一个摆动,以及多少次突破可确认状态转换
- 条件 — 推动力阈值、一种状态需维持多少根K线才计入,以及向前评估多少根K线
- 显示 — 两种颜色,以及面板所在角落、垂直位置、偏移、字号与紧凑模式
截图说明
- 比特币日线,同时运行三种方法 — 摆动枢轴、吊灯止损与 SuperTrend,各有自己的面板,对同一张图表给出不同结论。
- 数据窗口 — 单根K线上全部可读缓冲区,包括市场状态与条件位掩码。
- US30 五分钟图 — 止损紧随一波持续回升,在每一次停顿时保持原有水平。
- 黄金日线 — 一个完整周期:止损跟随上涨,在顶部反转,随后跟随下跌。
- AUDJPY 一小时图,以及 ETHUSD、GOOGL 与 EURCAD 日线 — 在外汇、加密货币与股票上呈现同样的行为。
- 状态面板与参数窗口 — 全部设置,以及下拉列表中的五种方法。
计算行为
已收盘K线的数值为最终值。正在形成的K线在每个 tick 上依据内部状态的一份副本重新计算,因此止损能对实时价格作出反应,而历史所依赖的那份状态只在K线收盘时推进一次。一条只在收盘时更新的跟踪止损,恰恰会在最关键的行情中纹丝不动。
在计算取得所需历史数据之前不会绘制任何内容,也绝不会用不完整的窗口算出数值再当作完整结果绘制出来。
说明
- 绘制在价格图表上。两条可见线条,无独立子窗口。
- 同一图表可挂载多个实例,各自使用不同方法并拥有独立面板。若两个实例使用相同方法,应为其设置不同的面板位置。
- 止损是一个价位,而不是订单。本指标绘制的是跟踪止损应处的位置。它不知道您的持仓,不会下单或修改订单,也不管理交易。
- 成交量读数使用跳动量,任何经纪商都会提供。
- 无外部依赖。所有数值均在指标内部计算。它不调用任何其他指标,因此没有可能失效的句柄,无需另行安装任何组件,也不依赖您标准指标文件夹的状态。
本产品是什么,不是什么
这是一款用于技术分析和筛选市场状况的工具。它不是交易系统,不产生买卖信号,不提供投资建议,也不会开仓或管理持仓。
这里刻意没有入场箭头。止损位与达成一致的条件数量描述的是市场当前所处的位置;把它转化为决策是读者的工作,而不是指标的工作。
它是描述性的而非预测性的,本产品亦不作任何绩效方面的声明。
免费演示版可在策略测试器中运行。请把它放到您实际交易的品种和周期上,逐一试用五种止损方法,并在自己的图表上作出判断。
| 该开发者的其他工具 我开发 MT5 指标与 EA,注重代码整洁、文档完整、不重绘——采用收盘K线逻辑、经过验证的缓冲区,且不依赖任何其他指标。 此处的五状态分类与 Oscillator Regime Suite 所用的完全相同,区别在于后者将其应用于独立子窗口中由成交量派生的序列,而非图表上的价格。 对计算方法、缓冲区,或在您自己的 EA 中使用本指标有疑问?欢迎给我发私信,我很乐意解答。 |
由 MT5/MQL5 开发者 Narayanan Mohanan 开发并维护。
如您发现本页译文有误,欢迎与我联系,我会及时更正。
