ForexBestRobots.com比较 EA →
ZH

动量与反转 · 策略2

ROC外汇动量延续策略:回落与再加速

用首次回穿、固定价位、有效期限和计入成本的仓位计算,检验ROC动量回落后的延续条件。包含可复现的EURUSD示例及失效情况。

阅读约21分钟由 ForexBestRobots 编辑团队审查
ROC动量延续需要先确认回落,再出现首次回穿,并在同一根K线上满足价格突破条件。
重新高于零轴只是候选信号,并不意味着可以追价入场。

动量暂时减弱,并不一定意味着此前的走势已经结束。这个教学用延续模型寻找价格变动率ROC短暂回落至零轴附近后,再度沿原方向运动,并在收盘时完成价格突破的过程。回落条件、期限和首个有效候选都须在检查入场报价之前确定。

这里的“延续”是指此前短期动量阶段的恢复,既不证明更高周期的趋势,也不预测价格还会继续上涨。RSI失败摆动策略讨论的是另一种反转假设。对这两种模型而言,规则能够复现,本身并不能证明存在可盈利的优势。

1. 固定基本规格及其适用范围

使用EURUSD、H1、Bid K线,并以Close计算ROC(4)。所有判断只采用已收盘K线。较短的参数周期、此前3根K线的动量阶段、4根K线的恢复窗口,以及下述限制,都是明确的教学设定,不是优化结果或实盘推荐参数。

仅在没有持仓时,为每个品种运行一个监测周期。持仓期间忽略新形态。监测取消、到期或触发条件已被消耗后,不能在同一根K线上启动另一个周期;须等待后续符合条件的新回落。每个新周期都必须独立满足完整的前期动量条件。

若缺少任何必要的OHLC数据或指标读数,取消当前监测周期。不得用零代替、跳过缺失K线,或根据后来的图表重构回落过程。基本模型不加入均线、背离、交易时段或经济日历过滤器。任何新增条件都构成另一个需要验证的版本。

2. 区分ROC的零轴与MT4 Momentum的100线

定义ROC(n) = 100 × (Close(t) / Close(t−n) − 1)。它表示回看周期两端收盘价的百分比变化。MT4内置Momentum使用100 × Close(t) / Close(t−n);因此,当周期和输入价格Close相同时,ROC = Momentum − 100。

所以,ROC的零轴对应Momentum的100线。读数为正,只说明最新收盘价高于参照收盘价;它不衡量买入成交量,也不保证趋势持续。计算除法前,排除无效或非正的价格输入。判断使用完整精度,而不是图上四舍五入后的标签。

即使最新收盘价下跌,当一个较早、较高的参照价格移出窗口时,ROC也可能转正。下述固定价位突破增加了一个可观察条件,但两项判断都来自价格,并非独立证据。动量指标指南解释了这些指标究竟在衡量什么。

3. 在首次有效回落时启动BUY监测

在已收盘K线A上,要求紧邻此前的3个ROC读数都严格为正,当前读数为≤ 0。恰好为零也符合条件。这标志着所测正动量阶段结束,并启动BUY监测,但尚不允许下单。

A收盘时,固定其Bid最高价High(A),以及下方失效界限F = Low(A) − 1 pip。后续K线出现后,不得移动这两个价位。监测从A收盘后才开始;A自身的最低价不会使刚定义的下限失效。

只检查接下来的4根已收盘H1 K线,包含第四根。等待期间,只要后续Bid最低价≤ F,就取消该周期,即使同一根K线最终强势收盘也一样。先判断失效,再检查触发条件。ROC继续出现非正读数,不会重新计时。

ROC连续三次为正后,出现回落A。此后首次转正的K线,只有在未触及固定失效价位、且同一根K线收于High(A)之上时,才可成为T。
ROC连续三次为正后,出现回落A。此后首次转正的K线,只有在未触及固定失效价位、且同一根K线收于High(A)之上时,才可成为T。在较窄的屏幕上,可横向滚动查看此图。

4. 首次重新高于零轴的机会只使用一次

后续首根满足ROC > 0的已收盘K线,是唯一候选T。先确认未触及下限,再要求同一根K线满足Close(T) > High(A)。价格相等不算突破。ROC等于零时继续等待,不能触发BUY。

如果首次正读数没有同时满足价格突破,则永久取消该周期。后来的突破不能让它恢复。到第四根有效K线收盘时仍未出现正读数,则周期到期。第四根若满足所有条件,仍可触发;每根K线都优先判断失效条件。

不在固定高点放置挂单,也不根据K线尚未收盘时的指标值入场。只有T收盘后,候选才成为已知信息。下一根K线开始后,T的偏移量为1,正在形成的K线偏移量为0。须区分分析条件确认与市场上可执行的报价。

回落A在07:00收盘后才确定。首次转正和价格突破在09:00收盘后才确定。第一笔可执行报价在下一根H1 K线内的09:00:10接受检查。
回落A在07:00收盘后才确定。首次转正和价格突破在09:00收盘后才确定。第一笔可执行报价在下一根H1 K线内的09:00:10接受检查。在较窄的屏幕上,可横向滚动查看此图。

