📐
如何使用 UML 工具开发 EA 交易:可视化建模再写码
UML建模EA开发面向对象MQL5
UML 能帮 EA 开发什么
UML 原用于面向对象软件的可视化建模。MQL5 属面向对象语言家族,使任务更易。UML 从多视角表示系统:结构(类图)、行为(序列/状态图),可读性强,大而复杂的 EA 也能用图说清模块。
UML 三大构造块
实体(模型元素)、关系(绑定)、图表(表示模型)。公共机制含规范、修饰、通用划分。先画类图定模块边界,再画序列图定调用顺序。
把图映射成 MQL5 骨架
用 Software Ideas Modeler(免费非商业)画好类图后,可据此生成 CTradeExpert 骨架。CTrade 管下单、CDealInfo 管成交、CSymbolInfo/CAccountInfo 提供行情与账户上下文。
// 由 UML 类图导出的 EA 骨架(示意)
class CTradeExpert
{
CTrade *trade;
CDealInfo *deal;
CSymbolInfo *sym;
CAccountInfo *acc;
public:
void OnInit();
void OnTick();
void CheckSignal();
void ManagePosition();
};
状态图管理交易生命周期
EA 的开仓→追踪→平仓是一组状态迁移。用 UML 状态图画清每个事件的迁移条件,能避免“已平仓却还挂着追踪止损”这类经典 bug。
- 类图:定信号/资金/追踪模块的职责边界。
- 序列图:定 OnTick 内各模块的调用顺序。
- 状态图:定持仓生命周期与事件迁移。
✦ 图是沟通工具不是文档负担
UML 最大的价值是逼你在写码前想清结构。哪怕只画一张类图,也能消灭大半设计期错误。
小结
UML + 免费建模工具让 EA 开发从“边写边改”升级为“先建模后实现”。类图/序列图/状态图分别对应结构、流程、生命周期,是面向对象 MQL5 工程的标配。
常见问题
有用。MQL5 是面向对象语言,UML 类图/序列图/状态图分别对应结构、流程、生命周期,逼你在写码前想清设计。
本文用免费非商业的 Software Ideas Modeler,画好类图后可据此生成 CTradeExpert 骨架。
“已平仓却还挂着追踪止损”这类生命周期错误,用状态图定清事件迁移条件即可避免。