а чего тут выяснять - читайте документацию...
если OnCalculate возвращает 0 результат, то индикаторные буферы не отображаются в окне данных, иначе отображаются. Если то так то сяк, то мерцают :-)
а чего тут выяснять - читайте документацию...
если OnCalculate возвращает 0 результат, то индикаторные буферы не отображаются в окне данных, иначе отображаются. Если то так то сяк, то мерцают :-)
return(rates_total);
Ниже приведен сильно упрощенный (ООП полностью отсутствует) индикатор, который показывает проторгованный оборот на основании тиковой биржевой истории
Вот такая картинка должна быть
Загадочность этого индикатора заключается в области, помеченной зеленым на скрине . В этом месте либо ничего не показывается, либо показываются значения, но с мерцанием на каждом тике.
Предлагаю разобрать причины столь загадочного поведения индикатора. Потратил много часов на выяснение причин - тщетно.
Определённая зависимость от количества копируемых тиков. Всё-таки копирование 100000 элементов структуры - это затратная операция. При первом запуске - ещё ладно, ну а вот в процессе работы копировать по нескольку раз в секунду 100000 элементов - это много.
Не идет так такого количества копирования на каждом тике. Чаще всего - 1 тик. Редко - несколько десятков. 100 000 - это запас.
Логирование с момента запуска (снизу-вверх)
2016.09.27 18:19:01.675 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:19:01.608 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:19:01.538 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:19:01.473 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:19:01.404 TurnOver (Si-12.16,M1) CopyTicks_elements = 2, FreshTicks = 1 2016.09.27 18:19:00.403 TurnOver (Si-12.16,M1) CopyTicks_elements = 2, FreshTicks = 1 2016.09.27 18:19:00.090 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:59.916 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:58.815 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:58.748 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:58.688 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:58.621 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:58.553 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:58.478 TurnOver (Si-12.16,M1) CopyTicks_elements = 2, FreshTicks = 1 2016.09.27 18:18:58.136 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:58.070 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:57.997 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:57.937 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:57.867 TurnOver (Si-12.16,M1) CopyTicks_elements = 1, FreshTicks = 0 2016.09.27 18:18:57.805 TurnOver (Si-12.16,M1) CopyTicks_elements = 52555, FreshTicks = 52550 2016.09.27 18:18:57.734 TurnOver (Si-12.16,M1) CopyTicks_elements = 100000, FreshTicks = 99995 2016.09.27 18:18:57.661 TurnOver (Si-12.16,M1) CopyTicks_elements = 100000, FreshTicks = 99998 2016.09.27 18:18:57.598 TurnOver (Si-12.16,M1) CopyTicks_elements = 100000, FreshTicks = 99999 2016.09.27 18:18:57.530 TurnOver (Si-12.16,M1) CopyTicks_elements = 100000, FreshTicks = 100000
Ну если не заметно, повторю
не, незаметно... приведён "сильно упрощенный" вариант и кто его знает что в нём упрощенно :-)
посмотри что возвращает OnCalculate при каждом вызове
PS/ вернуть 0 - единственный известный мне документированный способ скрыть буферы из окна данных.
не, незаметно... приведён "сильно упрощенный" вариант и кто его знает что в нём упрощенно :-)
посмотри что возвращает OnCalculate при каждом вызове
PS/ вернуть 0 - единственный известный мне документированный способ скрыть буферы из окна данных.
Давайте без флуда в этой ветке.
где флуд?
советы по элементарной отладке - проверь сначала якобы очевидное..
самая простая и ясная гипотеза : периодически rates_total(возвращаемое значение из OnCalculate) на выходе получается 0...вполне несложно скинуть в лог его зхачение на входе и на выходе..
где флуд?
советы по элементарной отладке - проверь сначала якобы очевидное..
самая простая и ясная гипотеза : периодически rates_total(возвращаемое значение из OnCalculate) на выходе получается 0...вполне несложно скинуть в лог его зхачение на входе и на выходе..
Потратил много часов на выяснение причин - тщетно.
Как вариант - уйти от CopyTicks и заполнять индикаторный буфер из генератора случайных чисел. Думаю моргание пропадёт.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Ниже приведен сильно упрощенный (ООП полностью отсутствует) индикатор, который показывает проторгованный оборот на основании тиковой биржевой истории
Вот такая картинка должна быть
Загадочность этого индикатора заключается в области, помеченной зеленым на скрине . В этом месте либо ничего не показывается, либо показываются значения, но с мерцанием на каждом тике.
Предлагаю разобрать причины столь загадочного поведения индикатора. Потратил много часов на выяснение причин - тщетно.