文章 "Einen handelnden Expert Advisor von Grund auf neu entwickeln (Teil 24): Herstellen eines robusten Systems (I)"

 

新文章 从头开始开发智能交易系统(第 24 部分):提供系统健壮性(I已发布:

在本文中,我们将令系统更加可靠,来确保健壮和安全的使用。 实现所需健壮性的途径之一是尝试尽可能多地重用代码,从而能在不同情况下不断对其进行测试。 但这只是其中一种方式。 另一个是采用 OOP。

有些事情并不那么简单,尽管有些人也许会想当然。 订单系统便是其中之一。 您甚至可以创建一个更适度的系统,为您提供完美的服务,就像我们在从头开始开发智能交易系统的文章中所做的那样,其中我们创建了一个基本系统,它对于大多人都有用,而对某些人来说还不够。 因此,当一切都开始变化,这一时刻就到来了 — 它就是本系列第一部分当中有关新订单系统的诞生。 这可以在从头开始开发智能交易系统(第 18 部分)一文中看到。 这就是我们开发一个系统的起始之处,该系统可以由 EA 管控,同时由 MetaTrader 5 提供支持。 该系统的思路是在图表上的订单没有限制。 起初,这个系统似乎相当冒险,我必须承认一个事实,即创建一个系统,其中的对象不是由 EA 维护,而是由 MetaTrader 5 来维护,这在我看来是毫无意义且低效的。

然而,该系统正处于开发中,在文章从头开始开发智能交易系统(第 23 部分)中,我们开发了一个幻影系统令订单、持仓或破位(止盈和止损)的管理更灵活。 开发过程非常有趣,但遇到一个问题。 如果您查看用到的和可见的对象数量,与 MetaTrader 5 支持的对象数量相比,您肯定会感到惊讶,因为受支持的对象数量总是更高。

在很多情况下,该问题并不那么严重,您甚至可以忍受片刻。 但有两个问题令该系统在市场高波动期间不是很稳定。 在某些状况下,它们会强制用户做出不正确的行动。 这是因为当交易者添加挂单时,系统将其发送到服务器,服务器有时需要耗费比平时更多的时间来响应。 系统在某些时刻指示有订单,而在其它时刻则表明没有订单。 且当针对持仓执行完毕时 (请参阅订单和仓位之间差异的文档),这会变得更加棘手,因为不知道服务器能否按预期执行命令。

有几种方式可以解决此问题。 其中一些很简单,而有一些较复杂。 无论如何,我们必须信任 EA,否则我们在任何境况下都不应该使用它。


作者:Daniel Jose