Вы новых версиях Квика INIT в индикаторах появляется только один раз

Страницы: 1
RSS
Вы новых версиях Квика INIT в индикаторах появляется только один раз
 
При попытке сменить таймфрейм или перезапуске Квика - инит не вызывается
 
насколько я экспериментировал Инит вызывается при первом добавлении индикатора на график, при перезапуске скрипта.
при смене ТФ не вызывается, при переподключении к серверу без рестарта терминала - тоже.
 
Цитата
Eldar написал:
насколько я экспериментировал Инит вызывается при первом добавлении индикатора на график, при перезапуске скрипта.
при смене ТФ не вызывается, при переподключении к серверу без рестарта терминала - тоже.
причем расчет идет также со свечи с индексом 1. ну вот если не инициализируется скрипт индикатора, зачем пересчитывать все свечи?!
 
Цитата
Eldar написал:
если не инициализируется скрипт индикатора, зачем пересчитывать все свечи?!
Некоторые индикаторы рассчитываются по разному для разных ТФ. О том, что он сменился из-за действий пользователя, скрипт индикатора может узнать, получив свечу 1.
 
Здравствуйте,
Из описания не понятно ,в "новых версиях" это в каких?
В версии 7.16, для корректной обработки изменения настроек индикатора, было добавлено новое событие OnChangeSettings.
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
Из описания не понятно ,в "новых версиях" это в каких?
В версии 7.16, для корректной обработки изменения настроек индикатора, было добавлено новое событие OnChangeSettings.
ну мы только на 7.14 обновились.
вопрос - если изменили настройки индикатора, разве он не с 1 свечи будет вызывать OnCalculate?
где можно почитать описание нового события ?
 
Цитата
Eldar написал:
вопрос - если изменили настройки индикатора, разве он не с 1 свечи будет вызывать OnCalculate?
Естественно будет перерасчет с 1. А еще, если на графике всего одна свечка то постоянно будет сыпать 1.
Как отличить?
Никак, именно по этой причине мы создали OnChangeSettings.
Другой вопрос в том зачем расчитывать  

Цитата
Eldar написал:
где можно почитать описание нового события ?

В документации на терминал 7.16
Цитата от туда
Цитата

OnChangeSettings - Функция вызывается при редактировании свойств индикатора после нажатия кнопок «Применить» или «OK».
Функция вызывается также при перезагрузке Рабочего места QUIK и при загрузке wnd-файла либо tab-файла, в которых сохранен график с индикатором
 
Цитата
Sergey Gorokhov написал:
Другой вопрос в том зачем расчитывать  

Не договорил. Другой вопрос в том зачем рассчитывать индикатор который имеет всего одну свечку.
Но это уже зависит от идеи автора.
 
Цитата
Sergey Gorokhov написал:
Цитата от туда
сейчас изменение параметра вызывает пересчет всего индикатора с 1 по текущую свечу.
в 7.16 данное изменение не приведет к пересчету? изменение параметра будем отлавливать по событию?

по индикатору из 1 свечи - сравниваем с Size(). хотя как показала практика и общение на форме, Size() это не количество свечек на графике, а количество интервалов.
 
Цитата
Eldar написал:
сейчас изменение параметра вызывает пересчет всего индикатора с 1 по текущую свечу.
в 7.16 данное изменение не приведет к пересчету?

В 7.16 ничего в этом месте не менялось, только добавилось событие.

Цитата
Eldar написал:
изменение параметра будем отлавливать по событию?
вопрос не понятен. Изменили параметр, случился OnChangeSettings, далее все по старому, перерасчет и т.д.

Цитата
Eldar написал:
по индикатору из 1 свечи - сравниваем с Size(). хотя как показала практика и общение на форме, Size() это не количество свечек на графике, а количество интервалов.
опять не понятно, это вопрос или утверждение?
 
Цитата
Sergey Gorokhov написал:
опять не понятно, это вопрос или утверждение?
утверждение. нет же знака вопроса.
Цитата
Sergey Gorokhov написал:
вопрос не понятен. Изменили параметр, случился OnChangeSettings, далее все по старому, перерасчет и т.д
не понимаю что с введением данного события улучшится. логики применения не представляю. ну поменялись настройки, так все равно заново с нуля будет индикатор пересчитываться. в чем смысл обрабатывать данное событие?

но мы уже уходим вне тематики темы.
 
Eldar,

А что именно не понятно из предыдущего ответа?

Цитата
Sergey Gorokhov написал:
если на графике всего одна свечка то постоянно будет сыпать 1.
Как отличить?
Никак, именно по этой причине мы создали OnChangeSettings.
 
