大家好!今天我要跟大家分享的是一个关于MetaTrader 4的EA模板的更新内容。这个更新的主要目的是为了避免服务数组的冗余大小定义以及这些数组大小的动态变化。我们对服务数组进行了改进,使其在启动时立即分配最大100个订单的大小,并添加了指示数组大小的计数器。
以下是一些关键的代码示例:
int OurTicketsCounter; // 记录“友好”订单的计数器,限制为 Tickets[100][9] 和 CommentsTicket[100][2] int SL_TP_Counter; // 修改订单的计数器:针对 newSL_and_TP[100][5] 数组 int OrdersToCloseCounter;// 关闭订单的计数器:针对 ticketsToClose[100][2] 和 lotsToClose[100] 数组 int OrdersToDeleteCounter;// 删除订单的计数器:针对 ticketsToDelete[100] 数组
这些计数器会在每次启动 start() 函数时,利用一个名为 InitCounters() 的特殊函数初始化为零:
//+------------------------------------------------------------------+ //| 重置所有服务数组的计数器 | //+------------------------------------------------------------------+ void InitCounters() { //---- OurTicketsCounter = 0; SL_TP_Counter = 0; OrdersToCloseCounter = 0; OrdersToDeleteCounter = 0; //---- return; }
经过这些修改后,使用此模板创建的EA在性能上仅比完全手动编写的EA逊色两次。我认为这个结果相当不错。
最后,记得将这个模板存放在 experts/templates 文件夹中哦!期待大家的反馈!