Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
зависит от структуры данных, которую Вы хотите хранить/обрабатывать
если Вы можете "влезть" в double - однозначно индикаторные буфера с параметром INDICATOR_CALCULATIONS , эти буфера терминал сам и сдвигает по открытию бара и память для них распределяет
А вот про то, что там тип double я не подумал.
Тогда не получится с привязкой к индикаторным буферам, т.к. у меня в структуре присутствуют перечисления.
А вот про то, что там тип double я не подумал.
Тогда не получится с привязкой к индикаторным буферам, т.к. у меня в структуре присутствуют перечисления.
во первых перечисления "enum" - это int (возможно даже short, не пробовал) , то есть в 64 бита double он влетает со свистом
во вторых что-то не так с исходной подачей: вы уверенны что все данные 500тысяч экземпляров(баров) вам постоянно нужны ?
Если кому-то интересно, то вышел из ситуации следующим образом:
1. Написал свою функцию ArrayInitialize(), которая выполняет:
2. В функции, которая выполняет копирование и обработку, перед всеми действиями добавил проверку
Если кому-то интересно, то вышел из ситуации следующим образом:
1. Написал свою функцию ArrayInitialize(), которая выполняет:
2. В функции, которая выполняет копирование и обработку, перед всеми действиями добавил проверку
Bars() может вернуть ноль.
Да, я в курсе, об этом в справке написано.
Если данные для таймсерии с указанными параметрами при вызове функции Bars() еще не сформированы в терминале, или данные таймсерии в момент вызова функции не синхронизированы с торговым сервером, то функция вернет нулевое значение.
Если кому-то интересно, то вышел из ситуации следующим образом:
1. Написал свою функцию ArrayInitialize(), которая выполняет:
2. В функции, которая выполняет копирование и обработку, перед всеми действиями добавил проверку
В mql5 после ресайза массива в нем может быть все, что угодно. Если это массив структур, то в структуру надо добавить конструктор, и в нем инициализировать поля. Тогда это сработает.
В mql5 после ресайза массива в нем может быть все, что угодно. Если это массив структур, то в структуру надо добавить конструктор, и в нем инициализировать поля. Тогда это сработает.
Да, все верно.
На первой странице обсуждения моего топика я указал, что конструктор в структуре у меня присутствует и при ресайзе все поля инициализируются.
Спасибо за замечание :)
Да, я в курсе. Конструктор объявлен. Я только что отдебажил ArrayInitialize() и она работает только при связывании инициализируемого буфера с индикаторным буфером, а я этого не знал. Как я понял, ArrayInitialize() выполняет ArrayFree(),ArrayResize(),ArrayFill(). По сути моего вопроса, мне нужен ArrayResize() + конструктор структуры.