Mt4结束支持。 - 页 39

 
George Merts:

可以说这是一种优势。

不小心有人会改变旗帜--这将影响TC的行为。

嗯,没有办法对事故免疫。人的因素是不可阻挡的)。
 
Реter Konow:

我最初的任务:在不使用OOP的情况下展示有效的解决方案。


我的解决方案的本质 是: -每分钟生成一个所有符号和时间框架的新条形图的事件标志的全局数组

优势。

1.自动填充阵列和自动清除。

2.没有系统负荷。

3.从任何函数直接访问数组,并在数组被清空之前保存事件标志。

妈的,终于醒了....
你要明白,任何符号的柱状物都可能在任何瞬间出现,而任务就是在同一时刻告诉系统,一个新的柱状物已经出现。当你每分钟轮询一次系统时,你是如何设想的?

 
Реter Konow:
好吧,我们不能保证不发生意外。人的因素是不可阻挡的))。

你去吧。因此,我认为,代码的编写方式应尽可能限制可能的人为错误。正是因为人的因素是一个不可减少的因素。就在昨天,我发现我的代码中有一个错误,因为这个错误,专家顾问的统计数据是从历史开始收集的,而不是从指定的日期(专家顾问的创建日期)开始。我只是忘了初始化这个变量,它仍然是零。

所以,现在我重新设计了分析器,有必要指定日期,从该日期开始进行分析,专家顾问的部件工厂将只返回创建日期,而不返回其他日期。

现在不可能分析专家顾问创建日期之前的交易历史。即使以前的版本进行了交易--现在也不会被纳入统计范围。

 
Nikolai Semko:
妈的,终于醒了....
你意识到任何符号的条形图都可能在任何瞬间到达,任务就是在那一瞬间告诉系统一个新条形图已经到达。当你每分钟轮询一次系统时,你是如何设想的?

为什么 "在这个非常时刻"?

我的朋友们,你们只是在做交易方面有不同的方法。如果我们在M1时间框架上工作--我们应该得到一个新的条形图已经到来的信息--不是 "在同一时刻",而是在新的一分钟到来时。 如果我们在S1时间框架上工作(你好,沃尔昌斯基)--我们应该在新的一秒钟到来时得到这个信息。如果我们在每一个蜱虫上下功夫--信息应该随着新蜱虫的到来而出现。

还有一个 "按事件工作 "的选项--但是我们不应该使用IsNewBar()函数,而应该使用OnNewBar()函数,它实际上是OnTick()函数的 一个 "子集"

 
Nikolai Semko:
妈的,终于醒了....
你意识到,任何符号的柱状物都可能在任何时候到来,任务就是在那一刻告诉系统有一个新的柱状物到来。当你每分钟轮询一次系统时,你如何想象这将发生?

iBars()函数将总是返回当前的条数。如果它在上次调用后发生了变化,它将把新的酒吧事件提交给数组,如果它没有变化,它将不提交。
 
Nikolai Semko:
妈的,终于醒了....
你应该意识到,任何符号条都可能在任何时候出现,而任务就是在同一时刻告诉系统有一个新条进来。当你每分钟轮询一次系统时,你是如何设想的?

我明白了,所以酒吧可能不会在请求iBars 时到达,但可能在请求后一会儿才到达。那么它就会被系统错过。这就是问题的关键。


然后呢,要不断地访问?- 显然,这不是最好的解决方案。

 
Реter Konow:

我明白了,所以酒吧可能不会在投票时出现,但会在投票后的某个时刻出现。那么它就会被系统错过。这就是问题的关键。

彼得,我建议另一个讨论的话题,这是第二次了。不需要写什么,只是理论。

关于交易、自动交易系统和测试交易策略的论坛

Mt4终端支持。

Alexey Viktorov, 2017.09.11 13:08

我想我已经找到了一个关于OOP 可用性的原始例子。这里有一个函数,用一个指定的值填充一个数组。根据阵列类型,有八个品种。

想象一下,你需要写一个需要传递一组参数的函数,然后是另一组,然后是第三组......。使用算法的方法,你会得到N个不同的函数的名字。似乎没有什么问题,你可以写8个这样的函数,如ArrayInitializeInt()ArrayInitializeDouble()等等但是,不用考虑数组的类型,在任何情况下只要使用一个函数就好了,而且把哪个数组放在那里都是安全的......。


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

彼得,我建议另一个讨论的话题,这是第二次了。不需要写什么,只是理论。


请稍等片刻。我们将充分理解这一主题,我将仔细阅读第二篇。
 
Реter Konow:
请稍等。我们将充分理解这个主题,我将仔细看看第二个主题。

正如你所记得的那样,提出新吧 的话题是为了找出OOP的优点,但绝不是编程选项,更不是你的能力。但是,对你的代码和算法的评论总体上将讨论转向了错误的方向。所以我认为没有必要继续下去。

 
Alexey Viktorov:

正如你所记得的,提出新吧的 话题是为了找出OOP的优点,但不是编程的选择,更不是你的能力。但对你的代码和算法的评论一般来说使讨论转向了错误的方向。所以我认为没有必要继续下去。

也就是说,你想让我继续糟蹋OOP的优势,而大家一直在嘲笑我?)但你基本上是对的。讨论已经走向了错误的方向。