对MQL5的反馈

 

我已经使用MQL4很长时间了,听说MQL5最终将引入OOP,我非常高兴,因为我将能够更快地编写更灵活的自动分析系统。但我就是找不到词来形容我有多失望。我惊恐地发现,我不能完全用指针操作,不能方便快捷地处理对象,这对于开发系统来说尤其如此,95%的时间都是无用的。我们都在MQL中编写程序,以测试一些理论,进行一些自动数据分析,以验证和优化一个想法,而且必须非常迅速地完成,因为这个想法必须被优化很多次。即使你从语言中抽象出来,在这种情况下开发交易系统或分析系统也是一项吃力不讨好的工作,因为你开始工作时,知道它很可能是次优的甚至是无用的。我们能说什么呢,如果MQL5的开发者用他们的话说,给了我们一个超级安全的工具,在其中不可能射杀自己,但为了实现一个简单的想法,或者换句话说,一个基本算法,你需要工作几十个小时。

好吧,MQL5的开发者,我在Straustrup的书中读到一个有趣的段落,一下子就想起了你们MQL5的 "产品"。

"我们思考(写程序)的语言和我们可以想象的任务(解决方案)之间的关系非常密切。由于这个原因,限制语言能力以防止编程错误充其量是危险的。就像在自然语言的情况下,至少了解两种语言是非常有益的。一种语言为程序员提供了一套概念性的工具。如果这些工具不足以完成手头的任务,它们就会被直接忽略。优质的设计和无错误的设计不能仅仅通过一种语言中特定功能的存在或缺失来保证"。

因此,根据我上面的反馈,你为了编程而编程的东西完全不适合MQL所要达到的目的。谢谢你迫使我简单地忽略了MQL5中OOP这样的工具。

 

你至少应该给出一些例子。

你的意思是你不能完全用指针操作,不能快速而轻松地处理对象?我在开发大规模计划时从未遇到过这样的问题。

 

很少有现代的、可管理的和安全的语言允许你 "完全"(即危险地)使用指针操作。特别是在MQL4/MQL5中,安全和可控性必须是最重要的。

其余的都是现成的,可以使用。而且也有安全的指点。

最有可能的是,你只是还没有想明白,但已经推出了自己的一堆想法。没有其他方法可以称这是未经证实的流。

 
Renat Fatkhullin:

很少有现代的、可管理的和安全的语言允许你 "完全"(即危险地)使用指针操作。特别是在MQL4/MQL5中,安全和可管理性必须放在首位。

其他的东西都是存在和可用的。也有安全的指点。

最有可能的是,你只是还没有想明白,但已经推出了自己的一堆想法。没有其他方法可以称这是未经证实的流。

请。

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

请说出一种广泛使用的语言,我不能给指针分配不同的地址?请说出一种常用的语言,在这种语言中,我不能将一种类型的引用分配给同一类型的不同对象?由于你的语言的这些限制,我还会在哪里被迫 描述一个构造函数或复制函数?

如果可控性对你来说是最重要的,为什么其他受控语言不施加类似的限制?

就我个人而言,最重要的不是安全和可控性,而是我能够实现想法的速度,这在交易想法方面是极其公平的,那些不同意这一点的人,要么是高估了他们系统的价值,要么是为了编程而编程,而不是一个具体的结果。

 

雷纳特,你自己也承认我在第一篇文章中所写的内容,并通过将其作为不可否认的优势来掩盖安全方面的灵活性损失,尽管这根本不是事实。

Битый указатель (именно указатель как сущность и рабочая единица языка) контролируется системой и безопасно обрабатывается, выдавая при необходимости рантайм ошибку, указывая на ошибку автора. А вот "физическая" ссылка не может быть проконтролирована, да ее и нет в языке (не путайте с передачей параметра по ссылке, где это лишь контролируемый системой метод связи).

去除危险的链接是创建安全语言的第一步,从今天的C++这个怪物中走出来。我们有目的、有意识地删除了参考资料,故意通过摆脱自拍而失去灵活性

让我有能力向自己开枪,因为没有这种能力,我就不得不控制编程,而我想控制我想实现的想法。
 
urusov:

请。

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

请说出一种常用的语言,我不能给指针分配不同的地址?请说出其他一种广泛使用的语言,我不能将同一类型的引用分配给不同的对象?由于你的语言的这些限制,我还会在哪里被迫 描述一个构造函数或复制函数?

如果可控性对你来说是最重要的,为什么其他受控语言不施加类似的限制?

就我个人而言,最重要的不是安全性和可控性,而是我实现想法的速度,这在交易想法方面是极其公平的,那些不同意这一点的人,要么是高估了他们系统的价值,要么是为了编程而编程,而不是一个具体的结果。

同志!不要把你对语言的无知转移到开发者的责任区。在MQL5中,您可以自由地将各种对象分配给指针,并将这些对象作为指针传递。像其他现代语言一样,如C#和Java,MQL5有一个明确的类型检查,它们的转换只能在同一个类的层次结构中进行(继承)。同样,在其他广泛使用的语言 如C#和Java中也实现了完全相同的行为。

 
urusov:

雷纳特,你自己也承认我在第一篇文章中写的所有内容,并将安全方面的灵活性损失掩盖为不可否认的优势,而事实并非如此。

让我有能力向自己开枪,因为没有这种能力,我就不得不控制编程,而我想控制我想实现的想法。
从你以前的帖子来看,你已经学会了巧妙地射杀自己的脚。现在剩下的就是学习如何编程。
 
我喜欢5-Rka。最有可能的是,启动者没有足够的时间去了解它,就贸然下了结论。当然,一开始会有点棘手,但这是值得的。
 
urusov:

雷纳特,你自己也承认我在第一篇文章中所写的一切,并通过将其作为不可否认的优势来掩盖安全方面的灵活性损失,而事实根本不是这样的。

给我机会,让我射中自己的脚,因为没有这个机会,我必须控制编程,我想控制我想要实现的想法。

你应该教育自己,多想想安全问题。

我不是在承认什么,但我在上面的链接中证明了(即使没有明确提到具体的地方也会被抛出),在MQL4/MQL5中做了什么,如何做,为什么做。自2001年(MQL问世时)以来,为交易平台开发应用语言的实际经验使我们能够清楚地了解为实现全局性的结果需要什么。


你想要无限制的速度吗?但即使在MQL5中,我们也已经赶上了本地的C++编译器:测试x64平台的新MQL5编译器--速度提高了2到10倍!

 
urusov:

请说出一种广泛使用的语言,我不能给指针分配不同的地址?请说出其他一种广泛使用的语言,我不能将同一类型的引用分配给另一个对象?由于你的语言的这些限制,我还会在哪里被迫 描述一个构造函数或复制函数?

好吧,至少看看标准库https://www.mql5.com/ru/docs/standardlibrary,看看完全用引用操作的代码(在MQL5\Include\*)。

很明显,你根本不了解这种语言。

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

雷纳特,请看看这个主题

https://www.mql5.com/ru/forum/60581/page2

Куда пропала история сигнала?
Куда пропала история сигнала?
  • www.mql5.com
Помогите разобраться, пропала история торговли сигнала (доходность, сделки и прочее). - Страница 2 - Категория: общее обсуждение
原因: