Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Renat, вопрос был скорее теоретический, нежели практический.
Дабы в тумане не блуждать, сошлюсь на пример из справки по iFractals. Правда, там индикатор, но упростим задачу до однократного просчёта графической разметки скриптом.
Положим, я вознамерился узнать время всех верхних фрактальных баров на всей истории (или на её значительной части на каком-нибудь среднем таймфрейме, где фракталов будет предостаточно). Правильно ли я понял, что лучше многократно побеспокоить CopyTime в цикле при FrUpBuffer[shift]!=EMPTY_VALUE на глубину 1 элемент:
и получить более быстрый результат, нежели одним махом съедать историю CopyTime'ом на глубину FrUpBuffer:
а уж затем в том же цикле при том же if'е просто вывести Print'ом значения времени фрактальных баров?И там, и там задачи идентичные, просто реализации чуть разные.
Интуитивно понимаю, что копировать в массив подряд огормную цепочку значений времени баров (как фрактальных, так и пустых) - это дольше и дороже; с другой стороны, дёргать многократно CopyTime на глубину в 1 элемент - удовольствие сомнительное.
Если первый вариант быстрее, то это абсолютный выигрыш или всё зависит от общего количества попавшихся фракталов (например, на мелких ТФ их значительно больше)?
Здесь https://www.mql5.com/ru/forum/3775/page59#comment_94865 я задавал вопрос о помещении в цикл объявления, связывания, инициализации и прочих действий над множеством однотипных буферов с целью сокращения кода, улучшения читабельности и управляемости. Ответ с наглядным примером получен (класс, структура), с этим разобрался.
Теперь по тому же принипу попытался утрамбовать множественное назначение #property типа:
и возымел по меньшей мере две проблемы:
1. for на глобальном уровне запрещён, то есть самое раннее использование - не ранее как в OnInit(), но #property, как известно, объявляются на глобальном уровне до всех прочих функций;
2. при попытке назначить свойства индикаторам в цикле в OnInit():
компилятор ругается на '#' (как и ожидалось): '#property' - unexpected token.Подкажите, осуществима ли затея в принципе и если да, то как?
Подскажите, можно ли как-то объявить двухмерный массив массивов?
Что-то типа этого:
Подскажите, можно ли как-то объявить двухмерный массив массивов?
массив структур у которых поля будут массивами можно объявить, компилятор даже пропускает динамические массивы в структуре:
Подскажите, можно ли как-то объявить двухмерный массив массивов?
Что-то типа этого:
IgorM, x100intraday
Спасибо за варианты. Думаю это должно подойти, буду пробовать.
IgorM, x100intraday
Спасибо за варианты. Думаю это должно подойти, буду пробовать.
Кстати имя "Buffer" можно поменять на "_" или ещё какую нибудь загагулину тогда вообще будет полная наглядность вызова:
Кстати имя "Buffer" можно поменять на "_" или ещё какую нибудь загагулину тогда вообще будет полная наглядность вызова:
А вот как всё это с #property провернуть? - интересно...
Неужто никаких идей?
А вот как всё это с #property провернуть? - интересно...
Неужто никаких идей?