Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так и пришлось делать, но все равно это через одно место...
Это не через одно место, а концептуально правильно. Мы специально ввели функции init и deinit, чтобы можно было явно назначать и сбрасывать внешние переменные.
Цитата из хелпа
"Переменная, объявленная внутри какой-либо функции, является локальной. Область видимости локальной переменной ограничена пределами функции, внутри которой она объявлена. Локальная переменная может быть проинициализирована при помощи любого выражения. Инициализация локальной переменной производится каждый раз при вызове соответствующей функции. Локальные переменные располагаются во временной области памяти соответствующей функции."
Таже предполагалось что и глобальные переменные ведут себя так же.
Нужно хотя бы осветить это в хелпе а то строчка "Инициализация глобальных переменных производится однократно перед выполнением функции init()." говорит о малом. Так же ни где не поясняется что инициализация проводиться один раз при прикреплении эксперта к графику или при запуске терминала.
Отсюда все непонятки.
P.S. static переменные сохраняют свое значение после завершения функции.
Автору топика можно просто в init делать инициализации всех переменных эксперта и в том числе устанавливать размер массива в 0. Либо все переменные инициализировать нужными значениями в том числе размер массива делать таким каким он должен быть при старте а не использовать его размер при старте(он не сбрасывается) и увеличивать его на единицу . Это можно делать потом в функции start.
Вообще прикольно в документации куда они отсылают всех написано одно а в реальности другое поведение. Я поэтому уже давно сам проверяю то что написано в документации потмоу то бывают расхождения в поведении. Чукча он не читатель он .. проверятель :) Доверяй MQ но проверяй аднака :)
Так глобальные переменные и переинициализирутся. Но только при перезагрузке эксперта. Если эксперт всё время оставался в памяти, то и значения переменных, объявленных на глобальном уровне, не трогаются. Эти переменные не принадлежат ни одной функции - они принадлежат эксперту. А init и deinit - это всего лишь функции.
На самом деле такое поведение является фичей, а не багом. Другой вопрос - некоторая неполнота документации. Вот такие дискуссии и позволяют нам уточнять пропущенные в документации детали.
Фича - это feature.
Может здесь ответите, какой шрифт используеться терминалом для вывода коментариев и принта?
Фича - это feature.
Может здесь ответите, какой шрифт используеться терминалом для вывода коментариев и принта?
Для комментариев используется Tahoma, для вывода в логах тот шрифт, который установлен в Вашей системе для лист-контролов.Спасибо.