轮换是账户层面的决策,不只是每天列出第一名。本教学策略用已收盘K线的带符号收益率比较固定货币对,只交易一个合格品种,并设置换仓缓冲,避免每次排名小幅变化就改变敞口。
区分空仓时排名、复核现有持仓、确认退出。出现新第一名不意味着可以同时持有两对。规则和数字均为待测试的原创假设,不是已验证业绩或推荐设置。缓冲不能证明最优换手率或盈利优势。
1. 固定品种池与共享持仓名额
使用同一经纪商的D1数据,依次为EURUSD、GBPUSD、USDJPY,同分严格按此顺序优先。测试前确认品种后缀,保持报价方向不变。使用专用账户,最多一个市价持仓,不设入场挂单。其他手动或EA持仓会阻止新入场;不要自动关闭身份不明的仓位。
单一持仓限制重叠,并不证明分散化。参阅货币敞口指南和账户风险政策。单一协调程序或已测试账户锁须预留名额、持久保存决策时间戳,并核对重启状态。多个图表上的独立EA副本不会自动提供这一流程。第一篇多货币对策略按突破排名;本篇按收益率排名,并使用持仓状态规则。
2. 获取一次同步每日快照
使用经纪商实际D1边界,不假设为UTC午夜。新日线区间开始后,最多等待300秒获取完整快照。每对至少有200根已收盘D1 K线、有效正价格和ATR,且全部货币对的K线0与已收盘K线1–21时间戳相同。缺失或错位历史应被拒绝,不能当成无信号。回看长度按完整经纪商K线计数,不是固定自然日数。
首个完整快照即消耗本次决策,包括无信号或检查失败的结果。若未按时取得,跳过排名更新和所有新入场。现有止损、目标和时间退出仍独立管理。不要重新排名、重用旧第一名或在重启后重开已消耗决策。若决策开始时存在仓位,即使立即平掉,本次仍不得新入场。
3. 测量带符号相对动量
K线0正在形成,K线1是最近完成的D1。C1为iClose(symbol, PERIOD_D1, 1),C21为iClose(symbol, PERIOD_D1, 21)。跨20个完成区间的原始百分比收益率为100 × (C1 / C21 − 1)。将带符号结果取到4位小数,恰处中点时向远离零的方向取整,得到R。令M = abs(R)。资格、排名和换仓比较均使用取整后的值。
M至少为0.50%时合格,等号也通过。R为正表示BUY,为负表示SELL。按绝对强度排序,因此负收益率的绝对值更大时也可作为SELL胜出。这比较的是货币对报价变化,不是独立货币强弱、账户币种投资回报或波动率调整得分。倒转报价会改变计算,不要换成方向不同的品种。
4. 账户空仓时对候选排名
选择最大合格M,同分用固定顺序。表显示2位小数,决策用4位。所有值均为虚构输入,不是历史K线或独立重建的收益序列。高得分不估计胜率或预期利润。
| 品种 | C21 | C1 | R | 信号 | M |
|---|---|---|---|---|---|
| EURUSD | 1.1000 | 1.1088 | +0.80% | BUY | 0.80% |
| GBPUSD | 1.25000 | 1.26375 | +1.10% | BUY | 1.10% |
| USDJPY | 150.00 | 149.10 | −0.60% | SELL | 0.60% |
空仓案例中选择GBPUSD进行成交条件检查;EURUSD和USDJPY不交易,也不排队。首位候选检查失败就跳过决策,不改选其他货币对。无合格品种时保持空仓。本版本没有隐藏趋势、时段或新闻过滤器。
5. 继续持有还是关闭现有仓位
只有货币对仍合格且R仍符合已持方向,才允许保留策略仓位。任一条件失败,不考虑缓冲,直接请求平仓。独立最大持仓期规则同样优先。若现有持仓仍合格、方向相同,就与最强合格竞争者比较。
仅当竞争者优势严格大于0.25个百分点时请求平仓:M_challenger − M_incumbent > 0.25。差值等于缓冲时,继续持有,但仍遵守止损、目标和最大持仓期。若现有持仓仍排第一,则继续。不要调整数量或重设出口。平仓请求不等于成交:核对经纪商状态,本次决策不发送替换入场单。
将表作为另一个持仓情景,EURUSD BUY强度0.80%,GBPUSD 1.10%领先0.30个百分点,因此仅请求平仓。在另外独立快照中,竞争者1.04%和1.05%分别领先0.24和0.25,均继续持有。缓冲是百分点之差,不是现有得分的0.25%。这些比较不是时间序列。
6. 检查成交并固定初始风险
空仓账户只检查所选货币对。按经纪商时钟,报价年龄为0至10秒,点差非负且不超过0.10 × A,当前Bid相对信号收盘的偏移满足abs(Bid − C1) ≤ 0.25 × A。A为冻结的MT4 iATR(symbol, PERIOD_D1, 14, 1),单位是价格。这些是入场条件,不应阻挡必要持仓管理。
- 确认账户空仓,没有挂单或未解决请求,且已预留共享名额。
- 300秒入场窗口、报价年龄、点差、Bid偏移全部通过。
- 经过测试的订单流程能设置并核实初始保护。
- 取整价格符合跳动网格和经纪商距离,交易量与保证金合规。
- 包括假设成本的模型损失在账户预算内。
从计划可成交入场价起,固定止损距离2 A、目标4 A:BUY在下/上,SELL在上/下。按实际价格跳动网格朝入场方向取整:BUY止损向上、目标向下;SELL止损向下、目标向上。拒绝跨过入场、零距离或无效价位并重算距离。取整可能改变名义毛收益风险比2。
本测试计划损失预算为当前净值的0.50%。以账户币种估算止损损失,加佣金、额外不利成交及整个持仓期融资假设。手数按步长向下取整,最小量不适用则跳过。核对实际成交、数量和保护。缺保护或模型损失超预算,启动事先测试的立即退出/核对流程并阻止入场。参阅品种规格;本文不提供该控制程序。
7. 计算虚构GBPUSD BUY
这是空仓分支,并非EURUSD平仓后的立即替换。假设USD净值$10,000、每手合约100,000单位、最小量和步长0.01手、价格跳动0.00001。GBPUSD以C1 = 1.26375、A = 0.0050胜出。假设新鲜Bid 1.2637、Ask 1.2640,点差0.0003低于上限0.0005,Bid偏移0.00005低于0.00125。假设恰按Ask 1.2640成交。止损1.2540在入场下方,目标1.2840在上方。
100 pip止损在额外扣费前对应每手$1,000。假设每手往返佣金$7、额外不利成交预留总额$8、整个模型持仓期融资费$5,均按手数线性缩放。预算$50除以$1,020约0.0490手,向下取0.04。模型损失$40.80,剩余$9.20。下一档0.05手对应$51.00,不通过。融资和成交预留是敏感性假设,不是费用上限。
| 互斥结果 | 毛损益 | 佣金 | 额外成交成本 | 融资费 | 模型净损益 |
|---|---|---|---|---|---|
| 止损情景 | −$40.00 | −$0.28 | −$0.32 | −$0.20 | −$40.80 |
| 目标敏感性 | +$80.00 | −$0.28 | −$0.32 | −$0.20 | +$79.20 |
目标采用相同假设扣费进行可比成本压力分析,并非声称每个经纪商都以不利滑点执行Take Profit。点差已体现在Ask入场与Bid退出中,不要再次扣除。实际隔夜利息、展期安排和持仓时长可能改变融资费,也可能产生收入。提前轮换与时间退出有不同未知结果。参阅成本指南;净金额不是预期利润或保证损失上限。
可选:复算价格、手数与模型金额
1.2640 − 2 × 0.0050 = 1.2540;1.2640 + 4 × 0.0050 = 1.2840。止损毛损失:0.0100 × 100,000 × 0.04 = $40.00;目标毛利润:0.0200 × 100,000 × 0.04 = $80.00。每手计划损失:1000 + 7 + 8 + 5 = $1,020;手数:50 / 1020 ≈ 0.0490 → 0.04。互斥净结果:−40 − 0.28 − 0.32 − 0.20 = −$40.80或80 − 0.28 − 0.32 − 0.20 = +$79.20。小数点与千位逗号按英语数字记法。
8. 管理固定出口和最大持仓期
初始止损和目标固定,不移动止损、不摊平、不加仓、不自动反手。若持有品种完成5根D1后仍未平仓,请求市价退出;入场K线在其收盘时算第一根。最长持仓期优先于缓冲,且不等待其他货币对数据。BUY以Bid退出、SELL以Ask退出,在请求到期后使用第一个新鲜可成交报价。
休市、跳空或故障可能延迟实际退出。持仓期规则不保证自然日时限或成交价。平仓失败或状态不明时继续核对与监控,不开其他仓位。日内止损或目标完成也不能立即重入:等待下次合格每日决策,获取新快照。
9. 核对恢复状态并记录换手
持久保存已消耗决策、仓位身份与未解决订单请求。超时不证明入场或平仓失败。重发前检查经纪商实际状态,阻止重复敞口。恢复时发现的不明仓位需要核对,不能假设风险为零。监控指南说明数据时效和运行证据。
缓冲可能减少部分排名驱动的切换,也可能保留较弱货币对;两种效果都不证明业绩改善。按账户合并序列追踪跳过决策、平仓后空仓时间、佣金、点差和融资。确认退出后重新计算次日第一名,不把今天竞争者排队等待。
10. 验证合并状态序列
MT4原生策略测试器不在测试品种以外的品种执行交易。逐对测试无法确立本轮换策略的账户结果。使用同步多品种事件回放,实现共享名额、持仓状态比较、平仓—确认—等待顺序,再做受控前向观察。按时间留出的未使用区间测试前固定规则。
重现对齐历史、收益率取整、缓冲相等边界、陈旧报价、缺失数据、止损、目标、时间退出、平仓失败与重启恢复。K线同时覆盖止损和目标却不知道tick路径时,不得默认选择有利结果。仅在成本和时刻假设一致时比较变体。回测指南说明证据局限;本文不提供历史成绩。
- 收益率是否准确跨越预定完整区间,且无未来数据?
- 符号、资格阈值、精度、同分顺序与百分点缓冲是否重现?
- 开始时有仓的决策是否绝不发送新入场?
- 失败或不明平仓是否阻止替换,直到核对完成并进入后续决策?
- 手数向下取整、融资费和所有出口能否与账户总净值核对?
11. 多货币对动量轮换常见问题
最强收益率能找出下一个最赚钱的货币对吗?
不能。它只对定义好的过去价格变化排名,不估计未来收益、胜率或持久优势。
其他货币对排名更高时,为何仍持有现仓?
若现仓仍在已持方向合格,所设计的缓冲要求竞争者优势严格超过门槛,才请求平仓。这是可测试的换手规则,不是持有更优的证明。
平仓成交后能立刻开竞争者吗?
不能。开始时有仓的决策不得另开仓。等待下次合格每日决策,重算快照和排名。此前竞争者没有预留名额。
这是货币强弱或波动率标准化策略吗?
不是。排名使用货币对报价的带符号百分比收益与绝对值。ATR决定入场条件和出口,不是排名分母。共同货币与不同波动率仍须考虑。
12. 来源与范围
官方参考:MQL4 iClose与历史数据访问、MQL4 iATR参数与偏移以及MQL4原生策略测试器限制。核查日期:2026-10-18。这些平台事实不验证原创收益区间、阈值、缓冲、出口或预算。
候选价格、比较、报价、金额结果均为虚构教学值。图示准确展示假设,并非原始测试报告或已验证业绩。不声称盈利、风险适合或未来结果。仍需实现、成本建模和联合验证。