Session Range Desk MT5 — 4.01版
Session Range Desk 是一款面向 MetaTrader 5 对冲账户的教育型、开源的交易时段区间突破型专家顾问。它集成了区间过滤器、止损距离仓位管理以及图表面板。通过终端全局变量,不同交易品种上的副本可显示共享的交易台视图。该策略不采用网格交易、马丁格尔或均价法。
交易流程
在配置的服务器启动时间或之后出现的第一个符合条件的报价点上,该EA会提取图表时间周期内前LookbackCandles根已成形K线中的最高高点和最低低点。这是一个基于滞后K线的区间,而非连续累积的开盘时段。如果其宽度超出配置的ATR区间,则跳过当天的信号。 否则,当价格触及边界或已成形K线的收盘价超出该边界时,即可触发市价单。范围的另一端将作为止损位。在连续运行期间,每种交易品种在每个服务器交易日仅允许一次成功入场。
可选管理功能包括R倍目标价、盈亏平衡点和部分平仓。R指初始入场点至止损点的距离。在配置的结束时间,EA将尝试在收到新报价时平仓其对应头寸。执行结果仍取决于经纪商及可用价格。
输入参数
- StartHour / StartMinute:以此为基准建立完整K线区间后的服务器时间。EndHour / EndMinute:当日强制平仓尝试时间。起始时间应早于结束时间;不支持隔夜交易时段。
- LookbackCandles:前几个已完成的K线数量。BreakoutMode:触及或已完成K线收盘价。
- ATR_TF / ATR_Period:ATR的时间周期和周期。Min_ATR_Mult / Max_ATR_Mult:相对于最后一个已完成的ATR值,可接受的区间宽度范围。
- RiskPercent:目标入场止损距离风险占账户余额的百分比。MaxDailyRiskPct:入场前使用的共享交易台承诺阈值;这并非账户权益止损或保证的每日亏损限额。
- SkipOnMinLot / MinLotTolerance:当经纪商的最小交易量会导致目标风险超出允许的百分比超限时,是否跳过该入场机会。
- UseTP / TP_R:启用并设置固定的 R 倍数目标。
- UseBreakEven / BE_Trigger_R / BE_Target_R:启用盈亏平衡功能,并设置其触发条件及相对于入场点的新的止损距离(以R为单位)。入场时的止损不包含佣金,也不保证零亏损成交。
- UsePartialTP / PTP_Trigger_R / PTP_Percent:启用部分平仓功能,并设置其R触发值及百分比。当交易量无法在经纪商限额内拆分时,将跳过部分平仓操作。若需在固定目标价之前触发部分平仓,请将部分平仓触发点设置在该目标价下方。
- MagicNumber / DeskName:用于在同一终端内匹配参与复制的标识符。每个交易品种使用一个复制实例,采用相同的交易台设置和专属的MagicNumber。协调功能不跨终端生效。
- ShowPanel / PanelCorner / PanelX / PanelY:面板可见性、角落位置及偏移量。ShowChartLevels 可独立控制范围线和交易标记线的显示。在优化和非可视化测试期间,这两类绘图路径均被禁用。
安装与初始检查
将 SessionRangeDesk.mq5 放置于 MQL5/Experts 目录下,并在 MetaEditor 中进行编译。仅需使用 MetaTrader 5 自带的标准 Trade、PositionInfo、SymbolInfo 和 Canvas 头文件。 请在策略测试器中使用,并选择对冲模拟账户。随附的截图展示了在 USDJPY M15 自定义符号测试中的面板;这并非推荐的实盘预设,亦不构成盈利能力的证明。不提供任何优化后的设置文件。
重要限制
本版本仅为编程示例,并非经过认证的账户保护系统。Desk总线并非原子级的跨图表风险预留机制:同时出现的信号、过期的心跳信号、成交量四舍五入以及执行成本都可能导致实际风险敞口与阈值存在偏差。它不会强制执行全账户净值限制或第三方自营交易公司的规则。 单符号优化无法验证多图表间的协调性。
日终平仓是基于报价变动的尝试。即使经纪商拒绝该平仓操作,版本 4.01 仍会标记日终操作已完成,因此不得将其作为有保证的头寸平仓机制。重启恢复功能无法在所有情况下建立持久的每日一次入场锁定。 在考虑无人值守运行之前,请测试这些故障模式。此版本不支持部分平仓时的净额结算行为。
本地回归测试对比了启用和禁用图形显示时的交易记录,且存储的独立编译日志显示零错误和零警告。这些检查并非对实时或真实报价性能的验证。 研究过程中已更正了先前的合成成本假设;本文未对历史盈利、回撤或速度作出任何声明。针对特定经纪商的点差、佣金、掉期、滑点、成交量阶梯及止损限制,需进行单独核查。
AI 工具协助完成了代码修订、研究审查及本说明的编写。源代码及限制条件已提供以供查阅和测试;不保证任何回报、安全性或平台兼容性。 
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/76927
Position Peak Logger - how far your trades actually travelled, in R
记录每个仓位的最大正向和负向波动(以R倍为单位),并针对每笔已平仓交易写入一行CSV数据。
Order Block Detector
检测订单区块——即在打破市场结构的推动性走势出现前最后一支反向K线——并将其绘制为区域,该区域会实时延伸,直至价格回调并消除该结构。结构的破位与消除均仅基于收盘K线进行评估,因此不会出现重绘现象。