EA-45592 · 辅助工具
ShapesCasting/Shapes5stats/EnvSignature
这不是交易EA,而是一组MQL5教学演示脚本。ShapesCasting演示MQL5类层次结构中的类型转换(向上转型、向下转型、dynamic_cast)。Shapes5stats扩展了形状层次结构,使用注册器模式统计各类型实例化数量。EnvSignature是一个服务,用于生成和验证基于SHA256的环境签名,将程序绑定到特定终端环境。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
这些文件不包含任何交易策略。ShapesCasting展示了MQL5面向对象编程中的类型转换机制:基类指针可以指向派生类对象(向上转型),派生类指针赋值基类指针需要dynamic_cast(向下转型),失败返回NULL。Shapes5stats在Shape基类中嵌入了Registrator内部类,通过静态数组和静态方法追踪每种形状类型的实例数量,使用了宏REGISTRATOR自动生成派生注册器类。EnvSignature实现了环境绑定保护机制:收集终端属性(语言、路径、CPU核心数、内存、屏幕分辨率等),拼接密钥和胡椒值后进行SHA256哈希,再用Base64编码生成签名,开发者生成验证字符串后分发给用户,用户运行时比对签名验证运行环境是否被篡改。这三种代码纯粹是MQL5语言特性的教学演示,不涉及任何入场条件、出场条件或仓位管理逻辑。
优势
- 展示了MQL5面向对象编程的核心机制,包括继承、多态和类型转换,教学价值高
- EnvSignature环境签名方案设计巧妙,利用SHA256+Base64实现程序绑定到特定终端环境,有一定实用价值
- Registrator模式使用宏自动生成子类,展示了MQL5元编程技巧和静态成员管理方案
劣势
- 不包含任何交易逻辑,无法直接用于实盘或策略研究
- EnvSignature中密钥和胡椒值以宏定义硬编码,安全性依赖于编译后二进制的不可逆性,存在被逆向工程的风险
- ShapesCasting中const成员导致默认赋值运算符被删除的问题虽有注释说明,但未给出完整的推荐解决方案
改进建议
- EnvSignature应将密钥从源码中移除,改为运行时输入或加密配置文件读取,增强防逆向能力
- 可以增加环境属性变化的容忍机制(如允许CPU核心数±1),避免合法硬件升级导致验证失败
风险评估
总体风险: 安全
- 这些代码不执行任何交易操作,无资金风险
- EnvSignature的安全方案依赖于源码保密性,若密钥泄露则环境绑定保护完全失效
评估得分
代码质量4.0
策略逻辑1.0
风险管理5.0
稳健性3.0
创新性3.0
文档4.0
综合3.3
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
Validation | "" | 用户收到的验证字符串,用于环境签名校验 |
Signature | "" | 环境签名字符串,开发者模式下用于生成验证 |
Secret | PROGRAM_SPECIFIC_SECRET | 程序特定密钥,用于签名哈希计算 |
Pepper | "=" | 实例特定胡椒值,用于名值对拼接 |
I_AM_DEVELOPER | defined | 开发者模式宏定义,启用后可生成验证字符串 |
同类 EA:辅助工具
回测是历史模拟,不代表未来收益,不构成投资建议。