OOP与程序化编程 - 页 4

 
Реter Konow:
George Merts:

呃...我不太明白这一点。

其目的是将TC与终端分离。代码必须在两个平台上编译而不做任何改动。超级任务--通过只写与贸易服务器工作的类,将所有写好的TS转移到WealhtLab Developer。

//--------------------------------------------------


我询问了当前的任务,以便通过几个标准来比较其解决方案,并对每个方案的有效性得出结论。你把谈话从实际部分带走了。当断言OOP的 有效性时,你必须能够在实践中证明它。但我准备尝试证明我的观点。

那么,目前的问题是什么?我希望你能记住它)


如果你使用指向函数的指针,你可以不使用OOP。但如果你不使用指针,你必须明白,你无法赶上OOP。

 
Alexey Volchanskiy:

我认为你不是一个程序员?然后记住你在哪里 2017.07.05 14:55 GMT 00,你在和谁说话,关于什么 ))

容易。我在家里,自言自语地谈论我的计划))))))))
 
Dmitry Fedoseev:

如果你使用指向函数的指针,你可以不使用OOP。但如果你不使用指针,你必须明白,你无法赶上OOP。

不,在没有具体的任务让我知道我无法赶上OOP之前,我无法掌握它。不幸的是。这些只是文字而已。


目前,我有4年的编程实践。你可以放心地把它们乘以2,因为我每天都在编程,有很多时间。在这段时间里,我解决了无数不同的任务。 还没有使用OOP。我不明白为什么我需要它。在我的实践中,所有的任务没有它也能解决,有时甚至更有效率。

 
Реter Konow:
不,在没有具体的任务让我知道我无法赶上OOP之前,我根本无法掌握它。不幸的是。这些只是文字而已。

想象一下,一个假设的程序,根据外部参数改变其算法,可能有大量的变体。没有OOP也是可以解决的,但那些多层的开关看起来会有多蠢啊。此外,很明显,随着变体数量的增加,性能会减慢。同样清楚的是,在OOP中,初始化过程中的构建会发生,进一步说,在操作过程中,不会发生不必要的分支,也就是说,增加变体的数量不会降低性能。

 

结构化编程的一个显著特点是将程序分为代码块。
其中执行特定的任务。在这种情况下,构件是函数
和模块(可移至单独的文件)。
更现代的是面向对象编程(OOP)
OOP的概念更多指的是数据组织。OOP使程序员的生活更轻松。
OOP中的关键概念是对象和类。
类是添加功能的结构。而对象是结构化的变量或类的实例

结构化编程是第一步。掌握了它,程序员就能获得优势。OOP是下一个步骤,具有以下优势

Классы и объекты в C++
  • gamesmaker.ru
Наконец-то мы добрались до самой важной темы во вступительном курсе. Сегодня мы будем говорить о классах и объектах. Выпуск небольшой и не сложный. Что есть хорошо. Класс - не что иное, как структура, к которой добавили функции. А объект - это структурная переменная. Данный материал будет более понятным, если вы хорошо освоились со структурами...
 
Реter Konow:
让我们解决一个特定的问题并进行比较。

这里有一个简单的任务(如果要详细解释,需要花很多笔墨)。

一切都发生在OnTick()中。假设,我们检查了一些条件并开了一个订单。条件并不重要,让我们假设,它是某个最大或最小值。

机器人自然而然地站在一些图表上,获得这个符号的报价。很明显,我们不仅有OnTick一个函数,还有其他函数:OnTrade、OnTimer、自定义函数等等。

因此,所有被共享的变量必须在代码开始时在这些函数之外声明。例如,如符号名称、卖出价、买入价、价差、报价的位数等。将会有几十个人。

这个机器人将只在一个符号上进行交易,即它所处的位置。让我们假设有20个这样的图表,我们将在所有图表上安装同一个机器人,同时对所有20个货币对进行交易。

但这并不是一个多货币交易机器人,正如市场上一些交易者所指出的那样。


在这里,我们需要把它变成一个多货币的机器人。也就是说,我们把它放在任何图表上(只放在1个图表上),它就会为20个配对打开交易。这意味着我们在测试器中以单独模式启动它,它将在市场观察中的那些货币对上进行交易。

下面是你如何在没有OOP的情况下实现它。你会把所有的普通变量转化为20个元素的数组吗?

那么对于所有的对子来说,将同时被调用的函数呢?

你不能没有OOP。:)


P.S. 我想说明的是,我没有接受过俄语教育,所以我写得很长,没有时间读几页。

 
Dmitry Fedoseev:

如果你使用指向函数的指针,你可以不使用OOP。如果你不使用指针,你必须自己意识到你无法赶上OOP。


我不同意。我曾经一度写过数字电视程序,编译器是C++,但它是在C语言内使用的,因为内存很稀少。指向函数的指针被非常广泛地使用,但这还远远没有达到OOP的要求。

 
Petros Shatakhtsyan:

...

下面是你如何在没有OOP的情况下做到这一点。

...

这里更相关的问题不是 "如何 "而是 "为什么"?为什么你需要对终端已经实现的东西进行编码呢--你只需要打开所需数量的图表并将其附加到EA上。此外,对于不同的符号和时间框架,参数可能会有所不同。

 
Alexey Volchanskiy:

我不同意。我曾经为数字电视写过程序,编译器是C++,但因为内存不足,所以用的是C语言。指向函数的指针被非常广泛地使用,但它还远远没有达到OOP的要求。


这不是很方便,但就性能而言,你可以只用指针来做。

而方便是一个相对的概念。

 
Dmitry Fedoseev:

想象一下,一个假设的程序,根据外部参数改变其算法,可能有大量的变体。我们可以在没有OOP的情况下解决这个问题,但是那些多层的开关看起来会有多蠢啊。此外,很明显,随着变体数量的增加,性能会减慢。同样明显的是,在OOP中,初始化时有一个构建,然后在工作中没有不必要的分支;也就是说,增加变体的数量不会降低性能。

最好能引导到一个具体的任务。这样的描述并不十分清楚。在我的实践中,当外部参数改变时,算法不会改变。它事先对这些参数的任何数值都是通用的。因此,你的意思不是很清楚。用一个具体的例子来描述它。