我想知道图书馆是如何处理许多交易上的细微差别的。因此,也许至少值得尝试通过初步测试
库中还没有交易类。目前,有关账户历史和活跃市场状态的工作即将结束--下一篇文章将介绍对净额结算账户事件的跟踪,然后介绍在 MetaTrader 4 中的账户工作,在准备好信息输出类之后,将介绍交易类的工作。
库中还没有交易类。目前,有关账户历史和活跃市场状态的工作即将结束 - 下一篇文章将介绍对净额结算账户事件的跟踪,然后介绍在 MetaTrader 4 中的账户工作,在准备好用于信息输出的类之后,将介绍交易类的工作。
明白了吧。MT5 在这方面非常复杂,我认为我们需要一整篇文章来详细描述 MT5 上出现的交易微妙之处以及如何将其考虑在内。
收到。MT5 在这方面非常复杂,可能需要一整篇文章来详细描述 MT5 上出现的交易微妙之处以及如何将其考虑在内。
我正忙于处理此类情况。我希望我能正确处理所有这些情况。
还有一些有趣的事情--在所述库的基础上,将创建用户案例函数,以便轻松访问库中收集和存储的数据,使用交易类,并在此基础上简单轻松地创建程序。
虽然现在已经可以使用,但访问级别较低--通过指针访问集合列表,再通过指针访问集合中的任何数据。但这并不符合我们一开始提出的 "主张",即在程序库的基础上创建自己的程序非常容易。但这仅仅是个开始:)
图书馆会自动检测并处理净额结算账户和套期保值类型的账户吗?
是的,已经完成。将在下一篇文章中发布。
是的,已经是了。下一篇文章即将发表。
作为测试工具非常强大,感谢作者分享
你好,Artyom,恭喜你完成了一项伟大的工作!根据文中的描述,函数 CHistoryCollection::OrderSearch(...) 中 可能 缺少 一个 断点 。
无论是否找到 "丢失的订单", for 循环都会完成从 start-1 到 0 的 所有迭代 。
也许, 在找到 "丢失的订单 " 后 加入一个 中断会更有效 :
ulong CHistoryCollection::OrderSearch(const int start,ENUM_ORDER_TYPE &order_type) { ulong order_ticket=0; for(int i=start-1;i>=0;i--) { ulong ticket=::HistoryOrderGetTicket(i); if(ticket==0) continue; ENUM_ORDER_TYPE type=(ENUM_ORDER_TYPE)::HistoryOrderGetInteger(ticket,ORDER_TYPE); if(this.IsPresentOrderInList(ticket,type)) continue; order_ticket=ticket; order_type=type; break; } return order_ticket; }
您觉得呢?
- www.mql5.com
你好,Artyom,恭喜你完成了一项伟大的工作!根据文本中的描述,函数 CHistoryCollection::OrderSearch(...) 可能 缺少 一个 断点 。
无论是否找到 "丢失的订单", for 循环都会完成从 start-1 到 0 的 所有迭代 。
也许, 在找到 "丢失的顺序 "后 中断会更有效率 :
...
你怎么看?
丢失的订单可能不止一个
新文章 轻松快捷开发 MetaTrader 程序的函数库(第五部分):交易事件集合类,向程序发送事件已发布:
在之前的文章中,我们已着手创建一个大型跨平台函数库,简化 MetaTrader 5 和 MetaTrader 4 平台上的程序开发。 在第四部分中,我们测试了在帐户上跟踪交易事件。 在本文中,我们将开发交易事件类,并将它们置于事件集合当中。 从那里,它们将被发送到 Engine (引擎)库的基准对象,并控制程序图表。
现在我们可以编译 EA 并在测试器中启动它。 单击按钮时,测试器日志中会显示两行有关发生的帐户事件的简短消息。
EA 事件处理程序中的条目不会显示在日志中,因为它们在测试器之外工作。 如果在模拟账户上点击 EA 按钮,终端日志中会显示三行:CEvent 类方法显示两行短消息,另一行来自 EA 的 OnChartEvent() 处理程序。
下面是下单和删除挂单时在日记中显示消息的示例:
作者:Artyom Trishkin