Если меньше ничего страшного, как правило, буфер строки всегда немного больше чем сама строка (но это не факт!)
А вот в случае, если записать больше, то практически наверняка гарантировано аварийное завершение терминала. И аварийное завершение скорее всего произойдёт не сразу, а только при следующей работе с динамической памятью (перераспределение массивов или буферов строк) или на завершении работы, когда использованная память MQL программ возвращается в систему
Тогда почему Вы советуете новичку использовать функцию wcscpy?
Есть же более безопасные функции: wcscpy_s, wmemcpy_s.
Объясните пожалуйста, почему в обработчике OnCalculate время каждого вновь образованного бара time[0] опережает время тика, которое мы запрашиваем с помощью функции SymbolInfoTick? По идее, если уже есть бар time[0], то должен существовать тик, его породивший, а функция SymbolInfoTick яко-бы должна всегда возвращать последний известный тик.
Прикладываю индикатор, который воспроизводит данную проблемы в тестере в потиковом режиме.
2019.10.1216:51:53.6672019.01.0206:00:00 Time 2019.01.0206:00:00 = 1546408800000is ahead of tick: 15462971995722019.10.1216:51:53.7532019.01.0206:01:00 Time 2019.01.0206:01:00 = 1546408860000is ahead of tick: 15464088300002019.10.1216:51:54.3152019.01.0206:02:00 Time 2019.01.0206:02:00 = 1546408920000is ahead of tick: 15464089190002019.10.1216:51:54.6172019.01.0206:03:00 Time 2019.01.0206:03:00 = 1546408980000is ahead of tick: 1546408979000
На каждой границе баров есть такая проблема.
PS. Также в данном индикаторе демонстрируется другая проблема: там ведется подсчет тиков, и судя по утверждению документации, что OnCalculate вызывается для всех тиков без пропуска, тиковый объем должен всегда совпадать со счетчиком тиков, однако это не всегда так.
Объясните пожалуйста, почему в обработчике OnCalculate время каждого вновь образованного бара time[0] опережает время тика, которое мы запрашиваем с помощью функции SymbolInfoTick? По идее, если уже есть бар time[0], то должен существовать тик, его породивший, а функция SymbolInfoTick яко-бы должна всегда возвращать последний известный тик.
Прикладываю индикатор, который воспроизводит данную проблемы в тестере в потиковом режиме.
На каждой границе баров есть такая проблема.
PS. Также в данном индикаторе демонстрируется другая проблема: там ведется подсчет тиков, и судя по утверждению документации, что OnCalculate вызывается для всех тиков без пропуска, тиковый объем должен всегда совпадать со счетчиком тиков, однако это не всегда так.
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
Лучше бы вместо баннера вверху страницы показывалось время через которое будет обновляться сайт .... Час потраченный на оформление просто пропал из за обновления сайта...
Что за ...? Как такое возможно? Почему условие выполняется?
П.С.
inputdouble lower_channel_line_a0 = 0.0; // Порог принятия решения для А0 (низ канала)inputdouble indent_channel_line_a0 = 0.0; // Отступ для верхней границы канала А0 (0 - канал не использовать)inputdouble upper_channel_line_a4 = 1.0; // Порог принятия решения для А4 (верх канала)inputdouble indent_channel_line_a4 = 0.0; // Отступ для нижней границы канала А4 (0 - канал не использовать)
..........
double a0=0.0,a1=0.0,a2=0.0,a3=0.0,a4=0.0;
Если меньше ничего страшного, как правило, буфер строки всегда немного больше чем сама строка (но это не факт!)
А вот в случае, если записать больше, то практически наверняка гарантировано аварийное завершение терминала.
И аварийное завершение скорее всего произойдёт не сразу, а только при следующей работе с динамической памятью (перераспределение массивов или буферов строк) или на завершении работы, когда использованная память MQL программ возвращается в систему
Тогда почему Вы советуете новичку использовать функцию wcscpy?
Есть же более безопасные функции: wcscpy_s, wmemcpy_s.
Объясните пожалуйста, почему в обработчике OnCalculate время каждого вновь образованного бара time[0] опережает время тика, которое мы запрашиваем с помощью функции SymbolInfoTick? По идее, если уже есть бар time[0], то должен существовать тик, его породивший, а функция SymbolInfoTick яко-бы должна всегда возвращать последний известный тик.
Прикладываю индикатор, который воспроизводит данную проблемы в тестере в потиковом режиме.
На каждой границе баров есть такая проблема.
PS. Также в данном индикаторе демонстрируется другая проблема: там ведется подсчет тиков, и судя по утверждению документации, что OnCalculate вызывается для всех тиков без пропуска, тиковый объем должен всегда совпадать со счетчиком тиков, однако это не всегда так.Объясните пожалуйста, почему в обработчике OnCalculate время каждого вновь образованного бара time[0] опережает время тика, которое мы запрашиваем с помощью функции SymbolInfoTick? По идее, если уже есть бар time[0], то должен существовать тик, его породивший, а функция SymbolInfoTick яко-бы должна всегда возвращать последний известный тик.
Прикладываю индикатор, который воспроизводит данную проблемы в тестере в потиковом режиме.
На каждой границе баров есть такая проблема.
PS. Также в данном индикаторе демонстрируется другая проблема: там ведется подсчет тиков, и судя по утверждению документации, что OnCalculate вызывается для всех тиков без пропуска, тиковый объем должен всегда совпадать со счетчиком тиков, однако это не всегда так.Номер билда сообщите пожалуйста
Номер билда сообщите пожалуйста
2093
2093
Описанная Вами проблема была исправлена в билде 2155
Обнаружил в редакторе подсвечиваемую константу SYMBOL_CHART_MODE_OLD.
В ENUM_SYMBOL_CHART_MODE её, естественно, нету.
Что это?
Обнаружил в редакторе подсвечиваемую константу SYMBOL_CHART_MODE_OLD.
В ENUM_SYMBOL_CHART_MODE её, естественно, нету.
Что это?
Доисторический режим формирования чартов.
Давно не применяется
Доисторический режим формирования чартов.
Давно не применяется
Понял, спасибо.
Столкнулся с такой проблемой:
условие
принт
Что за ...? Как такое возможно? Почему условие выполняется?
П.С.