Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Задумайтесь, откуда будут доступны данные (тем более гарантированные), когда ваши индикаторы безбожно тормозят прием/наложение тиков, затрачивая на один тик сотни миллисекунд или даже секунд. В результате никакого CPU не хватает вовремя обрабатывать тики, что выливается в накапливающийся дефицит и соответствующую затормозку истории чарта.
Когда вы просите "гарантированно дайте", вероятнее всего это запрос "ничего не хочу знать, хочу продолжать писать как хочу, не хочу думать о производительности и блокировках, просто дайте"?
Когда вам доступны миллионы баров, то задумывайтесь о производительности своих и чужих индикаторов. Плохо написанный и дорогущий индикатор запросто может затормозить обновление чартов своего символа.
Для начала начните замерять в микросекундах время отработки OnCalculate. Потом разделите 1 секунду на среднее время отработки тика, чтобы получить максимальную пропускую способность индикатора в тиках за секунду.
Это сразу отрезвляет.
Давайте оставим только один тик(новый бар) для нового типа обработки данных индикатором в предполагаемой версии, кому нравится многократный пересчет нулевого бара и грааль в нулевом баре - пускай сидят на существующей версии. В OnInit добавить новую функцию iOnCalculate - хэндл на одну из функций ТФ/Символ OnCalculate в индикаторе, как iCustom, только получается чуть ближе, индикаторные буферы по OnCalculate привязывать к хэндлу iOnCalculate. В функции индикатора типа OnCalculate посылать только тик новый бар. Для терминала ничего не измениться, вся основная логика работы OnCalculate будет прежней, добавиться основное тело индикатора например OnMain.(Сейчас все тоже самое делается индикатором(и) прицепленным ресурсом к основному индикатору и вызываемые из него на новом баре).
Не всегда нужна супер скорость, удобство работы также очень важно, сейчас написание мультивалютных индикаторов представляет собой "закат солнца вручную", даже в мт4 было проще потому что там всегда можно было получить через i-функции, пусть медленно, но получить, а в мт5 данные то есть то нет, и нужно ещё самому городить специальный код.
Давайте без теорий.
Просто представьте пример для воспроизведения и мы посмотрим какой ужас вокруг вашего случая. Пока все выглядит как полное пренебрежение производительностью, скрытие убийственных тормозных индикаторов и попытка навести тень.
Давайте без теорий.
Просто представьте пример для воспроизведения и мы посмотрим какой ужас вокруг вашего случая. Пока все выглядит как полное пренебрежение производительностью, скрытие убийственных тормозных индикаторов и попытка навести тень.
Пример во вложении, это ещё не законченный код, местами недописано, но запустить можно, также прикладываю шаблон для удобства,
предвидя обругивания я сразу скажу, я не программист, код наверняка не оптимальный, я вообще гуманитарий экономист, очень страдаю в мт5, в мт4 страдал меньше,
очень хочется простую и надёжную функцию которая бы делала сборку синхронизированного массива как описано выше https://www.mql5.com/ru/forum/289897/page2#comment_9363454
которая бы однозначно выдавала нужные данные, и я не жалуюсь и не прошу написать за меня мой индикатор, я просто хочу (не только я кстати) удобную стандартную функцию.
EDIT: исправил вложения
Сделайте как я посоветовал, пожалуйста.
Иначе нужны полные материалы для 100% воспроизведения.Странные у вас отношения к баг-рапортам. Мне как бы деньги не платят, чтоб я что-то доказывал. Я как мог расписал ситуацию.
Проблема не только у меня, проблема появилась после вашего 30-го обновления, но всё равно вы намекаете что я мол сам дурак и вовсём виноваты какие-то тормознутые индикаторы.
А до этого они целый год не были тормознутые ?
Вот пример кода который завис спустя 25 минут после запуска на М30:
А вот результат:
Пример во вложении, это ещё не законченный код, местами недописано, но запустить можно, также прикладываю шаблон для удобства,
предвидя обругивания я сразу скажу, я не программист, код наверняка не оптимальный, я вообще гуманитарий экономист, очень страдаю в мт5, в мт4 страдал меньше,
очень хочется простую и надёжную функцию которая бы делала сборку синхронизированного массива как описано выше https://www.mql5.com/ru/forum/289897/page2#comment_9363454
которая бы однозначно выдавала нужные данные,
я не жалуюсь и не прошу написать за меня мой индикатор, я просто хочу (не только я кстати) удобную стандартную функцию.
EDIT: исправил вложения
Странные у вас отношения к баг-рапортам. Мне как бы деньги не платят, чтоб я что-то доказывал. Я как мог расписал ситуацию.
Написанное ранее в этой теме никаким образом на баг репорт не тянет.
Все шло по схеме жалоб без каких-либо технических деталей. И только после моих запросов начали появляться детали.
Странные у вас отношения к баг-рапортам. Мне как бы деньги не платят, чтоб я что-то доказывал. Я как мог расписал ситуацию.
Проблема не только у меня, проблема появилась после вашего 30-го обновления, но всё равно вы намекаете что я мол сам дурак и вовсём виноваты какие-то тормознутые индикаторы.
А до этого они целый год не были тормознутые ?
Вот пример кода который завис спустя 25 минут после запуска на М30:
А вот результат:
Загружен
Сейчас 18.10 Всё работает.
Пример во вложении, это ещё не законченный код, местами недописано, но запустить можно, также прикладываю шаблон для удобства,
Сразу по коду и работе:
Надо переделывать на щадящий режим "буду аккуратно дожидаться успешной докачки". Например, OnCalculate не вызывается.
При этом блокируется апдейт чартов этого символа и многим другим участникам приходится ждать и не получать свежих данных. Индикатор не должен надолго забирать себе ресурсы. Лучше долгую инициализацию равномерно растянуть на пошаговую/посимвольную инициализацию в OnCalculate, досчитывая по кусочкам.
Странные у вас отношения к баг-рапортам. Мне как бы деньги не платят, чтоб я что-то доказывал. Я как мог расписал ситуацию.
Проблема не только у меня, проблема появилась после вашего 30-го обновления, но всё равно вы намекаете что я мол сам дурак и вовсём виноваты какие-то тормознутые индикаторы.
А до этого они целый год не были тормознутые ?
Вот пример кода который завис спустя 25 минут после запуска на М30:
А вот результат:
Код поставил на отработку. Пока все нормально.
Файл без тела, кстати.