Недокументированный "Троянский конь" на Lua

Страницы: 1
RSS
Недокументированный "Троянский конь" на Lua
 
Добрый день, всем,
Хотя о том, про что буду рассказывать знаю с момента появления LUA VM в КВИКЕ
и думал, что эту подлянку давно поборол, однако она снова дала о себе знать.
---------------------
В частности примерно это же недавно обнаружил посетитель по нику Старатель.
--------------------
Так как я давно казалось бы проблему решил, поэтому на его вопрос особо не обратил внимание.
===============
но вот недавно столкнулся с проблемой удваивания заявок-близнецов.
=================  
Хотя ничего хорошего мне на форуме как обычно не посоветовали, но вредные советы тоже пригодились.
===============
Например, представитель разработчиков гневно заявил, что мол надо все обнулять при index=1 в индикаторах.
Благодарю его за его вредный совет.
------------------
Действительно, верно говорят -выслушай совет на Красной площади и сделай наоборот.
----------------------------
Поэтому я обратил внимание, что именно по index=1 я обнулил лог файл.
-------------
продолжение следует..
 
Цитата
nikolz написал:
Поэтому я обратил внимание, что именно по index=1 я обнулил лог файл.
Анекдот ? Очень смешно )
                       
 
Цитата
nikolz написал:
Добрый день, всем,
Хотя о том, про что буду рассказывать знаю с момента появления LUA VM в КВИКЕ
и думал, что эту подлянку давно поборол, однако она снова дала о себе знать.
---------------------
В частности примерно это же недавно обнаружил посетитель по нику Старатель.
--------------------
Так как я давно казалось бы проблему решил, поэтому на его вопрос особо не обратил внимание.
===============
но вот недавно столкнулся с проблемой удваивания заявок-близнецов.
=================  
Хотя ничего хорошего мне на форуме как обычно не посоветовали, но вредные советы тоже пригодились.
===============
Например, представитель разработчиков гневно заявил, что мол надо все обнулять при index=1 в индикаторах.
Благодарю его за его вредный совет.
------------------
Действительно, верно говорят -выслушай совет на Красной площади и сделай наоборот.
----------------------------
Поэтому я обратил внимание, что именно по index=1 я обнулил лог файл.
-------------
продолжение следует..
Добрый день,

Для анализа проблемы просьба описать ситуацию более детально, не тезисно. Также, для лучшего понимания ситуации просьба прикрепить скриншот где наглядно отражается проблема.
Спасибо.
 
Метод OnCalculate  обязательно срабатывает два раза на для всей истории свечей в следующих случаях
1)  Когда первый раз загружается индикатор на график
2) Когда вносятся изменения в settings уже загруженного индикатора
------------------  
Если изменения не вносятся, а лишь вызывается редактирование, то метод срабатывает лишь один раз.
===========  
Таким образом в 1 и 2 случаях выполняется два раза идентичный расчет всего индикатора для всей истории свечей.
т е бессмысленная трата времени процессора и зависание квика.
 
Цитата
nikolz написал:
Метод OnCalculate  обязательно срабатывает два раза на для всей истории свечей в следующих случаях
1)  Когда первый раз загружается индикатор на график
2) Когда вносятся изменения в settings уже загруженного индикатора
------------------  
Если изменения не вносятся, а лишь вызывается редактирование, то метод срабатывает лишь один раз.
===========  
Таким образом в 1 и 2 случаях выполняется два раза идентичный расчет всего индикатора для всей истории свечей.
т е бессмысленная трата времени процессора и зависание квика.
Не бессмысленная. Это костыль, специально сделанный разработчиками.

Индикаторы загружаются последовательно один за другим. Если один индикатор использует данные с другого индикатора, то нет гарантий, что на втором уже есть рассчитанные данные. Поэтому не долго думая, при добавлении тупо прогоняют начальный расчет по всей цепочке. Ну по иным причинам, которые не видны пользователю.

Ну, в общем понятно, какой ногой все это написано.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru написал:
Цитата
nikolz написал:
Метод OnCalculate  обязательно срабатывает два раза на для всей истории свечей в следующих случаях
1)  Когда первый раз загружается индикатор на график
2) Когда вносятся изменения в settings уже загруженного индикатора
------------------  
Если изменения не вносятся, а лишь вызывается редактирование, то метод срабатывает лишь один раз.
===========  
Таким образом в 1 и 2 случаях выполняется два раза идентичный расчет всего индикатора для всей истории свечей.
т е бессмысленная трата времени процессора и зависание квика.
Не бессмысленная. Это костыль, специально сделанный разработчиками.

Индикаторы загружаются последовательно один за другим. Если один индикатор использует данные с другого индикатора, то нет гарантий, что на втором уже есть рассчитанные данные. Поэтому не долго думая, при добавлении тупо прогоняют начальный расчет по всей цепочке. Ну по иным причинам, которые не видны пользователю.

Ну, в общем понятно, какой ногой все это написано.
Загружаются, да,
но исполняются они последовательно для каждого тика.
поэтому решение "два раза все сначала" -  очень тупое.
 
нормальная логика - грузим все индикаторы при нулевом индексе.
и все
Нафига гонять все свечи пока индикаторы не загружены?
 
и еще
В нормальных программах есть обычно функция инициализации
так вот в этой функции и грузятся все индикаторы.
Поэтому вариант - тупо два раза - это для дилетантов.
 
Здравствуйте.

Цитата
nikolz написал:
Метод OnCalculate  обязательно срабатывает два раза на для всей истории свечей в следующих случаях1)  Когда первый раз загружается индикатор на график2) Когда вносятся изменения в settings уже загруженного индикатора
Проблема изучается. Постараемся в ближайшее время дать ответ.
 
Добрый день,

Действительно в описанных в вашем обращении ситуациях метод OnCalculate срабатывает не один раз. Данная ошибка будет исправлена в одной из очередных версий программы.
Приносим извинения за причиненные неудобства.
Страницы: 1
Читают тему
Наверх