Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Неоднократно уже обсуждалось.
1. В OnInit запросить все символы-периоды, которые предполагается использовать
2. Запустить 1-минутный таймер
3. В OnTimer запрашивать все нужные символы-периоды. Без дальнейшего использования, типа CopyRates(symbol,period,0,1,rates_array). Только спрашивать (на всякий случай), синхронизировано или нет
4. В OnCalculate спокойно запрашивать и использовать через минуту-полторы после первого запуска.
А если заранее не известно какие периоды вздумается человеку использовать?
Все запрашивать? Их 21. Если лишь один период в момент первого запуска по полминуты грузится, то 21 ? ...
А если заранее не известно какие периоды вздумается человеку использовать?
Как такое возможно? Всегда на уровне параметров известно, с какими периодами будем работать.
Хорошо.
Ситуация: человек ставит индикатор на М1, выбирает параметр для получения данных с М5.
Запросили данные с М1 и с М5 - чудесно.
Далее, человек переходит на М15 и индикатор просто корректирует параметр для получения данных теперь с М15. А их заранее не было. Ждём подгрузку данных полминуты при смене тф.
Это нормально? В МТ 4 всё далается "на лету", хочется такого же поведения и в МТ5 без костылей:
Мое скромное мнение. Если вы хотите работать с вызываемыми индикаторами динамически и при этом экономить ресурсы, тогда вам нужно перенести все алгоритмы в основной индикатор и не использовать вызов индикаторов на "i". Только нужно создать необходимые таймсерии в OnInit и все, дальше работать только с ними.
Иначе вы будете тащить показания всего и вся на всех барах "Макс. баров в окне:" для каждой таймсерии, те самые X минут, уничтожая все носители ГБ и флопс на вашем ПК.
В МТ 4 всё далается "на лету", хочется такого же поведения и в МТ5 без костылей:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Renat Fatkhullin, 2017.04.12 22:07
Инструменты не обязательно должны быть добавлены в обзор рынка, чтобы по ним получить историю. Любое обращение к данным символа вызывает фоновую синхронизацию данных.
Сейчас есть проблема с тем, что мы используем излишний уровень кеширования с подъемом всей базы данных чарта на всю глубину, даже если запросили последние данные. В результате это дает большой перерасход памяти для скринеров, которые проверяют сотни графиков.
Уже поставлена задача изменить эту стратегию и поднимать данные, не глубже 500 баров от самой далекой даты запроса. Это позволит безболезненно писать скринеры рынка.
Мое скромное мнение. Если вы хотите работать с вызываемыми индикаторами динамически и при этом экономить ресурсы, тогда вам нужно перенести все алгоритмы в основной индикатор и не использовать вызов индикаторов на "i". Только нужно создать необходимые таймсерии в OnInit и все, дальше работать только с ними.
Иначе вы будете тащить показания всего и вся на всех барах "Макс. баров в окне:" для каждой таймсерии, те самые X минут, уничтожая все носители ГБ и флопс на вашем ПК.
Алгоритм в основном индикаторе таков: ищем пики/донышки на заданном тф АО или MACD, и ищем по ним дивергенции на заданном пользователем тф. Заранее не известно какой тф выберет пользователь, и на какой в процессе решит потом переключиться. В МТ4 горя не знал. В МТ5 добиться того же, как на видео не могу. Придётся в ините запрашивать данные по 21-му тф и создавать 42 хендла двух индикаторов?
Или как поступать для экономии ресурсов и ускорения просчётов - ну не дело по полминуты ждать подгрузку данных.
Алгоритм в основном индикаторе таков: ищем пики/донышки на заданном тф АО или MACD, и ищем по ним дивергенции на заданном пользователем тф. Заранее не известно какой тф выберет пользователь, и на какой в процессе решит потом переключиться. В МТ4 горя не знал. В МТ5 добиться того же, как на видео не могу. Придётся в ините запрашивать данные по 21-му тф и создавать 42 хендла двух индикаторов?
Или как поступать для экономии ресурсов и ускорения просчётов - ну не дело по полминуты ждать подгрузку данных.
Нужна скорость и экономичность памяти? Тогда только если отказаться от хендлов и перенести все алгоритмы в основной индикатор. В ините лишь иницировать запрос к необходимым таймсериями:
И далее работать с этими ТФ как вам угодно. Просто напишите алгоритмы AO и MACD, как отдельные функции.
Сердито и дешево! :)
Нужна скорость и экономичность памяти? Тогда только если отказаться от хендлов и перенести все алгоритмы в основной индикатор. В ините лишь иницировать запрос к необходимым таймсериями:
И далее работать с этими ТФ как вам угодно.
Сердито и дешево! :)
Зачем мне копии таймфреймов? Мне нужны данные двух индикаторов AO и MACD получать с любых тф находясь на младшем тф. Вы предлагаете перетащить расчёты АО и MACD в основной индикатор и пользоваться функциями расчёта этих индикаторов вместо получения данных с нужных тф от стандартных индикаторов?
Именно это! Иначе вы больше времени и нервов потратите...