5. 检查报价前固定BUY离场价

BUY的计划SL就是已固定的Bid下限F。T收盘时,设定TP = Close(T) + 2 × (Close(T) − F)。评估报价期间,这两个价格保持不变。为了让迟到的入场看起来合格而重新锚定目标,会改变模型。

SL或TP先实际执行时,退出全部仓位。否则,在T之后的8根H1 K线全部收盘后,以第一笔可用报价请求市价离场。本模型没有移动止损、部分平仓、亏损加仓,也不会因后续ROC再次穿越零轴而离场。

目标价是几何规则,不是预测。跳空、报价缺失和滑点,都可能使实际离场比计划止损更差。如果附近障碍使本规格缺乏吸引力,应跳过或另行定义并测试过滤条件,不能悄悄改变基本规则。

6. 为SELL明确Bid与Ask各自的作用

  • 当此前3个ROC读数都严格为负、当前读数为≥ 0时,设置A。固定Low(A),以及Bid上方失效界限U = High(A) + 1 pip。当前值恰好为零,也符合重置条件。
  • 在接下来的4根已收盘K线中,先检查Bid最高价;若≥ U,立即取消周期。首次ROC < 0必须同时满足Close(T) < Low(A)。价格相等或首次价格突破失败都会取消周期,后续不得恢复。期限与禁止重复使用同一根K线的规则相同。
  • SELL离场由Ask触发。设定SL = High(A) + 3 pips,其中包括1pip结构缓冲与2pips点差余量。T收盘时,将Ask目标固定为TP = Close(T) − 2 × (SL − Close(T))。全仓退出和时间退出规则相同。

Bid失效上限与Ask SL用于不同阶段。点差余量并不是对历史Ask最高价的重建;未来点差扩大,可能更早触发SELL止损。须使用适合的Bid/Ask数据测试,不能假定两侧报价相同。

7. 检查执行条件与组合风险限制

T收盘后,在数据就绪时评估第一笔新鲜报价,且必须在收盘后的60秒内。BUY按Ask入场,SELL按Bid入场。要求价格为正、Ask ≥ Bid,且点差≤ 2pips。BUY须满足SL < Bid与Ask < TP;SELL须满足TP < Bid与Ask < SL。没有及时报价就不交易。

要求预计净收益与计划止损损失之比≥ 1.5。两种估算都使用实际报价方向、完整开平仓佣金,以及入场1pip和离场1pip的不利执行余量。点差已体现在Bid/Ask中,不得重复扣除。首笔报价不合格,该周期即被消耗。

新交易最多分配当前账户净值的0.5%,整个组合的计划止损风险合计最多为净值的1%。以账户货币计算每手损失,再按经纪商手数步长向下取整。最小手数、保证金、交易权限或止损距离不符合要求时,应跳过。相关持仓共同占用组合风险预算。

这些是计划限制,不是实际损失上限的保证。须核对品种的最小跳动单位、每跳价值和合约规格。区分pip与平台point:EURUSD报价为小数点后5位时,1pip等于10points。风险管理指南介绍完整的仓位计算过程。

8. 复现这组合成数据

以下虚构Bid K线采用同一套假设服务器时钟,标签表示收盘时间。第一根Open等于其Close,此后Open等于前一根Close。High为Open和Close中的较大者加0.00020;Low为较小者减0.00020。这只是算术示例,不是历史证据或回测。

H1收盘时间Bid收盘价ROC(4), %MT4中的Momentum(4)
00:001.10000——
01:001.10050——
02:001.10100——
03:001.10150——
04:001.102000.181818100.181818
05:001.102500.181736100.181736
06:001.103000.181653100.181653
07:001.10120-0.02723699.972764
08:001.10180-0.01814999.981851
09:001.103400.081633100.081633

04:00、05:00和06:00的读数为正。在A,即07:00,ROC变为−0.027236%。固定High(A) = 1.10320、Low(A) = 1.10100与F = 1.10090。08:00的最低价仍高于F,ROC仍为非正。

在T,即09:00,ROC为0.081633%,Bid收盘价为1.10340,严格高于固定高点。中间没有最低价触及F。因此,期限内的首次转正同时通过价格检查。指标展示到小数点后6位,判断使用未取整的计算值。

合成的EURUSD H1 Bid K线与ROC(4)。回落A于07:00收盘;T于09:00收于High(A) 1.10320之上。SL为1.10090。数据在T处结束,不提供交易结果。
合成的EURUSD H1 Bid K线与ROC(4)。回落A于07:00收盘;T于09:00收于High(A) 1.10320之上。SL为1.10090。数据在T处结束,不提供交易结果。在较窄的屏幕上,可横向滚动查看此图。

BUY的SL为1.10090,TP为1.10840。只有结束于09:00的K线收盘后,才评估报价。若实际成交,且此前没有价格离场,时间退出将在17:00到期。本例不提供后续价格路径、成交确认或离场结果。

9. 先计算成本,再确定手数

