Тормозит квик при установке сделок на графике индикатора (случайно)
Пользователь
Сообщений: Регистрация: 07.12.2020
Трейдер
11.07.2022 17:24:51
Взято из
Случайно выяснилось что при установке "сделки" в разделе настроек индикатора, квик тормозит при совершении сделок. Все графики останавливаются. При установке "сделки" на график цены такого не наблюдается
Правильно понимаем, что эффект проявляется на индикаторе, написанном на языке LUA? Просьба проверить проявляется ли данный эффект на Вашем рабочем месте QUIK с использованием стандартных индикаторов, т.к мы не смогли воспроизвести у себя в терминале описанную Вами ситуацию. Если ситуация повторится, просьба прислать нам видео на почту: со ссылкой на данную ветку форума.
Правильно понимаем, что эффект проявляется на индикаторе, написанном на языке LUA? Просьба проверить проявляется ли данный эффект на Вашем рабочем месте QUIK с использованием стандартных индикаторов, т.к мы не смогли воспроизвести у себя в терминале описанную Вами ситуацию. Если ситуация повторится, просьба прислать нам видео на почту: со ссылкой на данную ветку форума.
Да на Lua, мой индикатор
Пользователь
Сообщений: Регистрация: 07.12.2020
Трейдер
13.07.2022 19:39:53
Но какая связь с индикатором и отметками сделок ??
Проблема явно в коде этой функции которая отвечает за установку меток, а не в индикаторе, это в принципе никак не должно быть связано с ним, да и вобще зачем эта функция привязки меток к индикатору непонятно, что к цене не достаточно ?
На актуальной версии терминала (9.7.0) с индикаторами, которые есть у нас данное поведение не проявляется. Предлагаем попробовать Вам воспроизвести описанный эффект на наших индикаторах, доступных по ссылке и сообщить результат. Если для наших индикаторов эффект не воспроизведётся - то наиболее вероятно, причина в особенностях написания Вашего индикатора. Предлагаем в этом случае самостоятельно изучить возможные причины такого поведения в Вашем индикаторе. Если установить причины будет затруднительно - просьба подготовить и прислать минимальный и достаточный пример скрипта индикатора, на котором эффект гарантировано воспроизводится, для дальнейшего разбора. Для большей наглядности можно попробовать модифицировать скрипты наших индикаторов для воспроизведения эффекта.
Пользователь
Сообщений: Регистрация: 07.12.2020
Трейдер
16.07.2022 20:55:17
на ваших индикаторах нет (все не проверял), на моем есть. Все равно это не должно быть связано с индикатором. Скорее всего в квике стоит цикл который сканирует таблицу сделок, и если например много графиков с одним и тем же индикатором, например 20 , то пока все эти 20 раз этот цикл не отсканирует таблицу сделок графики дальше не поедут. Это у вас как то по особенному эта функция запрограммирована. Так как мой индикатор, совершенно нормальный.
И вобще предлагаю удалить эту привязку к индикаторам, так как может быть включена случайно к двум и более.
Например и к цене и к индикатору. Или сделать блокировку на другие привязки если уже где то стоит. Вот реально не понятно зачем эта функция. Если бы была привязка к разным счетам еще можно понять, но к индикаторам то зачем ?
Пользователь
Сообщений: Регистрация: 07.12.2020
Трейдер
16.07.2022 20:58:30
Скорее всего это ошибка в квике очередная, которую трудно найти не тестируя программу
Пользователь
Сообщений: Регистрация: 30.01.2015
16.07.2022 22:07:23
Цитата
Евгений написал: на ваших индикаторах нет (все не проверял), на моем есть. Все равно это не должно быть связано с индикатором. Скорее всего в квике стоит цикл который сканирует таблицу сделок, и если например много графиков с одним и тем же индикатором, например 20 , то пока все эти 20 раз этот цикл не отсканирует таблицу сделок графики дальше не поедут. Это у вас как то по особенному эта функция запрограммирована. Так как мой индикатор, совершенно нормальный.
И вобще предлагаю удалить эту привязку к индикаторам, так как может быть включена случайно к двум и более.
Например и к цене и к индикатору. Или сделать блокировку на другие привязки если уже где то стоит. Вот реально не понятно зачем эта функция. Если бы была привязка к разным счетам еще можно понять, но к индикаторам то зачем ?
Предположу, что с индикатором это может быть связано с вызовом функции OnCalculate(i) Это примерно так же как вызов колбеков в скриптах. Вы тормозите в скрипте индикатора, а он тормозит основной поток терминала. ----------------- проверить это очень просто. Закомментируйте все в индикаторе от OnCalculate(i) до оператора return и будет Вам счастье.
Пользователь
Сообщений: Регистрация: 07.12.2020
Трейдер
17.07.2022 09:05:17
Все равно не пойму как индикатор связан с этими метками. Надо копать в функции квика а не в индикаторе, так как индикатор работает прекрасно и нигде ничего не тормозит. Ну и не вижу смысла в привязке к индикаторам этих меток, она просто не нужна
Пользователь
Сообщений: Регистрация: 30.01.2015
17.07.2022 15:16:34
Цитата
Евгений написал: Все равно не пойму как индикатор связан с этими метками. Надо копать в функции квика а не в индикаторе, так как индикатор работает прекрасно и нигде ничего не тормозит. Ну и не вижу смысла в привязке к индикаторам этих меток, она просто не нужна
Если выставление меток и работа индикатора производится в одном потоке, то эти действия будут выполняться последовательно. Т е пока индикатор не закончит свои вычисления, метки выставляться не будут. Один поток -одно ядро - все исполняется последовательно.
Просьба подготовить и прислать нам на почту минимальный и достаточный пример скрипта индикатора, на котором эффект гарантировано воспроизводится, для дальнейшего разбора.
Пользователь
Сообщений: Регистрация: 22.12.2021
18.07.2022 15:40:47
Со ссылкой на данную ветку форума.
Пользователь
Сообщений: Регистрация: 07.12.2020
Трейдер
18.07.2022 18:15:34
я не могу сделать минимальный код из индикатора в 40 000 строк
Пользователь
Сообщений: Регистрация: 07.12.2020
Трейдер
18.07.2022 18:22:04
в любом случае это не правильно делать привязку сделок к индикаторам, надо ее убрать и оставить только к цене
Пользователь
Сообщений: Регистрация: 30.01.2015
18.07.2022 18:53:41
Цитата
Евгений написал: в любом случае это не правильно делать привязку сделок к индикаторам, надо ее убрать и оставить только к цене
Вы просто измерьте время выполнения вашего скрипта, либо поставьте блоковый комментарий на весь код скрипта и будет понятно, влияет ли он.
К сожалению, Вы не предоставили возможности разобраться почему при работе Вашего скрипта возникает описанный эффект. Если Вы повторите эффект на наших скриптах (ссылка ), мы готовы вернуться к анализу этой проблемы.
Пользователь
Сообщений: Регистрация: 07.12.2020
Трейдер
20.07.2022 15:57:19
Вы можете объяснит мен зачем привяка сделок к индикаторам ? Вот сейчас прямо сделал сделки с привязкой к индикатору, потом удалил этот индикатор, но сделки остались )).
Вот серьезно, зачем эта привязка ? Совершенно не понятно. Проверил индикатор, закомментировал все в OnCalc но квик притормаживает. Уже меньше но всеравно зависает на 2 сек
Хочу знать для чего эта привязка объясните пожалуста
Пользователь
Сообщений: Регистрация: 22.12.2021
20.07.2022 19:35:32
Цитата
Евгений написал: Вы можете объяснит мен зачем привяка сделок к индикаторам ? Вот сейчас прямо сделал сделки с привязкой к индикатору, потом удалил этот индикатор, но сделки остались )).
Сделки привязаны не конкретно к индикатору, а там, где устанавливается настройка показывать сделки и это можно проверить. По Вашему описанию они привязаны не к индикатору, а к чему-то другому, раз они остались, т.е если бы привязка была к индикатору, то с удалением индикатора сделки бы тоже удалились на графике. Проверка: 1. Добавить график цены и объема 2. Добавить индикатор 3. Поставить настройку в индикаторе показывать сделки, по Price не ставить такую настройку (См. рис.1) 4. Выставить заявки по инструменту, по которому построен график, чтобы они исполнились и появились сделки на графике (См. рис.2) 5. Удалить график по Price и увидеть, что сделки остались. (См. рис.3) 6. Поставить настройку в Price показывать сделки, по индикатору не ставить такую настройку, удалить индикатор и увидеть, что сделки остались (См. рис.4)
чтобы сделки удалились с удалением индикатора написанного на луа надо в индикаторе написать так:
Код
function OnDestroy ()
DelAllLabels(tag);
end
Пользователь
Сообщений: Регистрация: 30.01.2015
21.07.2022 05:39:48
пардон, опечатка, не сделки, а метки
Пользователь
Сообщений: Регистрация: 30.01.2015
21.07.2022 08:39:49
Цитата
nikolz написал: чтобы сделки удалились с удалением индикатора написанного на луа надо в индикаторе написать так:
Код
function OnDestroy () DelAllLabels(tag); end
nikolz
формулировать нужно правильно, а не как попало.
delAllLabel удаляет ВСЕ метки на графике tag, установленные всеми способами, а не "метки удалились с удалением индикатора написанного на луа". Будет удалены все метки без разбора, в том числе не относящиеся с индикатору, из которого вызвана DelAllLabels.
Использовать эту функцию где либо - признак плохого тона. Удалять при завершении индикатора нужно только свои метки, по одной, в соответствии со списком.
Пасхалочка для Алексея Иванникова:
Пользователь
Сообщений: Регистрация: 07.12.2020
Трейдер
21.07.2022 09:05:10
Цитата
nikolz написал: пардон, опечатка, не сделки, а метки