Цитата
Sergey Gorokhov написал:
А что именно не понятно из предыдущего ответа?
в том то и дело, что ничего не понятно.
вы указываете на график с 1 свечой - что это за график такой мегауникальный.
если я изменяю настройки индикатора, то и весь индикатор пересчитывается с новыми настройками и без надобности событие по изменению.
вот ЕСЛИ бы при изменении не происходил обязательный перерасчет с 1 свечи - тогда да, получил событие - понял что изменились настройки и пошел пересчет. либо со свечи, в которой поменялись настроки, пошел пересчет с новыми настройками. тогда логично и правильно.
но при обязательном пересчете - все равно проверять какой параметр изменился, так проще и так в коде проверять. вот только зачем проверять, если все равно с начала пересчитывается!!!
 
Цитата
Eldar написал:
вы указываете на график с 1 свечой - что это за график такой мегауникальный.
например месячный но новому фьючерсу.

Цитата
Eldar написал:
если я изменяю настройки индикатора, то и весь индикатор пересчитывается с новыми настройками и без надобности событие по изменению.
Не нравится не используйте, никто не заставляет.

Цитата
Eldar написал:
вот ЕСЛИ бы при изменении не происходил обязательный перерасчет с 1 свечи
Простите, т.е. по сути Вы хотите чтобы настройки индикатора вообще не работали? Тогда зачем они вообще нужны, удалите из кода и все.

Цитата
Eldar написал:
либо со свечи, в которой поменялись настроки, пошел пересчет с новыми настройками. тогда логично и правильно.
Вы хотите получить винегрет на графике? такого никогда не будет.
 
Цитата
Sergey Gorokhov написал:
Не нравится не используйте, никто не заставляет.
что именно не использовать?
просто не понятна логика.  
если я изменю настройки индикатора, то в любом случае он будет пересчитываться весь с первой свечи! так зачем событие? при изменении не будет входа в функцию Init. ну этого мы избежим и грамотнее код напишем.
Цитата
Sergey Gorokhov написал:
Простите, т.е. по сути Вы хотите чтобы настройки индикатора вообще не работали? Тогда зачем они вообще нужны, удалите из кода и все.
не надо передергивать мои слова и вести общение в другую сторону.
я добавляю индикатор на график. есть начальные настройки, которые указываю. так и нужно. но например я открываю настройку области на графике и хочу изменить какие либо настройки самой области (например убрать сетку) или меняю области местами, а индикаторы пересчитываются. вот именно в данном случае не стоит все пересчитывать. или например я поменял цвет линии!! и тут не нужно пересчитывать индикатор.

Интересно будет ли работать при смене настроек или при пересчете индикатора при условиях, что я выше указал:
Код
function OnCalculate(index)
   local old_value = 0 
   old_value = GetValue(index, 1)
   return old_value
end

Цитата
Sergey Gorokhov написал:
Вы хотите получить винегрет на графике? такого никогда не будет.
а почему бы и нет? например я показываю склееный график, но код инструмента не рассчитываю, а указываю в настройках через запятую.
 
Цитата
Eldar написал:
если я изменю настройки индикатора, то в любом случае он будет пересчитываться весь с первой свечи! так зачем событие? при изменении не будет входа в функцию Init. ну этого мы избежим и грамотнее код напишем.
На вопрос "зачем" уже был дан ответ. Если Вам не нужно использовать OnChangeSettings просто не используйте.
Еще раз повторять одно и тоже не вижу смысла.

Цитата
Eldar написал:
я добавляю индикатор на график. есть начальные настройки, которые указываю. так и нужно. но например я открываю настройку области на графике и хочу изменить какие либо настройки самой области (например убрать сетку) или меняю области местами, а индикаторы пересчитываются. вот именно в данном случае не стоит все пересчитывать. или например я поменял цвет линии!! и тут не нужно пересчитывать индикатор.
В текущей реализации нет никакого способа отличить те настройки "где надо делать перерасчет" от тех "где не надо", по этому перерасчет делается всегда.
 
Дело в том, что скрипт должен поставить метки с утра с предыдущими сделками.   Потому что метки удаляются старые. А раз этой функции нет , то и метки не ставятся
 
Цитата
kbrobot.ru написал:
или перезапуске Квика - инит не вызывается
Это не так, вызывается.

Цитата
kbrobot.ru написал:
При попытке сменить таймфрейм

Это действительно так. И соответствует документации.
Можем предложить зарегистрировать пожелание на добавление функционала.
Страницы: 1
Читают тему
Наверх