Либо я не понял сути.
Буду наблюдать.
Владимир, Вы меня удивили таким вопросом.
Либо я не понял сути.
Буду наблюдать.
Монтёры попортили мои планы. Свет дали только в три ночи :).
В общем задача такова: есть массив символов и по каждому создаётся индикатор (пусть та же iMA) - то есть индикаторы по чужим символам. В советнике нужно получать, в случайном порядке, каждый раз массив значений с двух любых символов.
В общем задача такова: есть массив символов и по каждому создаётся индикатор (пусть та же iMA) - то есть индикаторы по чужим символам. В советнике нужно получать, в случайном порядке, каждый раз массив значений с двух любых символов.
Что мешает получить значение индикатора любого инструмента любого бара через стандартную конструкцию типа
znach=iRSI(Arrow_Symbol[ii],Arrow_TF[iii],Indicator_Period,PRICE_CLOSE,i);
Я в 4ке работаю. Не знаю как там в 5ке.
Тупо в цикле, да, но работает ведь. "Ехать важнее чашечек"
Меня терзают смутные сомнения, что я не понимаю сути вопроса.
Поясните пожалуйста.
Для работы с чужими символами нужно периодически "дёргать" историю по этим символам. Я это делаю в OnTimer (59 секунд).
Теперь сам эксперимент.
Открыт один график: AUDCAD, W1.
Настройки терминала: Макс. баров в окне: 50000
В папке [data folder]\bases\MetaQuotes-Demo\history только одна папка: AUDCAD.
Терминал: 37 Mb ОЗУ и 17 потоков (смотреть в "Диспетчере задача", вкладка "Подробности").
Запуск советника ...
Сначала стала закачиваться первичная история (вызов из OnInit()) ...
После первичной подкачки создание хендлов заняло 63 ms.
Переход в OnTick().
Здесь уже проверяются все индикаторы на возврат BarsCalculated. Пока хоть по одному индикатору будет ответ "-1" или "0" - счётчик будет считать (и принтовать) затраченное время - пока идёт подкачка истории индикаторы постоянно пересчитываются и поэтому возвращают или "-1" (данных совсем мало для расчёта) или "0" - в случае первого запуска или подкачки истории.
Полная закачка истории по используемым символам заняла ~ 400 секунд.
Терминал: 85 Mb ОЗУ и 33 потока
А теперь второй и последующие старты:
Создание хендлов заняло 0 ms.
Время на преодоление условия: "BarsCalculated<=0" заняло 1 ms.
Версия 1.002: теперь в OnDeinit() очищаем график, в OnInit() на первом месте добавляем используемые символы в "Обзор рынка" и в OnInit() добавлено несколько информационных сообщений:
2017.10.19 11:45:49.108 Get indicators from others symbols (AUDCAD,H1) OnInit, start copy close symbols 2017.10.19 11:45:49.108 Get indicators from others symbols (AUDCAD,H1) OnInit, start creating handles
ds
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Задача такая: есть советник и в нём по какому-то события (клик по кнопке, клик по чарту, ...) нужно получать данные с индикаторов по чужим символам. Символов несколько (точнее несколько десятков :) ).
...