关于OOP的一个应用 - 页 2

 
Avals:
最主要的是事后如何使用它。要尝试不同的输入,你可以通过输入组号批量进行。也就是说,有一个输入集的集合。如果方便的话,则作为一个函数数组。最简单的是--无条件的按市场买入或卖出。或有条件的))。然后我们将运行优化器,查看不同的条目集。
是的,目前看来,我们在设置中设置了策略的数量,并在优化器中按数量进行优化。但这只是个开始,我很久以来一直梦想着能在飞行中进行自我优化。
 
Alexey Volchanskiy:
是的,目前看来,我们在设置中设置策略编号,在优化器中按编号进行优化。但这是第一次,我很久以来一直梦想着在飞行中进行自我优化。
这种自我优化的目的是什么(目标功能)?
 
Avals:
这种自我优化的目的是什么(目标功能)?

其目的显而易见。首先,测试器中的优化器缺少当前日期,至少在MT4中是肯定的。而且我是为MT4做的。

第二,市场可能会在一天中没有任何理由地发生剧烈变化(新闻)。可能你已经注意到了,一个迟缓的平...突然间,就像在尾巴下撒了芥末一样,引号开始撕裂。要么是一个单位,要么是完全混乱。

我认为我们可以对这类条件进行分类,并在定义时包括对策略的必要修改。如何做到这一点?我没有足够的胆量去创造一个人工智能。但优化的方法可以间接地决定状态。

到目前为止,这些只是未经测试的想法。

 
Alexey Volchanskiy:
是的,目前看来,在设置中我们设置了策略的数量,并在优化器中按数字进行优化。但这是第一次,长期以来,我有一个梦想,就是在飞行中进行自我优化。

按照我的理解,你的客户想把他知道的所有策略都包在一个专家身上。除非你有一份战略清单,否则你将无法完成这项任务。我建议一起起草ToR。

如果PLUS到这个策略清单,你触及到自我优化的问题,那么就给他写一个神经网络,不要重新发明轮子,不要用基本的编程知识来迷惑你的客户的头脑。这正是他对你的要求。

 
George Merts:

我可以给你一个 "抨击 "的例子吗?

给你。标准库中交易类的层次结构。

这意味着资金管理模块 是一个专家顾问。追踪止损也是一种专家顾问。专家顾问包括其他专家顾问。这种不一致的继承性是由于追踪止损和资金管理都需要访问基本专家顾问的一些私人数据和方法。

顺便说一下,有长长的花环,是继承的。CIndicators使用CIndicatorBuffer,而CIndicatorBuffer又会调用它的高级方法。因此,对指标值的简单追踪成为一项非常混乱的任务。在三次递归调用之后,我们完全失去了对事物来源的感觉。

而这仅仅是继承性差的一个例子。事实上,任何基于继承的或多或少的大型类的层次结构几乎总是变得不一致、混乱和递归。这使得调试和进一步发展变得非常困难。

我们认为,继承的深度应该限制在1-2层。此外,第一层应该继承零层CObject的全局和通用定义(都是对象),并实现 "专家"、"指标"、"追踪止损 "等具体实体。第二层应该实现 "基于MACD的专家顾问"、"SMA指标"、"追踪止损 "等的具体实施。但使用第三级的行为必须受到严厉的惩罚和起诉。

换句话说,事实证明,只有当分类是一个真正有价值的工具时。

  1. 有限的,并且不创建长的继承层次。
  2. 与基于界面和内含物的水平设计联合使用。

 
Gulnaz Akhtyamova:

按照我的理解,你的客户 把他知道的所有策略都包在一个专家身上。除非你有一份战略清单,否则你将无法完成这项任务。我建议一起起草ToR。

如果PLUS到这个策略清单,你触及到自我优化的问题,那么就给他写一个神经网络,不要重新发明轮子,不要 用基本的编程知识来迷惑你的客户 的头脑。这正是他对你的要求。

他没有看到这种可能性,这是我的想法。你有职责范围。自我优化是我边走边想的。我总是对的。)
 
Vasiliy Sokolov:

给你。标准库中交易类的层次结构。

这意味着资金管理模块 是一个专家顾问。追踪止损也是一个专家顾问。专家顾问包括其他专家顾问。这种不一致的继承性是由于跟踪止损和资金管理都需要访问基本专家顾问的一些私人数据和方法。

顺便说一下,有长长的花环,是继承的。CIndicators使用CIndicatorBuffer,而CIndicatorBuffer又会调用它的高级方法。因此,对指标值的简单追踪成为一项非常混乱的任务。在三次递归调用之后,我们完全失去了对事物来源的感觉。

而这仅仅是继承性差的一个例子。事实上,任何基于继承的或多或少的大型类的层次结构几乎总是变得不一致、混乱和递归。这使得调试和进一步发展变得非常困难。

我们认为,继承的深度应该限制在1-2层。此外,第一层应该继承零层 CObject 的全局和通用定义 (都是对象),并实现 "专家"、"指标"、"追踪止损 "等具体实体。第二层应该实现 "基于MACD的专家顾问"、"SMA指标"、"追踪止损 "等的具体实施。但使用第三级的行为必须受到严厉的惩罚和起诉。

现在我明白了这个想法。顺便说一下,我在我的交易机器人中实施的简单方法,正如我所指出的。只有名字不同。

ZS:你在什么地方做了这样一个图?像Doxygen那样的东西?

 
Vasiliy Sokolov:

给你。标准库中交易类的层次结构。

这意味着资金管理模块 是一个专家顾问。追踪止损也是一个专家顾问。专家顾问包括其他专家顾问。这种不一致的继承性是由于追踪止损和资金管理都需要访问基本专家顾问的一些私人数据和方法。

顺便说一下,有长长的花环,是继承的。CIndicators使用CIndicatorBuffer,而CIndicatorBuffer又会调用它的高级方法。因此,对指标值的简单追踪成为一项非常混乱的任务。在三次递归调用之后,我们完全失去了对事物来源的感觉。

而这仅仅是继承性差的一个例子。事实上,任何基于继承的或多或少的大型类的层次结构 几乎总是变得不 一致、混乱和 递归。这使得调试和进一步发展变得非常困难。

我们认为,继承的深度应该限制在1-2层。此外,第一层应该继承零层CObject的全局和通用定义(都是对象),并实现 "专家"、"指标"、"追踪止损 "等具体实体。第二层应该实现 "基于MACD的专家顾问"、"SMA指标"、"追踪止损 "等的具体实施。但使用第三级的行为必须受到严厉的惩罚和起诉。

换句话说,事实证明,只有当分类是一个真正有价值的工具时。

  1. 有限的,并且不创建长的继承层次。
  2. 与基于界面和内含物的水平设计结合使用。

+非常真实的想法。

 
Alexey Volchanskiy:

ZS:这样的图是用什么画出来的?像Doxygen那样的东西?

是的,如果只是;)在SnagIt中对它进行了大约一个小时的雕刻。专门为我的文章做的。
 
Vasiliy Sokolov:
是的,如果只是;)在SnagIt中仔细研究了大约一个小时。专门为我的文章做的。
哦,手工制作))))尊重!