假设为USD账户,净值$10,000,每手100,000EUR,1pip等于0.0001,每手每pip价值$10,手数步长0.01。09:00:10的首笔就绪报价为Bid 1.10340 / Ask 1.10352,点差1.2pips。假设每手开平仓佣金合计$7,本例没有融资费用,并计入已说明的不利执行余量。

检查项计算结果
风险预算10,000 × 0.005$50
计入成本后的每手预计损失(26.2 + 1 + 1) × 10 + 7$289
扣除成本后的每手潜在收益(48.8 − 1 − 1) × 10 − 7$461
净收益/计划损失461 / 2891.595156
按手数步长向下取整floor((50 / 289) / 0.01) × 0.010.17
该手数对应的计划止损损失0.17 × 289$49.13

示例报价通过收益损失比门槛。若假设Ask为1.10380,则每手损失为$317,潜在收益为$433:433 / 317 = 1.365931,低于1.5。应拒绝这次机会,不得扩大目标或在同一周期内等待更好的报价。

0.17手的计算假设组合剩余风险预算充足,且经纪商条件有效。余量只是对不利执行的估计,不保证最大损失,也不保证按显示价格成交。账户货币或合约不同,就必须重新计算每手损失。

10. 保留失败与错过的交易

  • 没有此前连续三次正读数的非正回落:不启动BUY监测。
  • 首次转正时,同一根K线未完成价格突破:永久取消。
  • 触及失效价位、缺少观测数据或窗口到期:不入场。
  • 报价过晚、点差过大、净收益损失比不足或风险检查失败:消耗触发机会并跳过。

震荡市场可能反复出现回落和假突破。回看周期较短,参照收盘价也会迅速改变。重要的定期或突发新闻、展期时段和跳空,都可能超出示例的点差与滑点假设。应记录这些市场状态,不能看过结果后删除相应损失。

基本规格没有排除交易时段或新闻。只有将排除条件定义为单独版本,并记录错失交易数量、进行独立验证后,才能加入。指标与收于回落高点之上的条件仍是相关的价格变换;条件更多,本身不证明期望收益更好。动量指标组合指南讨论了这种依赖关系。

11. 在EA和测试中保留时间顺序

将品种、周期、规则版本与A的开盘时间戳保存为监测周期标识。持久化保存固定价位、截止时间和是否已消耗的状态。每根已收盘K线只处理一次。区分分析触发、订单请求和已确认持仓。本文提供的是模型规格,不是已测试的EA源代码。

订单响应不确定或程序重启后,先核对未平仓订单与历史记录,再发送其他请求。超时不证明订单不存在。已知被拒绝的同一周期也不重试。记录超额滑点和实际敞口,不能通过放宽SL或增加手数掩盖执行偏差。

先用时序日志验证ROC/Momentum换算、严格比较、零值等号、期限和失效优先顺序。SELL须单独使用Ask离场测试。然后再用适合经纪商的报价、佣金、融资与不利成交评估完整假设。如果同一根OHLC K线内到达两个离场价位,使用tick先后顺序;若无法判断,须标明歧义,并报告保守的SL先执行假设。

将开发阶段与后续评估分开,保留所有尝试过的版本。报告净收益时,同时给出回撤、敞口、交易数量和不确定性。前向验证使用之后到来的新数据,但不保证实盘结果。MT4回测指南解释了整体流程。本文没有证实任何胜率或收益率。

12. ROC延续策略常见问题

ROC零轴就是MT4 Momentum的零轴吗?

不是。当输入Close和周期一致时,ROC等于Momentum减去100。因此ROC零值对应Momentum 100。把MT4原始值直接与零比较,会完全改变策略。

恰好回到零也算有效重置吗?

算。BUY在此前3个读数严格为正、当前ROC为≤ 0时开始监测;SELL使用相反符号。BUY触发要求ROC > 0,SELL触发要求ROC < 0。等于零不能触发任何方向。

首次回穿失败后,可以继续等价格突破吗?

不可以。首次回穿是唯一候选。如果其已收盘K线未严格突破固定价格,周期立即取消。后续突破是新的观察,并不允许恢复旧触发机会。

收于回落高点之上,是独立确认吗?

这是额外的价格条件,不是独立信息。ROC和突破都来自相同市场价格。它们组合后的交易价值,必须在扣除成本后,用未参与规则选择的数据衡量。

这些周期和风险上限属于推荐设置吗?

不属于。它们只是让教学示例明确且可复现,未针对任何经纪商、行情状态或实盘账户进行优化与验证。计划风险和执行余量无法为所有可能发生的实际损失设定上限。

这个例子展示了一笔盈利交易吗?

没有。给出的系列在分析触发点结束。第一笔报价只说明交易资格计算,不代表确认成交。没有提供后续价格、实际收益或盈利离场结果。

13. 技术参考与适用范围

官方MetaTrader 4 Momentum说明介绍了基于价格比值的指标。本文以零为中心的ROC表达式,是在相同输入下对其进行的代数转换。前期动量、限时回落、价格条件、离场和成本限制,属于本文的教学规格,并非开发商认可的交易参数。

外汇及杠杆交易涉及重大风险。本策略仅用于教育,不构成投资建议。过去或模拟结果不能保证未来表现。