代码概述
这是一个为 MetaTrader 4 (MT4) 平台设计的自动交易系统(Expert Advisor, EA),主要用于外汇交易。该 EA 实现了一个基于价格波动的网格交易策略,通过在价格达到特定间隔时开仓,并结合止损、止盈和追踪止损等风险管理机制,旨在实现自动化交易。代码使用 MQL4 语言编写,参数名称已翻译为中文,以方便中文用户配置和使用。
主要功能
交易逻辑:
模式 0:固定手数(初始手数)。
模式 1:基于 手数倍增因子(默认 1.08)几何递增手数。
模式 2:根据历史交易的盈亏调整手数(亏损后增加手数,盈利后恢复初始手数)。
网格交易:EA 在价格波动达到 交易间隔点数(默认 10 点)时,自动开仓(买入或卖出),最多支持 最大交易数(默认 100)笔交易。
开仓条件:基于收盘价比较(前两根 K 线的收盘价),决定是买入还是卖出。例如,如果前一根 K 线收盘价高于前两根,则开空单(卖出)。
手数管理:支持三种资金管理模式(资金管理模式):
风险管理:
止损和止盈:每笔交易可设置 止损 和 止盈(以点数为单位,默认止损 0,止盈 10 点)。
追踪止损:当 启用追踪止损 为 true 时,EA 会在价格移动超过 追踪止损启动点数 后启动追踪止损,步长为 追踪止损步长。
净值保护:当浮动亏损超过 净值保护百分比(默认 20%)时,EA 会平仓所有交易。
超时保护:当交易持续时间超过 超时保护小时数 时,EA 会平仓所有交易。
时间过滤:
按小时交易:当 按小时交易 为 true 时,EA 仅在 交易开始小时 至 交易结束小时 内交易。
时间过滤:当 启用时间过滤 为 true 时,EA 根据时间范围限制开仓或平仓。
账户验证:
EA 检查账户编号(G_acc_number_84)。如果当前账户与预设编号不匹配,EA 将停止交易并显示提示信息。
信息显示:
函数 f0_8 在图表上显示账户信息(如余额、净值、点差等)以及服务器和格林威治时间。
关键函数
OnInit:初始化 EA,设置手数精度和点数调整因子(Gi_440,用于适配 5 位或 3 位报价)。
OnTick:核心交易逻辑,在每个价格变动(tick)时执行,负责检查开仓条件、平仓条件、追踪止损等。
f0_1:平仓函数,用于关闭买入或卖出订单。
f0_11:计算开仓手数,根据资金管理模式返回适当的手数值。
f0_12:发送交易订单,支持市价单(买入/卖出)和挂单(限价单/止损单)。
f0_15:实现追踪止损逻辑,动态调整止损价格。
f0_8:更新图表上的信息显示。
使用说明
安装:
将代码保存为 Volcano8FX_Chinese.mq4,放入 MT4 的 MQL4/Experts 目录。
确保 stdlib.ex4 库文件位于 MQL4/Libraries 目录。
在 MetaEditor 中编译代码(F7),检查是否有错误。
配置:
将 EA 拖到 MT4 图表,弹出参数设置窗口。
根据需要调整参数,如 初始手数、止损、止盈、交易间隔点数 等。
确保 G_acc_number_84 设置为 0 或匹配您的账户编号。
测试:
建议先在模拟账户上测试,观察 EA 的开仓、平仓和风险管理行为。
检查日志(MT4 的“专家”或“日志”选项卡)以排查潜在问题。
注意事项
风险:网格交易策略可能在趋势市场中导致较大亏损,建议谨慎设置 初始手数 和 手数倍增因子。
账户限制:若 G_acc_number_84 不为 0,EA 可能仅限特定账户使用。
依赖库:缺少 stdlib.ex4 会导致编译错误,需确保库文件可用。
参数优化:根据交易品种(如 EURUSD)和时间框架(如 M15)优化参数。
下载链接付费查看哦!
支付宝扫一扫打赏9元查看