再一次,关于多线程 - 页 4 12345678910 新评论 Andrey Khatimlianskii 2012.11.16 03:52 #31 meat:好吧,让我们说说,你所列出的东西并不都与mql5工具有关 :)而这个问题不是关于如何解决(规避)这个问题。你总能找到一个办法,这是毫无疑问的。问题是为什么我们不能在没有任何细节的情况下向mql5添加相应的功能。MQL5拥有我们需要的一切,我们只需要学会使用它。将部分计算结果转移到指标中,并从专家顾问中运行它。而且,没有人会为2十个(乐观地讲)用户做基本的并联工作。 Документация по MQL5: Основы языка / Функции / Функции обработки событий www.mql5.com Основы языка / Функции / Функции обработки событий - Документация по MQL5 Sergey Pavlov 2012.11.16 09:37 #32 TheXpert: 有多线程的脚本。而且你在测试器中不需要它如何从专家顾问中运行一个脚本? Alexey Navoykov 2012.11.16 12:17 #33 komposter:将一些计算转移到指标中,并从专家顾问中运行它。你又开始跳手鼓舞了。我说的是一个正常的执行。而且没有人会为2打(乐观地)用户做通常的并联工作。在我看来,从一开始,MQL5就被定位为一种适合或多或少熟练的程序员的语言,与mql4形成对比。这意味着对算法的优化,在多个线程之间进行并行计算,必须是每天都要做的事情。这就是为什么我在话题开始时提请你们注意这一点。而雷纳特出于某种原因,对它的反应非常痛苦。像这里的许多人建议的那样,不断地通过一个地方解决优化问题,这根本不是人们想做的事情。此外,我在一开始就已经说过,我并不要求他们做正常的平行作业。我完全有能力自己用WinApi来并联一切。我所需要的只是一个函数地址。这就是为什么我要求只增加函数的指针。当然,支持__stdcall指令是可取的,但这不是必须的,你可以自己做必要的操作。指向函数的指针实际上是一个非常有用的东西。用它们来创建线程只是众多用途中的一种。它们也被用来,例如,在各种异步操作中指定回调函数。它们也将被拱形地转移到DLL中,这简化了DLL和导入它的专家顾问之间的通信,即完全整合。在运行时,DLL可以直接调用MQL函数并从中获得一些需要的信息。现在,为了做到这一点,我们需要生成一个事件(例如,一个tick),它将调用一个专家顾问,然后将所需信息传递给DLL...总而言之,额外的麻烦和时间消耗 Ilyas 2012.11.16 15:00 #34 关于多线程。在语言中添加多线程意味着要创建一个支持多线程的特殊API。 这反过来又会比没有这种支持的API运行得慢,我希望它是清楚的(loki等)。必须重写MQL5编译器的优化器--实际上恶化了优化。这是为难以找到的用户错误提供的地方。 好了,最后,需要它的用户并不多,缺乏支持的情况可以绕过。 关于函数的指针。 关于他们在 MQL5代码中 的使用,问题是开放的。 不幸的是,我们将不能把指针传给DLL - 我们不得不牺牲跨平台x86/x64的调用协议。 Renat Fatkhullin 2012.11.16 15:20 #35 mql5: 关于多线程。这个人只是在理论推理上扯皮(我以为语言是......),既不了解语言的应用性质,也不了解多线程的后果。事实上,他甚至没有一个真正的平行任务。 Sergey Pavlov 2012.11.16 15:32 #36 mql5: ...Ну и последнее, нужно это не очень малому числу пользователей и отсутствие поддержки можно обойти.我喜欢使用脚本的想法,但你如何从EA中调用它们? Ilyas 2012.11.16 15:48 #37 DC2008:我喜欢使用脚本的想法,但你如何从EA中调用它们? 不幸的是,没有规定可以从MQL5启动脚本。 但有一个办法,通过图表的模板,如果你在其中写一个脚本而不是专家顾问。 当把这样的模板应用到一个新的图表上时,脚本就会被启动(然而,这是一个 "未记录的功能",可能有一天也无法使用)。 你的任务是什么? 为什么你不在相邻的图表上有一个准备好的专家顾问,在收到一个事件后,它将完成其工作? 启动一个新的MQL5程序 是很昂贵的,因为EX5文件的保护。 Sergey Pavlov 2012.11.16 16:05 #38 mql5: 不幸的是,脚本不能从MQL5启动。 但有一个方法,通过图表模板,如果我们把脚本放在里面,而不是专家顾问。 当把这样的模板应用到一个新的图表上时,脚本就会被启动(然而,这是一个 "未记录的功能",可能有一天也无法使用)。 你的任务是什么? 为什么你不在相邻的图表上有一个准备好的专家顾问,在收到一个事件后,它将完成其工作? 启动一个新的MQL5程序 是很昂贵的,因为EX5文件的保护。我有成千上万的图形对象需要分析:删除不必要的对象,改变属性,计算统计特征等。即使在一个图表上也有滞后,如果有几个图表呢? Renat Fatkhullin 2012.11.16 16:56 #39 对于图形对象来说,多线程即使在理论上也没有帮助。 与图形对象打交道的问题应该用算法来解决。经济上,不要把改变和阅读命令混为一谈。例如,1000次读,只写1000次,会比1000次读和写快得多。 Alexey Navoykov 2012.11.16 17:27 #40 mql5: 关于多线程。在语言中添加多线程意味着要创建一个支持多线程的特殊API。 这反过来又会比没有这种支持的API运行得慢,我希望它是清楚的(loki等)。必须重写MQL5编译器的优化器--实际上恶化了优化。这是为难以找到的用户错误提供的地方。 好了,最后,需要它的用户并不多,缺乏支持的情况可以绕过。 关于函数的指针。 关于它们在 MQL5代码中 的使用,问题是开放的。 不幸的是,将一个指针传入DLL是行不通的--我们不得不牺牲x86/x64跨平台的调用惯例。 谢谢你的详尽答复。现在一切都更清楚了。唯一关于不可能将指针传入DLL的事情,我想你是指系统DLL(即__stdcall协议)?而在我自己的DLL中,我可以写任何其他协议。还是一个不符合任何标准的独家? 12345678910 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
好吧,让我们说说,你所列出的东西并不都与mql5工具有关 :)而这个问题不是关于如何解决(规避)这个问题。你总能找到一个办法,这是毫无疑问的。问题是为什么我们不能在没有任何细节的情况下向mql5添加相应的功能。
MQL5拥有我们需要的一切,我们只需要学会使用它。
将部分计算结果转移到指标中,并从专家顾问中运行它。
而且,没有人会为2十个(乐观地讲)用户做基本的并联工作。
有多线程的脚本。而且你在测试器中不需要它
如何从专家顾问中运行一个脚本?
将一些计算转移到指标中,并从专家顾问中运行它。
你又开始跳手鼓舞了。我说的是一个正常的执行。
而且没有人会为2打(乐观地)用户做通常的并联工作。
在我看来,从一开始,MQL5就被定位为一种适合或多或少熟练的程序员的语言,与mql4形成对比。这意味着对算法的优化,在多个线程之间进行并行计算,必须是每天都要做的事情。这就是为什么我在话题开始时提请你们注意这一点。而雷纳特出于某种原因,对它的反应非常痛苦。
像这里的许多人建议的那样,不断地通过一个地方解决优化问题,这根本不是人们想做的事情。
此外,我在一开始就已经说过,我并不要求他们做正常的平行作业。我完全有能力自己用WinApi来并联一切。我所需要的只是一个函数地址。这就是为什么我要求只增加函数的指针。当然,支持__stdcall指令是可取的,但这不是必须的,你可以自己做必要的操作。
指向函数的指针实际上是一个非常有用的东西。用它们来创建线程只是众多用途中的一种。它们也被用来,例如,在各种异步操作中指定回调函数。它们也将被拱形地转移到DLL中,这简化了DLL和导入它的专家顾问之间的通信,即完全整合。在运行时,DLL可以直接调用MQL函数并从中获得一些需要的信息。现在,为了做到这一点,我们需要生成一个事件(例如,一个tick),它将调用一个专家顾问,然后将所需信息传递给DLL...总而言之,额外的麻烦和时间消耗
- 在语言中添加多线程意味着要创建一个支持多线程的特殊API。
- 必须重写MQL5编译器的优化器--实际上恶化了优化。
- 这是为难以找到的用户错误提供的地方。
好了,最后,需要它的用户并不多,缺乏支持的情况可以绕过。这反过来又会比没有这种支持的API运行得慢,我希望它是清楚的(loki等)。
关于函数的指针。
关于他们在 MQL5代码中 的使用,问题是开放的。
不幸的是,我们将不能把指针传给DLL - 我们不得不牺牲跨平台x86/x64的调用协议。
关于多线程。
这个人只是在理论推理上扯皮(我以为语言是......),既不了解语言的应用性质,也不了解多线程的后果。
事实上,他甚至没有一个真正的平行任务。
mql5:
...Ну и последнее, нужно это не очень малому числу пользователей и отсутствие поддержки можно обойти.
我喜欢使用脚本的想法,但你如何从EA中调用它们?
我喜欢使用脚本的想法,但你如何从EA中调用它们?
但有一个办法,通过图表的模板,如果你在其中写一个脚本而不是专家顾问。
当把这样的模板应用到一个新的图表上时,脚本就会被启动(然而,这是一个 "未记录的功能",可能有一天也无法使用)。
你的任务是什么?
为什么你不在相邻的图表上有一个准备好的专家顾问,在收到一个事件后,它将完成其工作?
启动一个新的MQL5程序 是很昂贵的,因为EX5文件的保护。
不幸的是,脚本不能从MQL5启动。
但有一个方法,通过图表模板,如果我们把脚本放在里面,而不是专家顾问。
当把这样的模板应用到一个新的图表上时,脚本就会被启动(然而,这是一个 "未记录的功能",可能有一天也无法使用)。
你的任务是什么?
为什么你不在相邻的图表上有一个准备好的专家顾问,在收到一个事件后,它将完成其工作?
启动一个新的MQL5程序 是很昂贵的,因为EX5文件的保护。
我有成千上万的图形对象需要分析:删除不必要的对象,改变属性,计算统计特征等。即使在一个图表上也有滞后,如果有几个图表呢?
与图形对象打交道的问题应该用算法来解决。经济上,不要把改变和阅读命令混为一谈。例如,1000次读,只写1000次,会比1000次读和写快得多。
关于多线程。
- 在语言中添加多线程意味着要创建一个支持多线程的特殊API。
- 必须重写MQL5编译器的优化器--实际上恶化了优化。
- 这是为难以找到的用户错误提供的地方。
好了,最后,需要它的用户并不多,缺乏支持的情况可以绕过。这反过来又会比没有这种支持的API运行得慢,我希望它是清楚的(loki等)。
关于函数的指针。
关于它们在 MQL5代码中 的使用,问题是开放的。
不幸的是,将一个指针传入DLL是行不通的--我们不得不牺牲x86/x64跨平台的调用惯例。