EA-32614 · 辅助工具

t5Copier

这是一个交易复制EA,分为服务端和客户端两种模式:服务端将交易操作写入共享文件,客户端读取并按复制因子调整手数后在本地复制这些交易。服务端与客户端通过MetaTrader公共文件夹中的文件进行进程间通信。

打开交互版(权益曲线、切换品种)

基本信息

风险中等
评分★★☆☆☆
类型辅助工具
周期M1, M5, M15, M30, H1, H4, D1
指标None
作者—

回测结果(H1,约 1 年)

暂未回测:这个 EA 还没能自动转换。

策略分析

此EA是一个交易复制工具而非自主交易策略。服务端模式通过OnTradeTransaction回调捕获主账户的所有交易事件(开仓和平仓),将交易数据(方向、手数、止损、止盈、品种、杠杆、净值等)序列化为二进制结构写入共享文件。客户端模式通过OnTick和OnTimer定时读取该文件,根据copy_factor按比例调整手数后执行复制交易,手数计算公式为:(本地净值 × 源手数 / 源净值) × (copy_factor/100)。出场逻辑通过维护sr_ticket与cl_ticket的映射表,在服务端发送平仓信号时关闭对应的本地持仓。仓位管理依赖VerifyLots函数规范化手数至品种最小步长和合法范围内。资金管理方面,复制手数与源账户净值和本地净值的比例挂钩,实现了基于资金比例的自适应仓位缩放。

优势

  • 基于净值比例的仓位缩放设计合理,能自动适配不同资金量的账户
  • 支持重试机制,当交易因requote失败时可排队重试而非直接放弃
  • 通过共享文件进行IPC通信,无需网络配置,同终端实例间通信简单可靠
  • VerifyLots函数完善地处理了手数规范化,考虑了最小步长、最小手数和最大手数限制
  • 服务端异常退出时通过delete文件通知客户端自动断开,具备基本的断线检测

劣势

  • 文件通信机制无并发控制,多客户端同时读取可能导致数据竞争和重复交易
  • pair_ticket映射表存储在静态数组中,EA重启后映射丢失,无法关闭重启前复制的持仓
  • 缺少心跳检测机制,服务端静默崩溃时客户端可能长时间无感知
  • Data结构中symbol仅8字节,无法支持较长的品种名称
  • 客户端读取文件后未验证数据完整性(如hash字段已声明但未使用),存在读到不完整数据的风险

改进建议

  • 增加心跳机制和超时检测,服务端定期写入时间戳,客户端检测超时后自动断开并报警
  • 使用管道或socket通信替代文件共享,支持跨终端和跨机器的远程复制场景
  • 利用hash字段实现数据完整性校验,防止客户端读到半写状态的数据

风险评估

总体风险: 中等

  • EA重启后ticket映射丢失,可能导致复制的持仓无法被正确关闭
  • 文件读写无原子性保证,客户端可能读取到不完整的交易数据
  • copy_factor可设置任意值,过大的复制因子可能导致超出账户承受能力的仓位
  • 多客户端场景下缺乏并发控制,可能导致重复开仓

评估得分

代码质量3.0
策略逻辑3.0
风险管理2.0
稳健性2.0
创新性2.0
文档2.0
综合2.3

参数

参数默认值说明
program_modeServer程序运行模式:Server为发送端,Client为接收端
server_idLetCashFlow服务端标识符,每个服务端实例需唯一
copy_factor100复制因子,100%表示按原始比例复制,可放大或缩小
max_slippage20最大允许滑点(点数)
no_trytrue滑点过大时是否放弃交易,true为放弃,false为加入重试队列

同类 EA:辅助工具

回测是历史模拟,不代表未来收益,不构成投资建议。

订阅每周 Arena 周报

每周一封邮件:排名变化、新信号和新研究。不发垃圾邮件,随时可以退订。