Ошибки, баги, вопросы - страница 2489

 
Slava:

Да, кстати, в OnCalculate есть такой параметр rates_total

В OnCalculate параметр rates_total тоже показывает больше, чем настроено в терминале.

 
Alexey Viktorov:

В OnCalculate параметр rates_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 баров. Только после этого можно проверить какие значения high и/или low равно как open/close бара использованы в расчётах индикатора.

Просто очень неудобно. Но человек быстро привыкает и подстраивается ко всему нехорошему.

 

Ожидались ошибки при компиляции

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

Извините, ответ в картинках.

Но в дебагере показывает

И для проверки значения индикатора приходится прокручивать 1268 баров. Только после этого можно проверить какие значения high и/или low равно как open/close бара использованы в расчётах индикатора.

Просто очень неудобно. Но человек быстро привыкает и подстраивается ко всему нехорошему.

Вы внимательно прочитали мою цитату постом ниже?

Такое поведение было всегда с момента введения настройки «максимальное количество баров на графике», то есть с начала MT4. И мы многократно объясняли за эти 15 лет, почему мы не урезаем каждый раз количество баров в соответствии с этой настройкой. И теперь не каждый раз урезаем.

Никто не читает документацию. Но ведь парадокс. Все равно просят, чтобы мы написали что-то ещё в документацию, которую они не читают

 
Slava:

1. В каком месте нужно обновить документацию?

2. Однозначным идентификаторам бара всегда было время бара, а никак не его номер.

3. Если вашему графику кто-то вызвал ChartSetSymbolPeriod, то вы запросто словите изменение количества баров. Сюрприз?

4. Да, кстати, в OnCalculate есть такой параметр rates_total

1. Именно в том месте, на которое Вы и указали в последующем посте. Просто добавьте, что будет СБРОС, и этот сброс будет именно через макс баров в окне + 1439.

2. Хорошо, учту. Хотя, Вы же понимаете, что под одним временем не может быть двух баров, верно?

3. Не сюрприз. Я говорю именно про то, что если не менять ни таймфрейм, ни символ, может произойти сброс с 6439 на 5000.

4. Если Вы внимательно читали мой пост выше, то заметили, что:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Alexey Kozitsyn, 2019.06.28 10:40

Уважаемые разработчики. Уточните пожалуйста, автоматическая переразметка буферов индикатора - это нормально? Под переразметкой я понимаю следующее: макс. баров в окне, например 5000. Размер буфера + rates_total сбрасываются на 5000 по достижении размера 6439. Аналогично происходит в случае, когда макс. баров в окне = 10000. Сброс происходит при 11439.

Из-за этого индикаторы могут крашиться и показывать некорректные данные.

Билд 2085. Подобное поведение заметил где-то с 2000-х билдов.

я указал на rates_total также. Проблема то в том, что при переразметке rates_total и буферы не сбрасывается в 0 (тогда проблем бы не было, просто пересчитали бы весь индикатор и все). А принимает значение макс. баров в окне. Вот именно об этом и напишите просто.

Чтобы облегчить Вам задачу, хотелось бы видеть вот такую запись:

Для более экономичного расчета индикаторам может быть доступно больше баров, чем указано в параметре "Макс. баров в окне". С поступлением новых баров более старые бары не сразу удаляются из кэша данных. Это позволяет не пересчитывать индикатор полностью на каждом новом баре, а лишь досчитывать его значения для новых баров. Удаление старых баров происходит по достижению значения Макс. баров в окне +1439 баров.

Да, кстати, уточните пожалуйста, значение 1439 сохраняется и для других ТФ? Или только М1?

 
Slava:

Вы внимательно прочитали мою цитату постом ниже?

Такое поведение было всегда с момента введения настройки «максимальное количество баров на графике», то есть с начала MT4. И мы многократно объясняли за эти 15 лет, почему мы не урезаем каждый раз количество баров в соответствии с этой настройкой. И теперь не каждый раз урезаем.

Никто не читает документацию. Но ведь парадокс. Все равно просят, чтобы мы написали что-то ещё в документацию, которую они не читают

Вот Вы говорите про "парадоксы" с чтением документации. А я не раз замечал, что у Вас парадоксы с чтением постов. Вы просто их зачастую читаете не до конца. У всех свои недостатки. Только лучше акцентировать внимание не на чужих недостатках, а на недостатках продукта, который Вы разрабатываете, а мы пользуемся.

Спасибо.

 
Alexey Kozitsyn:

я указал на rates_total также. Проблема то в том, что при переразметке rates_total и буферы не сбрасывается в 0 

спрака не корректная, в заблуждение вводит, вот писал https://www.mql5.com/ru/forum/304239/page57#comment_11519307

а буффера в MQL5 вообще работают как обычные массивы, в МТ4 буферами еще как то занимался терминал - то в EMPTY_VALUE их сбрасывал, то ... не помню где то писал отличие работы индикаторов МТ5 и МТ4

а в МТ5 все делаете сами - нужно очистить буфера - очистили как обычный массив, терминал только размер массива-буфера сам устанавливает

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

спрака не корректная, в заблуждение вводит

Дак о том и речь, что лучше один раз изменить документацию на правильную, полную и актуальную, чем 15 лет объяснять одно и тоже разным людям, которые что-то не нашли в документации.