信号与执行
将核心模块拆成“仓位与资金管理”“信号与执行”“风控监控仪表盘”三层:在 OnInit 中加载配置,OnTick 里调用风险与信号模块,OnTimer 或独立脚本做定期评估。
仓位控制:编写函数读取账户权益(AccountEquity)与预设风险百分比,结合单笔止损距离自动反推下单手数;附加锁连续亏损计数,超过门槛即降低风险系数或暂停交易。
分散化:如果 EA 同时交易多品种,可用全局结构体维护各符号敞口与相关性;在 OnTick 前先检查组合层面的风险预算,必要时拒单或减仓。
规则化执行:把入场、出场、止损/止盈阈值写成配置或外部参数,并在 CheckEntry/CheckExit 函数中统一引用;所有交易动作前后记录日志,便于事后复盘。
流动性监控:在下单前检测 MarketInfo 的 MODE_SPREAD、MODE_ASK/MODE_BID 与 MODE_MARGINREQUIRED;结合自己的冲击成本模型,若超过阈值则缩小手数或放弃执行。
场景分析:在 MT4 内可做“轻量版”——编写单独脚本,从历史数据计算大幅波动日的策略表现;高级压力测试或蒙特卡洛通常需要导出数据到 Python/R,再把关键风险参数写回 EA。
风险仪表盘:利用全局变量或自定义面板(Objects 或 CChartObject)显示 VaR、ES、P&L 归因、对手方敞口等;实时更新资金曲线、最大回撤、净敞口比。
机构策略框架落地:
市场中性/统计套利:实现价差或因子信号模块,确保下单时双腿同步执行并实时再平衡;对冲腿使用同一风险预算。
风险平价或波动率目标:在定时器中重算各品种目标权重,按波动率逆比例调整仓位,再调用下单函数进行调仓。
期权领口:若经由外部对接执行,可把持仓信息与对冲订单通过 API 或文件与期权交易系统同步。
写作建议:先完成详细 PRD(参数、风控流程、日志需求),再生成伪代码和函数接口;最后才动手写 MQL4,确保每个函数职责单一并集中测试。在 MT4 策略测试器中做单元化回测并导出报表验证上述风控逻辑是否达标。
后续可选步骤:1) 明确每项指标的计算周期与数据来源;2) 搭建模拟账户验证风控触发是否符合预期;3) 建立复盘脚本,对日志自动汇总亏损原因。
