Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это частичное решение.
Полное - это без "заказа" в OnInit(), а на основе автоматического "оповещения" потоков, породивших закачку\построение истории
Мне тоже не понятно...что за автоматическое оповещение потоков?
А если выходной день - то тиков не будет, а мы хотим чтобы индикатор нам строился в любое время, в выходной день мы же можем подкачать себе историю, не так ли? Т.е. нам придется подкачать историю, а потом за один подход функции он калькулейт все рассчитать...без разницы что зацикливать - он инит или он калькулейт перед копированием...просто сделать какой-то оповещатель по состоянию загрузки и ограничить итераций в цикле, и если за эти, например, 100 итераций история не закачалась - оповещать об ошибке и все останавливать(такое будет например когда соединения с интернетом нет и истории тоже нет)...думаю лучше зациклить он инит...я не правильно мыслю? Объясните мне тогда в чем плиз...и как тогда правильно:-)
Поясните, что-то, похоже, упускаю. Кто этот автоматический "оповещатель"? И кто будет порождать закачку/построение истории, если кроме меня никому не известно какая мне история потребуется?
условно говоря, есть класс, который занимается расчётами. И допустим у меня есть метод Calc(номер\дата дня). Этот метод возвращает true, если удалось всё подсчитать и в этом случае можно обращаться к другим методам для вытягивания данных для индикаторных буферов\графических объектов.
Теперь есть индикатор - он вообще не в курсе, как там что считается и какие периоды используются (а в чём смысл ООП?) - его задача вывести данные если они доступны, а какие там периоды используются - тупо не известно (а может ещё инструменты другие - мало ли, какие бывают индикаторы). Конечно, класс можно расширить методом, который вернёт используемые периоды, но не факт что при создании класса, используемые периоды - известны. Конечно, в крайнем случае, можно "заказать" в OnInit() все периоды, но это наверное не рационально.
Каждый индикатор запускается в отдельном потоке. Терминал мог бы запоминать потоки, которые породили построение истории и эти же потоки оповещать об окончании этого процесса посредством того же OnCalculate() в индикаторах или OnTick() в экспертах (хотя в экспертах мне пока не надо :))
Меленькая проблема с графиком.
Пока отошел попить кофе Kaspersky Internet Security определил файл mql5.dll как вирус и удалил его....
1. Проверьте цифровую подпись файла. Все наши исполняемые файлы подписаны нашими цифровыми сертификатами.
2. Попробуйте обновить определения вирусных баз в касперском.
1. Цифровая подпись в порядке.
2. Как раз час назад после обновления антивирусных баз это и произошло, до этого все работало успешно и стабильно
1. Цифровая подпись в порядке.
2. Как раз час назад после обновления антивирусных баз это и произошло, до этого все работало успешно и стабильно
На другом компе проверил с терминалом x64 - проблем нет. Правда там стоит Internet Security 2012. C терминалом х32 и Internet Security 2013 работать нереально. Сразу после установки удаляет mql5.dll
Ждем хотфикса , а то чет надоело каждый раз смотреть блокировку с перезагрузками . после запуска здешнего мт5 .
PS: у меня он библиотеку не удаляет , а частично режет её .
подскажите почему так получается, строка цикла
for(k2 = 0.01; k2 < 0.1; k2 += 0.01)
коэффициент к2 отправляю на печать
Print(k2);
перед печатью
k2 = NormalizeDouble(k2, 2);
в журнале вот так получается
0.07000000000000001
и именно только когда коэффициент 0,07
тип к2 double k2;
в чем может быть дело?