有没有人创建了一个成功的自动交易系统?您有什么建议? - 页 16

 
Aleksei Stepanenko #:
很好!有OOP的利润呢。学会后会不会马上就走?

OOP使你有能力编写紧凑、清晰、优雅的代码。你花在编写、修改和调试代码上的时间要少好几倍,这是很昂贵的。你可以建立一个复杂得多的交易系统,并尝试更多的交易选择。当然,如果你没有任何赚钱的机器人的想法 - 那么最好不要做任何事情。此外,不要忘记在出现bug时的直接损失的概率,在良好的OOP代码中,这种概率要小得多。

 
Вадим Калашнков #:

OOP使你有能力编写紧凑、清晰、优雅的代码。

它没有。

 
PapaYozh #:

事实并非如此。

好吧,如果你设置一个任务,故意使其复杂化,那么是的,用OOP故意使其复杂化的机会更多。

但如果你不像戴眼镜的猴子,你会得到一个更清晰、更有结构性和可维护的OOP代码。

 

朋友们,我并不反对OOP。我喜欢它的对象想法。而我部分地使用了它,但是是以结构的形式,或者说是结构的阵列。在交易中,存储图表中的所有数据就足够了,不需要在每个柱子上运行循环。但我认为,这就是我们所需要的一切。当然,人们可以用OOP写一切,那些习惯于OOP的人。但它们和程序性的一样,都是远不能获利的。整个问题是在有利可图的系统中,如果你有这个系统,你可以通过goto-code来写它 :)

支部的主题是徘徊在解决它的方式上。

 
Aleksei Stepanenko #:

我也部分地使用了它,虽然是以结构的形式,或者说是以结构的阵列的形式。


在Java中,它甚至有自己的名字:POJO(Plain Old Java Object)。

;)

 
Georgiy Merts #:

OOP代码明显更清晰、更有条理、更容易维护。

这并不总是如此,而且不取决于OOP,而是取决于代码的清洁和命名。

 
Aleksei Stepanenko #:

朋友们,我并不反对OOP。我喜欢它的对象想法。而且我部分地使用了它,但是是以结构的形式,或者说是结构的阵列。在交易中,存储图表中的所有数据就足够了,不需要在每个柱子上运行循环。但我认为,这就是我们所需要的一切。当然,人们可以用OOP写一切,那些习惯于OOP的人。但它们和程序性的一样,都是远不能获利的。整个问题是在有利可图的系统中,如果你有这个系统,你可以通过goto-code来写它 :)

支部的主题是徘徊在解决它的方式上。

使用结构不是OOP。OOP的所有好处都是从你开始使用OOP模式开始的。继承、单子、对象面、接口类,等等。另外,如果你的团队有2个人以上,你就不能没有OOP。比如说。

enum Direction
{
  BUY,
  SELL,
  NO_SIGNAL
};

class Signal
{
public:
  Signal() {}
 ~Signal() {}

  virtual Direction check_signal() { return NO_SIGNAL; }
};

接下来,要么自己写,要么给3个人写信号,比如说,3个不同的指标。

class RSISignal : public Signal
{
public:
  RSISignal() {}
 ~RSISignal() {}

  Direction check_signal() 
  { 
    Direction result;
    // Checking signal with RSI
    return result;
  }
};

使用信号的地方就可以做。

Signal* signal;

switch signal_type
{
  case RSI : signal = new RSI;
  case CCI : signal = new CCI;
  case MA  : signal = new MA;
};

if (signal.check_signal())
.....

你,作为一个参议员,是完全从函数体的实现中抽象出来的。实施和使用哪个指标对你来说并不重要。你只需使用check_signal,就可以了。在这个例子中,使用了一个函数。如果一个类中有许多函数--你必须在实现取决于配置或其他选择的地方插入开关。另外,如果你在一堆地方使用一个数据库或者说,一个日志文件--你必须做一个全局变量,并在所有阶段控制其状态(文件或数据库是否打开,等等)。如果你为此目的使用单子--你可以确信,无论你在哪里使用日志文件/基数对象--总会有一个对象的副本,你可以重新打开基数/文件,使用状态标志,制作缓冲日志,这样你就不会在每次输出时都写入磁盘,等等。如果你有超过1万行的代码,那么这些功能对开发者来说就是一个活生生的地狱。而在半年后,当你忘记了你的一半代码时,再去重做它将是一个活生生的地狱。此外,良好的OOP设计允许你添加新的功能或编辑旧的功能,而不必担心如果你改变了某个地方,一切都会变得很糟糕。

 
Valeriy Yastremskiy #:
5和4中的OOP有什么不同?启蒙。库存环境设置的差异是明显的。好吧,这些条条框框从头到尾都是有编号的。我没有看到语言上有任何其他明显的差异。

最起码,一堆望远镜函数终于被摆脱了,最重要的是,一个带有大量有用类的标准库被添加进来。

 
OOP的知识是否会以某种方式使我更接近我的梦想,即从100英镑中赚取200英镑?
 
Вадим Калашнков #:

至少,最终摆脱了一堆望远镜函数,最重要的是,增加了一个拥有大量有用类的标准库。

特别是Object.mqh

直接从你不幸引用的书里出来......精彩的图案 :-)

这个话题不是关于 你对OOP课程的掌握有多好,学会了鼓吹它......在我看来,这是一个低劣的掌握

总之,明天拿着你的课本去上学。