首页 / 交易学院 / 如何使用 UML 工具开发 EA 交易:可视化建模再写码
如何使用 UML 工具开发 EA 交易:可视化建模再写码
📐

如何使用 UML 工具开发 EA 交易:可视化建模再写码

EA 开发实战 难度 · 进阶 2013 11 分钟阅读
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。

✦ 图是沟通工具不是文档负担
UML 最大的价值是逼你在写码前想清结构。哪怕只画一张类图,也能消灭大半设计期错误。

小结

UML + 免费建模工具让 EA 开发从“边写边改”升级为“先建模后实现”。类图/序列图/状态图分别对应结构、流程、生命周期,是面向对象 MQL5 工程的标配。

常见问题

有用。MQL5 是面向对象语言,UML 类图/序列图/状态图分别对应结构、流程、生命周期,逼你在写码前想清设计。
本文用免费非商业的 Software Ideas Modeler,画好类图后可据此生成 CTradeExpert 骨架。
“已平仓却还挂着追踪止损”这类生命周期错误,用状态图定清事件迁移条件即可避免。