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

 

Возможно ли из ME добавить текущий код в Избранное Терминала?



На самом деле хотелось бы иметь отдельную вкладку "Отладка", куда можно было бы добавлять коды, которые сейчас пишутся и тестируются.

Сейчас получается, что для удобной работы нужно заводить отдельный Терминал, где все, что не касается текущих проектов, отсутствует.

Тогда получается отладка гораздо быстрее, т.к. не рябит от остальных кодов в самом Терминале.

[Удален]  

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

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

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

 
Alexey Kozitsyn:

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

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

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

Такое поведение в пятёрке было изначально.

Приведите пример крэша индикатора из-за перераспределения буферов

[Удален]  
Slava:

Такое поведение в пятёрке было изначально.

Приведите пример крэша индикатора из-за перераспределения буферов

Т.е. Вы подтверждаете, что когда происходит накопление 1439 баров сверх нормы, терминал ПРИНУДИТЕЛЬНО сбрасывает размер буферов до значения макс. баров в окне? Если ДА, то об этом необходимо указать в документации. Т.к. это непредвиденное поведение.

По поводу примера. Имею ввиду кастомные разработки, которые работают с номерами баров. Т.е. запомнил номер бара 6438, а через 2 минуты (ТФ М1) буферы перераспределились и получился выход за пределы массива. Теперь понятно, что это "стандартное" поведение. Обновите документацию, пожалуйста.

 

Ошибка при выполнении:

class A { public:
        virtual void f( int = 0 ) { Print( 1 ); }
};
class B : public A { public:
        virtual void f( int     ) { Print( 2 ); }
};
void OnStart()
{
        B b;
        b.f();
}

Результат  : 1

Ожидалось: 2 или (как в С++) - ошибка при компиляции

 
Alexey Kozitsyn:

Обновите документацию, пожалуйста.

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

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

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

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

 
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 бара использованы в расчётах индикатора.

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