Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не уверен, но скорее всего из-за этого:
У меня нет ArrayResize, для INDICATOR_DATA и INDICATOR_CALCULATIONS размер устанавливает терминал, и рисует с 0-го бара
Тогда получается, что не работают все ArrayInitialize(массив,EMPTY_VALUE); даже для нулевого бара?
У меня нет ArrayResize, для INDICATOR_DATA и INDICATOR_CALCULATIONS размер устанавливает терминал, и рисует с 0-го бара
У Вас то может и нет, а вот массивы динамические и на каждом таймфрейме разное количество баров! Переходя с одного на другой изменяются размеры массивов (это делается без Вашего участия) и Вы видите мусор.
Тогда получается, что не работают все ArrayInitialize(массив,EMPTY_VALUE); даже для нулевого бара?
В Вашем случае - это последний элемент массива (хоть и находится на 0 баре), т.к. по-умолчанию индексация идёт слева на право.
У Вас то может и нет, а вот массивы динамические и на каждом таймфрейме разное количество баров! Переходя с одного на другой изменяются размеры массивов (это делается без Вашего участия) и Вы видите мусор.
Вроде логично. Тогда инициализация индикаторных буферов в ините вообще бессмысленна, всё надо в OnCalculate делать
В Вашем случае - это последний элемент массива (хоть и находится на 0 баре), т.к. по-умолчанию индексация идёт слева на право.
точно, не перевернул ещё.
Исправил ошибку, перевернул массивы, всяко изгалялся с ArrayInitialize (пока оставил)...
в ините, похоже, от мусора избавится не реально. Его даже PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars); не останавливает, может в начале графика появится, может в конце.
Оставлю в прицепе, может разработчики заглянут.
PS но появление мусора в одном и том же месте на графике после удаления индикатора и/или перекомпиляции - это жесть.
такая красота...
Исправил ошибку, перевернул массивы, всяко изгалялся с ArrayInitialize (пока оставил)...
в ините, похоже, от мусора избавится не реально. Его даже PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars); не останавливает, может в начале графика появится, может в конце.
Оставлю в прицепе, может разработчики заглянут.
PS но появление мусора в одном и том же месте на графике после удаления индикатора и/или перекомпиляции - это жесть.
такая красота...
Вот так, вроде работает как Вам надо:
Вот так, вроде работает как Вам надо:
Не, так тоже мусорит, по цифрам в левом верхнем углу сразу видно.
Заработало чисто после переноса этих строк в OnCalculate
Ваша версия, похоже, правильная. Мусор из-за авторесайза массивов. И вроде даже понятно, почему он повторяется.
Если терминал меняет размер, скажем, с 1 000 до 10 000, он выделяет один и тот же кусок неочищенной памяти, и тут хоть заперезагружай индикатор - с 1 001-ой по 9 999-ую ячейки как были с левыми значениями, так и остаются.
upd пока одна непонятка осталась: почему при изменении чего-нить в функции f_comment (цвет менял) и последующей компиляции изменения не применяются до перезагрузки индика в терминале.
Возможно ли построить в отдельном окне свечной график параметров какого-то инструмента? Например у брокера "Открытие" есть инструмент RTS-9.13 и для него построить график ордеров на покупку, значения которых отображаются в окне "обзор рынка"