我的方法。核心是引擎。 - 页 145

 
Oleg Papkov:

我假设每一个进出引擎的流量都应该有某种流量特征,一种神奇的数字,以及与测试器配合的流量特征(它无一例外都是唯一的)。引擎对当前设置的流量作出反应,而专家顾问、指标则对其信息流的属性(伪魔法号码)作出反应。

现在在测试器中一切正常,我从另一个窗口控制测试器中的专家顾问。它处于模拟器模式。

目前,EA和引擎之间的信息没有被绑定到EA的某个法师或名称上。这意味着,如果引擎将信息写入资源,它将被任何已设置为通信的专家顾问读取。为了分离通信流,每个EA都必须在消息头中定义一个特殊的标签。然后,要么阅读并遵循说明,要么忽略它们。在测试器中应该有一个单独的专家顾问的标签。

但在这里我们看到需要一个通用的引擎GUI,通过它我们可以配置和切换通信。同时接收有关专家顾问的信息。

因此,我们必须改变EA的概念。更准确地说,我们必须升级它。

问题就在这里。

我们必须为每个EA定制一个GUI,或者为所有的EA定制一个通用的GUI。如果它是常见的,那么它应该是不变的。它必须事先经过深思熟虑。每个专家顾问(即使没有GUI),必须有内部杠杆,它将提供给引擎。


值得思考的问题...

 
Реter Konow:


但在这里,我们需要一个通用的引擎GUI,通过它来配置和切换通信。同时,接收关于EA的信息。

在引擎中只需要有一个必要的和足够的永久设计和配置的管理部分,处理控制的管理和最多样化的定制部分,根据客户的项目 建立。

 
Oleg Papkov:

只需要在引擎中设置一个必要的和足够的永久设计和配置的管理部分,处理管理的管理和各种各样的定制部分,根据客户的项目建造。

这个行政部分是无法理解的。它应该是什么呢?

如果该引擎能与一个专家顾问一起工作,那是一回事。如果它对几个不同的人都有效,那就是另一回事了。

目前仍然缺乏一个概念性框架...

 
Реter Konow:

这是不清楚的行政部分。它应该是什么?

如果引擎在一个EA下工作,那是一回事。如果它与几个不同的人一起工作,那就是另一回事。

到目前为止,还缺乏概念性框架...

让我们这样说吧。行政小组项目

而在EA或指标的启动设置中,同样有 "对象1 "字段,等等。

 
Oleg Papkov:

让我们这样说吧。

而在EA或指标的开始设置中,同样的字段 "对象1 "等。

我想知道。你的意思是,我们应该用这些按钮切换连接吗?但是,在这种情况下,所有专家顾问必须是在不同货币对上运行的一个EA的副本。

那如果专家顾问是不同的呢?

 
Oleg Papkov:

让我们这样说吧。

而在EA或指标的开始设置中,同样的字段 "对象1",等等。

我将首先实施它。用一个EA在不同的对上。然后我将弄清楚如何处理不同的EA。

 

顺便说一下,这里有一个使用构造函数的很好的示范。动态的,没有文字的,而且是在音乐中。:)

创建视觉工作室

https://www.mql5.com/ru/blogs/post/712102


 
Реter Konow:

顺便说一下,这里有一个使用构造函数的很好的示范。动态的,没有文字的,而且是在音乐中。:)

视觉工作室


原创。

 
Oleg Papkov:

让我们这样说吧。

而在EA或指标的开始设置中,同样的字段 "对象1",等等。

这些都被标记为与控制器相连。而且只有一个被控制的对象。因此,在某个地方有一个有大指示的拨动开关。

 
Oleg Papkov:

这些都被标记为与控制器相连。但有一个控制是专门控制的。因此,在某个地方有一个有大指示的拨动开关。

每个EA都有自己的参数内核副本。它可以暂时与普通GUI断开,由另一个EA连接到引擎。重要的是,它们是同一个EA的副本。

然而,这里有一些困难,我自己并不完全理解。

从理论上讲,这个问题听起来像这样。

如果我们可以制作一个具有共同GUI的引擎,并将其连接到所有的EA副本,为什么我们需要为EA副本的每个图表添加一个具有GUI的引擎?

在实践中,我们会遇到一些技术困难。

专家顾问副本可以向其参数内核副本写入新值。如果其中一个副本没有连接到引擎,内核将只在副本的一侧改变。因此,当重新连接时,我们必须将整个内核传递给引擎,引擎将在需要的地方重新绘制所有窗口中的所有元素。这在原则上是可能的。

或者重新做参数内核本身,使其成为一种资源。在这种情况下,引擎将一次获得所有的变化,并只是重新绘制元素。这并不是一个坏主意。

但是,它给了我们什么?

也许我们可以减少CPU负载,释放线程。如果我们有10个EA副本在10个对上运行,并且我们给每个引擎加载GUI,那么总的CPU负载可能太多。因为每个GUI都需要重新绘制元素,这对CPU来说是一个沉重的负担。但事实上,我们只能看到一个副本的具体图形用户界面。其他的都被隐藏起来了。

所以这可能是正确的方法。做一个共同的引擎。