MQL中的异步和多线程编程 - 页 27

 
Roman:

我开始重读这个主题,伊戈尔已经写过这个问题了。

这就是我想说的,Yuri,我们必须分配内存并注册线程。
伊戈尔说你需要分配和注册,而你说你不需要做任何事情。
这就是我头晕的原因。其结果是陷入了僵局。

伊戈尔在大学里作为专家学习,他应该比我们这些自学成才的研究员了解更多。
从一开始,我就倾向于同一个想法--内存必须被分配和初始化。
初始化和内存分配 是正确编码的关键,因为它不能流动,也不能是垃圾。

所以我的问题是Igor,请解释一下在C++中如何做到这一点?
不是用语言,用例子,我什么都不懂 ))

伙计,你不能在专业人员上多线程,没有冒犯的意思。但是,如果你有铁一般的心情,请继续阅读并弄清楚。

https://en.cppreference.com/w/cpp/thread

https://en.cppreference.com/w/cpp/atomic

如果你需要一个例子,见下文。

https://en.cppreference.com/w/cpp/thread/thread/join

https://en.cppreference.com/w/cpp/thread/async


同样,这是一个棘手的问题,很容易出现问题(例如,从一个比共享数据更晚销毁的产卵线程中解钩,在没有适当同步的情况下的编译器优化,还有很多)。

 
Реter Konow:
我建议将指标作为GUI的载体,而资源则用于与专家顾问沟通。此外,在MT4中,你将能够使用面板从标准图表中控制专家顾问测试器。所有的控制都可以工作,而不仅仅是按钮。你将能够向被测试的EA发送文本和其他任何东西。我已经测试过了。一切正常。

彼得,你不明白。

一个 顾问。它还在一个不可见的图表上额外运行自己,只在代理模式下运行。代理商上没有运行任何事件。即,资源不能调用,计时器不会启动,滴答声不会出现。

如果该指标触发了一个EA,这就是两个实体。

专家顾问可以随心所欲地创建这些代理。每个人都成为一个独立的线程。

 
Andrey Barinov:

彼得,你不明白。

一个 顾问。它还在一个不可见的图表上额外运行自己,只在代理模式下运行。代理商上没有运行任何事件。即,资源不能调用,计时器不会启动,滴答声不会出现。

如果该指标触发了一个EA,这就是两个实体。

专家顾问可以随心所欲地创建这些代理。每个人都成为一个独立的线程。

你是说像在一个不可见的图表上以代理模式启动自己?这是新的东西。我不知道这件事。
 
Реter Konow:
你是说像在一个不可见的图表上以代理模式运行自己?这是新的东西。我不知道这件事。

图表应用模板

 
Andrey Barinov:

彼得,你不明白。

...

一个顾问可以拥有他想要的任何数量的这些代理。每一个人都是作为一个独立的流出来的。

所以多线程已经存在?而这里没有人知道吗?

 
Andrey Barinov:

一个 顾问。它还能自己 运行。

KB测试器也有同样的原理。你是否能够解决调试这样一个EA的问题?当测试器按照这个原则制作时,编写它的不便之处在于调试的困难。

 
Реter Konow:

那么事实证明,多线程已经存在?而这里没有人知道吗?

这被称为 "没有听到你的对话者"。

关于交易、自动交易系统和交易策略测试的论坛

MQL中的异步和多线程编程

fxsaber, 2019.07.25 12:16

仅在MQL内部,这两项任务都是通过自动运行EA计数来解决的。

 
Реter Konow:

这是否意味着多线程已经存在?而这里没有人知道吗?

这是一个众所周知的技巧。这并不是我发明的。这是我几年前在一个论坛上发明的。

 
fxsaber:

CB测试仪也有同样的原理。你是否能够解决调试这样一个EA的问题?当我根据这个原则制作测试器时,编写的不便之处在于调试的困难。

打印、ASSERT、DEBUG。在这种情况下,我不使用标准调试器...

 
Andrey Barinov:

这是一个众所周知的技巧。这并不是我发明的。几年前我从一个论坛上得到了它。

这种 "多线程 "与它的概念相符的程度如何?是否可以用这个函数将程序的任务分成线程?