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

 
Roman:

我已经给你写过信了,你正在试图建立一个NS,在这种情况下,你不需要异步吗?
但你是在简单的激活函数上构建NS,所以你并没有遇到缺乏并发性的问题。
但当你开始建立NS的全局模型时,你就会明白异步的魅力。

不好的例子 - 不需要!

@Roffild 已经在主题中写道:"在当今世界,一个程序员必须知道几种语言,以便为某项任务选择合适的工具。"

这是真的!

在MQL中,没有选择MQL的包--只有AlgLib--我想考虑一个例子,在hubra上找到的,我把C#或Python连接到MQL--仅此而已,我做我想做的事,而不是把代码移植到MQL上

这些天来,编程语言的有趣之处不在于它们的功能,而在于现成的框架!- 如果在MQL中会有新的MQL包,那么就会有其他的任务和问题!

ZS:我再一次用手指,你在坚持 "fx的理念",它是从跨平台语言Python和Java中发展起来的,为了语言的可移植性和灵活性所做的牺牲是性能的损失,现在这些语言已经用不同的方法来提高性能,但在类似C语言中,开发人员总是能实现最大的性能,而且没有必要(在大多数情况下)将任务分成独立的线程(客户-服务器任务不算,那里的问题是数据交换速度,这是另一个具体问题)。

 
Igor Makanu:

不好的例子 - 不需要!

@Roffild 已经在主题中写道:"在当今世界,一个程序员必须知道几种语言,以便为某项任务选择合适的工具。"

这是真的!

在MQL中,没有选择MQL的包--只有AlgLib--我想考虑一个例子,在Habra上发现的,我采取并将C#或Python连接到MQL--仅此而已,我做我想做的事,而不是将代码移植到MQL

这些天来,编程语言的有趣之处不在于它们的功能,而在于现成的框架!- 如果在MQL中会有新的MQL包,那么就会有其他的任务和问题!

ZS:再一次在你的手指上,你坚持 "fx的想法",它是从跨平台语言Python和Java中发展起来的,为了语言的可移植性和灵活性所做的牺牲是性能的损失,现在这些语言已经被各种提高性能的方法所包围,但在类似C语言中,开发人员总是能实现最大的性能,而且没有必要(在大多数情况下)将任务分成独立的线程(客户-服务器任务不算,那里的问题是数据交换速度,这是另一个特殊性)。

你不断地忽略了以下事情。

1.使用外部连接的程序的分发不能通过市场完成。

2.使用外部连接的程序要求用户成为 "教授",以正确连接一切。使用这种程序的说明是一团糟。

3.使用外部连接的程序只适合于个人使用,这大大限制了其创作的意义。

4. 个人使用的程序比出售的程序质量要低, 因为你可以为自己做任何事情......而且你不可能同时成为几种语言的专家。有些语言你会从第五种到第十种语言都知道,这将影响产品的质量。

5.有许多任务需要异步和多线程。MQL-程序还没有达到这些任务,但这并不意味着他们不应该为之努力。

 
Roman:

...
什么实现了单一流的异步性。

不,好吧,没有多线程的异步确实是某种胡闹,你至少需要一个额外的线程。我认为你的EventLoop可以通过可加载指标来完成。例如,专家指标之间通过套接字进行通信。一个任务被创建,指标被挂起,任务被发送,指标报告了执行情况,我们从专家顾问那里请求任务状态,删除指标。通过拐杖,但还是多线程。

 
Roman:

是的,那篇文章非常好,对于一个单一的解决方案,要想一想,也许你可以从这个方法中挤出一些别的东西。
我已经决定了我问题的方向,感谢Andrey的提示。

你读过一篇文章是好事。

罗马 人。

不是线程,即通过colback函数的非阻塞调用,由EventLoop控制。
这在一个线程中实现了异步。

你是如何做到不在文件中找到它的?

你为什么不读呢?

 
Реter Konow:

你不断地忽略了以下事情。

你和我的任务不同,你没有考虑到编写软件有2个大步骤:软件开发和实施本身。

软件开发需要现成的解决方案--它需要时间;如果在开发过程中发现软件不能按计划执行任务,它就会被扔进垃圾桶。而实施本身是一个特定平台能力的机械工作。


ReTeg Konow:

5.有许多任务需要异步和多线程。MQL项目还没有达到这些任务,但这并不意味着他们不应该为之努力。

好了,现在让我们和你一起去吧。

回答交易终端 为什么需要这个问题?

 
Koldun Zloy:

你读过一篇文章是好事。

你是如何做到不在文件中找到它的?

你为什么不读呢?

想象一下,没有找到它。
搜索callback和eventloop,在文档中并没有发现类似的内容。
如果你不介意,请给我一个没有任何讽刺的链接。

 
Igor Makanu:

1.你和我的任务不同;你没有考虑到编写软件有两个大的阶段:软件开发和实施。

软件开发需要现成的解决方案--这需要时间;如果在开发过程中发现软件不能按计划执行任务,就会造成浪费。而实施本身是一个特定平台能力的机械工作。


好了,现在我们和你一起去吧。

2.回答问题,为什么交易终端 需要它?

1.我所做的一切都是为了发展。几乎没有6年的持续发展,我不明白它是什么。))我认为,现成的外部解决方案,从其他程序的背景中撕裂出来,或者从其他一些程序中抽象出来,很差地融入高度专业化的代码结构中,会变得非常混乱。这种情况下的劳动投入比开发自己的解决方案要高,而且代码的最终质量也较低。更不用说发展潜力了。这些都是发展的现实。但是,这与我们的问题没有关系。事实上,这和它有什么关系呢?

2.你问的是错误的问题。主要问题是 "为什么最终用户需要它?"。因为用户总是对所提供的功能感到不足。因此,必须增加他们,使他们不至于失去兴趣。如果我们的可能性用完了,而且由于技术限制不能增加新的可能性,用户就会退出。需要有机会让用户留在终端上,为此,软件分发是必要的。 因此,不能分发的程序对社区来说是没有意义的,不管他们使用什么语言。


事实上,你只看自己的需求,而不考虑其他用户的需求。你没有也不想在这个社区做生意,你只在市场上广播赚钱的动机。而你根本不需要任何软件就可以在市场上赚钱。

 
Igor Makanu:

不好的例子 - 不需要!

@Roffild 已经在主题中写道:"在当今世界,一个程序员必须知道几种语言,以便为特定任务选择合适的工具。"

这是真的!

在MQL中,没有选择MQL的包--只有AlgLib--我想考虑一个例子,在Habra上发现的,我采取并将C#或Python连接到MQL--仅此而已,我做我想做的事,而不是将代码移植到MQL上

这些天来,编程语言的有趣之处不在于它们的功能,而在于现成的框架!- 如果在MQL中会有新的MQL包,那么就会有其他的任务和问题!

ZS:再一次在你的手指上,你在坚持从跨平台语言Python和Java中发展出来的 "修复理念",为语言的可移植性和灵活性所做的牺牲是性能的损失,现在这些语言已经被提高性能的不同方法所包围,但在类似C语言中,开发者总是能实现最大的性能,而且没有必要(在大多数情况下)将任务分成独立的线程(客户端-服务器任务不包括在内,那里的问题是数据交换速度,这是另一个特殊性)。

伊戈尔,你有时会自相矛盾。
上次你写道,mql的计算速度与C++的速度相当
好吧,这的确是事实,很多人都知道。
但是,你又举了一个连接第三方框架来移植计算的例子,正如你所说的,在落后的语言上。
而你倡导的是第三方包装连接。所以你为了一个现成的框架而牺牲了速度?
因此,正如Peter所写的,你完全失去了你的程序的可移植性。
不是一个好的解决方案。用于个人使用,是的,但不用于大众使用。

 
Roman:

想象一下,没有找到它。
搜索callback和eventloop并没有在文档中找到类似的内容。
如果你不介意,请给我一个没有不必要的讽刺的链接。

你不需要做搜索,你必须阅读所有的东西。我相信里面有很多给你的惊喜。

不会有任何链接。

我在这里不止一次地帮助那些至少试图为自己做点什么的人。

你又做了什么?

你就坐在那里,在论坛上看着你的嘴?

好吧,我正在帮你解决这个问题。


 
只有市场供应商可能需要在MKL的流。对于其他所有人来说,已经有了流媒体。需要一些复杂的处理吗?- 将事件传递给一个DLL,创建和分离一个流并释放终端流,你就可以永远处理它们了)。
不得不说,大多数人不会应付这些线程,而在所有ICL用户中,有一两百人需要它。MKL会为了一百个想在Market交易的程序员而费心吗?