错误、漏洞、问题 - 页 2489

 
Slava:

哦,顺便说一下,OnCalculate有rate_total参数

OnCalculate 中,rate_total参数显示的内容也比终端配置的内容多。

 
Alexey Viktorov:

在OnCalculate中,rate_total参数显示的内容也比终端配置的内容多。

rates_total总是显示当前图表上可用的条数

我不明白你的说法是什么意思。

 

我现在手头没有客户终端,无法引用帮助。从移动设备上点击两下https://www.metatrader5.com/ru/terminal/help/startworking/settings#max_bars

特别强调的段落

为了更经济的计算,指标可以有比 "窗口最大条数 "参数中指定的更多条数。随着新条形图的到来,旧条形图不会立即从数据缓存中删除。这允许指标不在每个新条形上完全重新计算,而只是为新条形额外计算其数值。

Настройки платформы - Начало работы - MetaTrader 5
Настройки платформы - Начало работы - MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...
 
Slava:

rates_total总是显示当前图表上可用的条数

我不明白你这句话的意思

对不起,答案在图片中。

但在调试器中,它显示

而你必须滚动浏览1268个柱子来检查指标值。只有在这之后,你才能检查在指标计算中使用哪些高点和/或低点以及开盘/收盘的数值。

这只是非常不舒服。但人很快就会习惯它,并适应一切不好的东西。

 

预期的编译错误

class A { public:
        void operator[]( int = 1 ) {} //нормально ???
};
void OnStart()
{
        A a;
        a[]; //нормально ???
}
 
Alexey Viktorov:

对不起,答案在图片中。

但调试器显示

而为了检查指标的价值,我们必须滚动浏览1268个条形图。只有在这之后,你才能检查在指标计算中使用哪些高点和/或低点以及开盘/收盘的数值。

这只是非常不方便。但人很快就会习惯它,并适应一切不好的东西。

你仔细阅读了我在下面帖子中的引文吗?

自从引入 "图表 最大条数 " 设置以来,即从MT4开始,这种行为就一直存在。在这15年中,我们已经多次解释过,为什么我们不是每次都按照这个设置来削减条数的。而现在我们并不是每次都削减。

没有人读过文件。但有一个悖论。但他们仍然要求我们在文件中写些别的东西,而他们并不看这些文件。

 
Slava:

1.哪里需要更新文件?

2.酒吧的个位数标识符一直是酒吧时间,而不是酒吧号码。

3.如果你的图表被别人调用了ChartSetSymbolPeriod,你会很容易地捕捉到条数的变化。惊喜吗?

4.顺便说一下,在OnCalculate中有一个参数rate_total。

1.正是你在随后的帖子 中指出的地方。 只要加上将有一个RESET,而这个RESET将正好通过窗口中的最大条数+1439。

2.好的,我会考虑到这一点。虽然,你意识到在同一时间内不可能有两个酒吧,对吗?

3.不是一个惊喜。我具体说的是,如果你不改变时间框架或符号,可能会有一个从6439到5000的重置。

4.如果你仔细阅读我上面的帖子,你会注意到这一点。

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

错误, 漏洞, 问题

Alexey Kozitsyn, 2019.06.28 10:40

亲爱的开发者。如果我想问你,指标缓冲区的自动重新划分是否正常?我所说的重新分区是指:窗口中的最大条数,例如5000。 缓冲区大小+ rates_total 在达到6439时被重置为5000。当窗口中最大条数=10000时,也会发生同样的情况。复位发生在11439。

由于这个原因,指标可能会崩溃并显示不正确的数据。

建立2085年。我从2000年左右开始注意到这种行为。

我还指出了rate_total。问题是rate_total和buffers没有被重置为0(那样就没有问题了,只要重新计算整个指标就可以了)。并获取窗口中的最大条数的值。这正是你应该直接写的东西。

为了使你的任务更容易,我想看看这样的记录。

为了更经济的计算,指标可以有比 "窗口中最大条数 "参数中指定的更多的可用条数。随着新条形图的到来,旧条形图不会立即从数据缓存中删除。这不允许指标在每个新的条形图上完全重新计算,而只是将其数值添加到新的条形图上。 一旦达到+1439条窗口中的最大条数值,旧的条数将被删除。

是的,顺便请澄清一下,1439这个值是否也保存在其他TF中?还是只针对M1?

 
Slava:

你仔细阅读了我在下面帖子中的引文吗?

自从引入 "每个图表 的最大条数 " 设置后,即从MT4开始,这种行为就一直存在。在这15年中,我们已经多次解释过,为什么我们不是每次都按照这个设定来削减酒吧的数量。而现在我们并不是每次都削减。

没有人读过文件。但这是一个悖论。他们仍然要求我们在文件中写一些其他的东西,而他们并没有阅读这些文件。

在这里,你谈到了阅读文件的 "悖论"。而且我不止一次注意到,你在阅读帖子方面存在悖论。你只是经常不把它们全部读完。我们都有自己的短处。只是最好不要关注别人的缺点,而是关注你开发的和我们使用的产品的缺点。

谢谢你。

 
Alexey Kozitsyn:

我也指出了rate_total。问题是,当rate_total和缓冲区被重新分区时,rate_total和缓冲区没有被重置为0。

该参考资料不正确,有误导性,我写道:https://www.mql5.com/ru/forum/304239/page57#comment_11519307

在MQL5中,缓冲区一般像平常的数组一样工作,在MT4中,终端以某种方式处理缓冲区 - 它将它们重置为EMPTY_VALUE,然后...我不记得我在哪里写过关于MT5和MT4指标的区别了

你需要清除缓冲区--你把它们当作一个普通的数组来清除,终端只设置数组-缓冲区本身的大小。

Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов
Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов
  • 2019.04.30
  • www.mql5.com
21 февраля 2019 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Igor Makanu:

该参考资料不正确,有误导性

这就是问题的关键,把文件改成正确的、完整的、最新的,总比15年来向不同的人解释同样的事情,而这些人却没有发现文件中的东西要好。