文章 "“傻瓜式”MQL:如何设计和构建对象类" - 页 5

 
joo:

不过,我还是看不出使用 OOP 有什么好处。....

所以你的任务并不需要它。
 
DC2008:
所以你的应用不需要它。

或者你需要,但我不知道?:)

帮我弄明白。

 
joo:

...帮我弄明白。

试着用 oop 风格重写遗传算法。他们只是在乞求去那里。

另外,你太懒了,只拿别人的代码,不拿自己的代码。开始吧,你会成功的,同时比较两种变体的性能。根据我的粗略统计,OOP 会减慢程序的运行速度。

 
joo:

不过,我还是看不出使用 OOP 有什么好处。也许这让我无法理解这种 "类 "到底是什么样的东西。

你说的这些都可以形式化为独立的函数。或者不是全部?我不是在挑剔,请正确理解我的意思--我在试图理解 OOP 的原理。

我想通过具体简单的例子来了解适当格式化的代码(使用 OOP 和不使用 OOP)在工作速度上的差异,以及 OOP 在简化项目组织方面的优势。

从您这样的开发人员口中听到有关 OOP 的问题真是奇怪;-)。您一定是在开玩笑。当然,您也可以不用 OOP,而是用函数来实现一切。但从人的角度来看,这样做在开发和维护方面都不太方便。OOP 并不能提高程序本身的运行速度。

如果我们继续以策略类为例,假设有一个代码片段需要根据策略搜索未结头寸。如果我们用函数来实现它,就会得到这样的结果:

foreach Position in Positions[]
 if StrategyType(Position) == N1 TrailTypeN1(Position);
 else if StrategyType(Position) == N2 TrailTypeN2(Position);
 ...

而如果我们使用 OOP:

foreach Position in Positions[]
 Position.Trail;

这样做的好处是:记录简洁明了,如果要添加新的策略类型,这部分代码无需修改,也无需传递(可能会有很多)参数或声明全局变量、数组来代替它们,这些都可能在不经意间破坏其他代码片段....。

总的来说,似乎有很多关于这个主题的书籍。还是问题的本质不同?

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
DC2008:

试着用 oop 风格重写遗传算法。他们只是在乞求去那里。

写完这篇文章后,管理部门建议/要求我从 OOP 的角度重写。我坦率地承认自己毫无头绪。他们允许我按原样发表。

我正在试用。现在还不行。等我重写之后,会把 OOP 代码和文档添加到文章中。

DC2008:

开始吧,你会成功的,同时比较一下两种变体的性能。根据我的粗略统计,OOP 会减慢程序的运行速度。

你证实了我的观点,即使用 OOP 的代码响应速度较慢。根据我的经验,与懂得 OOP 的开发人员一起工作,性能会明显降低,最多可降低两倍(我们比较了我的代码和我的合作伙伴的代码来执行相同的任务)。

营销人员

从你这样的开发人员口中听到有关 OOP 的问题,感觉很奇怪;-)。你一定是在开玩笑。

不幸的是,我不是在开玩笑。是的,我已经长到猛犸象那么大了。现在,我正试图摆脱顽固不化的毛病--羊毛。

营销员

当然,你也可以不用 OOP,用函数来实现一切。但从人的角度来看,开发和维护都不太方便。

是的,我想要 "灵活性"。这就是我感兴趣的原因。

营销人员

..............

一般来说,这方面的书籍很多。或者问题的实质是另一种方式?

显然,我没有抓住一些微妙之处。:(

哦,好吧。我会克服这道小障碍的。:)

 

拜托......你在开玩笑吗?

这不是一本为试图学习 OOP 的新程序员编写的 "傻瓜 "指南......这是一堆胡言乱语。你从一个应用程序中剪切并粘贴了一些代码,这些代码太晦涩难懂,对新手或初学编程者毫无帮助。

 
开始研究课程。我看到了这篇文章。是的,是的,我需要在我的智能交易系统中插入这样一个简单的界面。我想看看作者的文件,但里面什么都没有......更确切地说,在 masterwindows-doc.zip 文件夹中,只有一个空的帮助文件 MasterWindows-Doc.chm 太糟糕了!也许这篇文章中提到的所有内容都已经过时了?
 
Aleksandr Brown:
开始研究课程。我看到了这篇文章。是的,是的,我需要在我的智能交易系统中插入这样一个简单的界面。我想看看作者的文件,但里面什么都没有......更确切地说,在 masterwindows-doc.zip 文件夹中,只有一个空的帮助文件 MasterWindows-Doc.chm 太糟糕了!也许这篇文章中提到的所有内容都已经过时了?

已检查。文件没有问题。

我把它粘贴到这里,以防万一。

附加的文件:
 
Sergey Pavlov:

已检查。文件没问题

我把它放在这里以防万一。

非常感谢您的考虑我承认,我有点笨。几天前我安装了一个新的操作系统,安全服务阻止了所有从互联网下载的文件。更确切地说,借助它们打开的程序可以启动,但下载文件的内容却无法显示。现在一切正常,文章中的附件也能正常打开。一切都非常好,非常清晰,谢谢。
 
在尝试编译 MasterWindows 时,它在 "WinEXE.Run() "行抱怨"'CMasterWindowsEXE::Run' - 无法调用受保护的成员函数 ClassMasterWindows.mqh"。您能告诉我如何解决这个问题吗?