是时候将图书馆转换为MQL5了 - 页 6

 
victorg:

实际上,直接获取数据并无不妥。

来吧,讲故事的人。安全是最重要的。当带有EA和指标的终端一天24小时运行,并且一切都 "挂 "着真金白银和访问的时候,情况就越是如此。在这种情况下,程序员不应该害怕使用第三方dll,而 "阴险地 "使用这种dll的人--"切腹"。
 

我们需要把 "做得过多不如做得过少 "真正适用和有用的领域分开。

在我看来,"安全第一 "的原则应该只适用于市场和云。买方支付的是一种自然安全的产品,因此是封闭的,而且没有办法检查产品的安全性。因此,市场必须对所有产品的安全性给予买方100%的保证。而在云计算的情况下,所有的云计算电脑都必须100%防止恶意软件。

而在所有其他情况下,不涉及通过市场分销软件产品和通过该服务购买软件产品,以及使用云,使用未经证实的dll的全部责任由用户承担。

有了这种方法,目前由于 "安全第一 "而导致的MQL5语言 性能和功能下降的许多问题就可以避免了。

 
joo:

因此,市场有义务向客户提供所有产品安全的100%保证。

你如何想象这一点呢?你作为一个卖家,从MK公司租了一个市场,要求房东对你的产品安全100%负责,同时关闭了dll中的一些代码。荒谬的。
 
abolk:
你是如何设想的?你作为一个卖家,从MK公司租了一个市场,要求房东对你的产品安全负100%的责任。这很荒唐。

市场已经给出了产品安全的保证,因为它禁止产品使用外部dlls。而MQL5程序 本身在终端的安全内部沙盒中工作。

你不知道这件事?

 
victorg:

我假设你将不得不改变很多东西。

而你只是尝试一下。

合理的DLLs最初是为与其他系统集成而编写的,因此具有原始函数形式的简单外部接口。他们的头文件很简单。


实际上,直接访问数据并没有什么问题。毕竟,MetaTrader 本身可能是用C/C++编写的,并没有什么。此外,链接器通常甚至允许汇编插入,这也是可以的。请记住,在Windows下运行的MetaTrader 直接或间接地使用了大量的系统dlls,这也没有什么问题。

恐怕你根本没有参与安全对话,不知道我们在谈论什么。


我认为你不能剥夺用户的选择权。 我真的很喜欢这样的选择,例如,我可以拿着ALGLIB-dll 和它的本地头文件,使用一个可靠的库,而不用 "弄脏我的手",只是向MQL 编译器指出这个头文件是C++ 而不是MQL

以库为例,使用从头文件中导出的函数,并稍作修改(如果需要的话)。

认为你可以从不安全的C/C++语言中提取任何*.H文件并在另一种(甚至更安全的)语言中使用,这完全是对语言的误解。你可以梦想,但你不能要求。

ALGLIB库已经被移植到MQL5,并将在源代码中提供。


可能会出现这样的问题--如果这个库是恶意的、危险的怎么办?但我已经决定自己使用它。

问这个问题几百万次,以了解MetaTrader终端用户的数量,并评估这几百万受访者的思维质量和责任。

这就是为什么我们要照顾到环境的原始安全。


换句话说--MQL 可以是你想要的安全,但如果我敢使用外部的东西,那就是我个人的问题。

使用DLL - 个人使用没有问题。
 
Renat:

认为可以从不安全的C/C++语言中提取任何*.H文件并在另一种(甚至更安全的)语言中使用,这完全是对语言的误解。梦想是可能的,但要求是不可能的。

ALGLIB库已经被移植到MQL5,并将在源代码中提供。

也许我徒劳地表达了我的意见(顺便说一下,我没有要求什么)。而关于对语言的不理解,你说得很对。我读得越多,理解得越少。我不明白为什么如果你为mql5 重写ALGLIB,然后用外部编译器(visualc)将其编译成DLL,那么这个库会比直接将库的原始源代码一次性编译成DLL 更安全?

嗯,好吧。就这样吧。

 
victorg:

我不明白为什么如果你把ALGLIB 改写成mql5,然后用外部编译器(visualc)编译成一个DLL

你有点搞错了。在MQL5中重写的设计不是使用DLL,而是直接在MQL5源代码中包括所有必要的数学包。
 
Renat:
我们已经做了大量的工作来微调MQL5编译器,使其更容易转换用其他语言编写的现有库。

MQL5语言的 发展仍在继续。预计新的功能很快就会出现,包括一个强大的代码分析器。

我们现在有两项任务要完成。
1)选择有用的第三方库进行转换
2)召集志愿者实施转换项目(我们将提供资金)。

我们希望从潜在项目的清单开始。 请帮助提供链接和简短的描述。

由于ALGLIB已经被移植了,显然关于这个话题的主要问题是"用户希望看到其他什么开源库?"

 
Urain:
由于ALGLIB已经被移植了,显然这个话题的主要问题是 "用户希望看到其他什么开源库?

是的,我在我的第一篇文章中说得很清楚。

我们现在面临着两个挑战。
1)选择有用的开放源码库进行转换

 
Rosh:
你有点搞错了。在MQL5中重写的设计不是使用DLL,而是直接在MQL5源代码中包含所有必要的数学包。

对不起,对于承诺的直接从元编辑器将C/C++ 代码编译成dll的能力,我真的感到困惑。

但我还是不明白,既然它(库)已经可以作为DLL使用了,为什么还要移植呢?原来--我在商店里买了一本书,在阅读之前,先把它誊写在一个笔记本上。

我一定是又弄错了什么。我不会再写了。