Переформулирую вопрос. Если на QUIK запущено, условно говоря, 4 скрипта Lua, они могут (будут) работать независимо в 4 потоках?
нет
Пасхалочка для Алексея Иванникова:
Как влияет кол-во неиспользуемых функций в файле индикатора
Пользователь
Сообщений: Регистрация: 30.01.2015
01.03.2022 10:20:23
Цитата
nikolz написал: На самом деле, количество используемых функций влияет на производительность. Поясняю: Если функции глобальные, то указатели на них помещаются в глобальную таблицу , что увеличивает ее размер и соответственно поиск по ней требуемой функции. Если функция локальная, то она увеличивает локальную таблицу и аналогично выше сказанному если применить предварительную выборку функции, то это требует добавку кода, что влияет на производительность. ----------------- Таким образом, в общем случае количество функций влияет на производительность.
размер таблицы в луа-реализации практически не влияет на скорость выборки информации из нее, так как используется механизм хеширования ключей.
для таблиц с целочисленными индексами вообще не влияет.
Пасхалочка для Алексея Иванникова:
Сбербанк getInfoParam("SERVER"), Выводится некорректное строковое значение
Пользователь
Сообщений: Регистрация: 30.01.2015
26.02.2022 19:17:57
char *K866to1251(char *p) { char c, *q=p; if (p==NULL) return NULL; while((c=*p)!='\0') { if (c>=128 && c<176) c+=64; else if (c>=224 && c<240) c+=16; *p = c; p++; } return q; } // ******************* char *K1251to866(char *p) { char c, *q = p; while((c=*p)!='\0') { if (c>=192 && c<240) c-=64; else if (c>=240) c-=16; else if (c==184) c = 'е'; *p = c; p++; } return q; } // ******************
просто перепишите на луа
Пасхалочка для Алексея Иванникова:
Бесконечный цикл функции с заданным интервалом времени
Пользователь
Сообщений: Регистрация: 30.01.2015
24.02.2022 12:57:26
Для неронятливой администрации: речь идёт именно о пользователе Владимир. Это не "общение пользователей", это непрекращаемое хамство, спровоцированное бездеятельностью соответствующих сотрудников компании арка
Пасхалочка для Алексея Иванникова:
Бесконечный цикл функции с заданным интервалом времени
Пользователь
Сообщений: Регистрация: 30.01.2015
24.02.2022 12:54:11
А может ли администрация форума предпринять какие то действия, чтобы прекратить этот поток "придурков, задниц, лапуль, идиотов" и прочей мерзости?
тошнит уже.
Пасхалочка для Алексея Иванникова:
Бесконечный цикл функции с заданным интервалом времени
Пользователь
Сообщений: Регистрация: 30.01.2015
23.02.2022 21:53:13
Loadstring в последних версиях луа заменён на load, в qlua он оставлен для совместимости в качестве синонима
Пасхалочка для Алексея Иванникова:
Как расположить настройки в индикаторе в необходимом порядке?
Пользователь
Сообщений: Регистрация: 30.01.2015
21.02.2022 13:17:05
Добавьте в начало названия параметра цифры, начиная с 1, то что есть пронумеруйте их. Терминал расставит их по порядку в окне настроек
Пасхалочка для Алексея Иванникова:
Бесконечный цикл функции с заданным интервалом времени
Пользователь
Сообщений: Регистрация: 30.01.2015
19.02.2022 13:37:49
while true do do_something() sleep(30*1000) end
Пасхалочка для Алексея Иванникова:
Требуется разработчик QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
11.02.2022 23:56:21
Цитата
Лана написал: Добрый день! Требуется разработчик под платформу QUIK на языке Lua или C#. Есть конкретное ТЗ, пришлю для обсуждения.
здравствуйте
если есть конкретное ТЗ - присылайте , адрес в нике, сайт в подписи
Спасибо, однако в этом нет необходимости, так как проблему, описываемую в данном трэде, мы смогли воспроизвести на наших терминалах.
я понял. Ошибка кошерная, исправлению не подлежит.
раньше хоть обещали исправить, но не исправляли. А теперь даже и не обещают...
Пасхалочка для Алексея Иванникова:
Значение горизонтальных линий
Пользователь
Сообщений: Регистрация: 30.01.2015
02.02.2022 15:03:47
Цитата
Алексей написал: Версия Quik 9.3.3.3. Для чего появились нули после запятой в значении горизонтальных линиях, если ввести можно только целые числа? Уберите их, пожалуйста. В идеале нужно, чтобы была возможность выставления линий с учетом шага цены инструмента.
горизонтальные линии могут строиться не только для графика инструмента, но и для индикаторов. Поэтому шаг цены для горизонтальных линий не имеет смысла.
Пасхалочка для Алексея Иванникова:
графические инструменты, графические инструменты
Пользователь
Сообщений: Регистрация: 30.01.2015
01.02.2022 22:24:11
Цитата
Тимур написал: Жуть как не хватает графических инструментов! в первую очередь - расширения по Фибоначчи - и сеткка фибоначчи с возможностью инверсии - также не хватает возможности добавления своих уровней на инструмент периоды фибоначчи
а также по прежнему не хватает низкоуровнего рисования в окне средствами win api по пикселаим без привязки к свечам.
Спасибо, однако в этом нет необходимости, так как проблему, описываемую в данном трэде, мы смогли воспроизвести на наших терминалах.
может, мне имеет смысл помочь вам ссылками на сообщение Ия этого форума, где на протяжении несколько лет (более 5) вы регулярно отчитываетесь о ее успешном решении? Это сможет помочь?
Проблема, описанная в данном трэде, на данный момент изучается, и на текущий момент, к сожалению, какой-либо содержательный комментарий предоставить не можем.
Когда какая-либо информация касательно данной проблемы появится, в данном трэде будет написано соответствующее сообщение.
я могу чем нибудь помочь для ускорения процесса? Скрипт я привел, файлы меток тоже. Могу рассказать, как запустить скрипт в терминале Квик.
Пасхалочка для Алексея Иванникова:
Labels
Пользователь
Сообщений: Регистрация: 30.01.2015
17.01.2022 21:44:18
Как идёт изучение проблемы?
Пасхалочка для Алексея Иванникова:
getcandlebyindex и сдвиг графика
Пользователь
Сообщений: Регистрация: 30.01.2015
10.01.2022 08:51:34
Бары, которые получились справа от текущего времени после сдвига времени нужно помечать соответствующим полем в получаемой по getcandlebyindex, чтобы была возможность понять, что "ненастоящий" период, в котором была торговля, а фантомный, который создан на графике искусственно
Пасхалочка для Алексея Иванникова:
Labels
Пользователь
Сообщений: Регистрация: 30.01.2015
07.01.2022 16:44:51
разработчики что-нибудь имеют сказать по этому вопросу?
Пасхалочка для Алексея Иванникова:
Labels
Пользователь
Сообщений: Регистрация: 30.01.2015
05.01.2022 18:55:55
Скрипт на луа, выставляющий 2 метки на один график
res = AddLabel("ri", { --IMAGE_PATH = "E:\\GoogleDisk\\ROBOT\\__TEST\\2-0.bmp", IMAGE_PATH = "E:\\GoogleDisk\\ROBOT\\__TEST\\2-0a.bmp", TEXT = "", DATE = 20220105, TIME = 150000, YVALUE = 151550, ALIGNMENT = "LEFT" }) res1 = AddLabel("ri", { IMAGE_PATH = "E:\\GoogleDisk\\ROBOT\\__TEST\\2-0.bmp", --IMAGE_PATH = "E:\\GoogleDisk\\ROBOT\\__TEST\\2-0a.bmp", TEXT = "", DATE = 20220105, TIME = 150000, YVALUE = 151650, ALIGNMENT = "LEFT" }) message(tostring(res).. " " .. tostring(res1))
Как видим, отличие лишь в бмп файле (yvalue изменены, чтобы видеть метки не друг на друге)
в результате выставляется всегда только вторая метка, при первая не выставляется. Терминал при исполнении этого скрипта выдает сообщение в окно сообщений: Произошла ошибка при загрузке файла чивотатам\2-0.bmp
скрипт выдает message вида 23465.0 nil
Из чего можно сделать вывод, что файл 2-0.bmp битый, а файл 2-0a.bmp нормальный.
ok. Но раньше то все было нормально!
Запускали мы сейчас скрипт на версии 9. Запустим его на версии 8.
function main() t = {} for i = 1,150000 do t = os.time() end while true do sleep() end end
запустите, посмотрите размер занимаемой памяти.
, а где вы в ветке увидели про размер занимаемой памяти?
Я ещё раз прочитал сообщение _sk_, на которое я отвечал и да, речь идёт именно о занимаемой памяти скриптом, в котором очень много таблиц, описывающих дату/время.
Пасхалочка для Алексея Иванникова:
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
Пользователь
Сообщений: Регистрация: 30.01.2015
30.12.2021 15:52:57
Цитата
_sk_ написал: Очень хочется увидеть ответ от разработчиков по поводу изучения данной проблемы, хотя бы после новогодних праздников. Ниже описывается пример, как большое количество таблиц может появляться в реальной программе.
Предположим, что скрипту нужно хранить в памяти для работы 3000 свечей (сколько отдаёт сервер при запросе данных по ликвидным инструментам) по 10 инструментам и 5 таймфреймам. Время свечи QLua отдаёт в виде таблицы
Код
datetime = { year = 2021 , month = 12 , day = 30 , hour = 11 , min = 0 , sec = 0 , ms = 0 , mcs = 0 , .. . }
Соответственно, сразу же имеем 3000 * 10 * 5 = 150 000 таблиц. А если скриптов несколько, то можно ещё на порядок увеличить количество таблиц в памяти.
Конечно, конкретно здесь можно закодировать дату в виде строки "2021-12-30T11:00:00.000" или вообще числом 20211230110000000 для эффективности, но придётся писать код для выделения из этого числа отдельных полей, и арифметика даты/времени станет неудобной.
В общем, просьба к разработчикам дать обратную связь, а то уже нехорошо выглядит такая техподдержка. Хоть пообещайте что-нибудь, как обычно.
_sk_,
вы видите проблему, где ее нет
function main() t = {} for i = 1,150000 do t[i] = os.time() end while true do sleep() end end
запустите, посмотрите размер занимаемой памяти.
Пасхалочка для Алексея Иванникова:
Таблица сделок, номер заявки превращается в число e+
Пользователь
Сообщений: Регистрация: 30.01.2015
29.12.2021 15:57:16
Пасхалочка для Алексея Иванникова:
Таблица сделок, номер заявки превращается в число e+
Старатель написал: Сделать другие значки для скриптов: 1) остановившихся в результате ошибки; 2) в которых возникла ошибка, но скрипт продолжил работу (ошибка в колбеке)
оберните содержимое main и колбеков в xpcall и дудите в динамик при ошибках сколько вам заблагорассудится.
написал: иметь сразу всю историю его изменений за торговый день со временем в микросекундах?
Там есть микросекунды? Или хотя бы миллисекунды?
Цитата
написал: почему бы не подписаться на историю параметра на тикоаом интервале
Мне нужно только одно последнее значение параметра. И не хочу грузить все эти гигабайты ненужной информации в память.
миллисееундв найдете. Микросекунды тоже, только надо присмотреться )))
никаких гигабайтов там нет. Но можно подождать лет 10-15 в надежде, что ваше предложение будет реализовано. Дело ваше.
Пасхалочка для Алексея Иванникова:
Добавить временную метку в потоках маркет-даты
Пользователь
Сообщений: Регистрация: 30.01.2015
18.12.2021 16:09:15
Цитата
r написал: Считаю это важной доработкой. Коллеги, кто так же считает плюсаните, чтобы повысить приоритет предложения.
почему бы не подписаться на историю параметра на тикоаом интервале и не иметь сразу всю историю его изменений за торговый день со временем в микросекундах?
Иван написал: Можно ли как-то автоматически определить актуальный торгуемый фьючерс?
Если речь от московских фьючерсах - то вот расшифровка их кодов:
Алгоритм такой
Берем класс (SPBFUT) Получаем все тикеры из этого класса (getclasssecurity) выбирем из них по первым символам те, что нам нужны (RIxx - это фьючерск на индекс, Sixx - на доллар и так далее) Переводим по маске (см статью по ссылке) оставшиеся символы во время unix. Самое малое время даст нам ближайший фьючерс
Пасхалочка для Алексея Иванникова:
Прибавить к текущей дате 30 дней (или произвольное кол-во дней)
Пользователь
Сообщений: Регистрация: 30.01.2015
17.12.2021 01:04:35
Цитата
Иван написал: Как на языке луа сделать прибавление текущей даты + 30 дней (или произвольное кол-во)?
Тут. наверное, найдете ответ:
Пасхалочка для Алексея Иванникова:
Где в настройках QUIK указывается количество свечей, которое он хранит?
написал: Здравствуйте, . Как таковой настройки на сохранение истории графиков нет. В терминале QUIK максимально отображаются 3 тысячи свечей, а хранится максимум 65 тысяч.
Уточните, пожалуйста, на втором терминале (на котором история сохранилась за 4 месяца) Вы постоянно держали график открытым? Когда график открыт он постоянно сохраняет данные при обновлении. Так же, уточните, пожалуйста, подключаются ли терминалы к одному и тому же серверу брокера или каждый к отдельному?
С какой целью разработчики Quik Сделали хранения свечей в кол-ве 65 000, если реализовали отображение только 3000 ?? Зачем разработчики просто так занимают место на HDD Клиента ?
отображение 65000 свечей вкупе с расчетом индикаторов, в том числе пользовательских, да в количестве 100 диаграмм - дело не богоугодное.
Пасхалочка для Алексея Иванникова:
getcandlebyindex и сдвиг графика
Пользователь
Сообщений: Регистрация: 30.01.2015
13.12.2021 13:15:24
Цитата
Александр М написал: Есть функция: num = getNumCandles ("Идентификатор") Она вернет число баров, включая фантомные бары, которых нет, но которые QUIK создает чтобы показать значения линий индикаторов в будущем.
В результате как получить текущий реальный бар со значениями цены через getCandlesByIndex("Идентификатор",Номер линии,num-1,1) ?
Перебор всех баров вглубь не предлагать.
Должна быть функция или флаг у функции getNumCandles, чтобы данная функция вернула число реальных баров Инструмента. Как минимум это относится к самой Цене, все остальное можно смотреть по ней.
перебор всех баров справа налево с конца не даёт результата, даже если идти этим путем. Индикатор может быть присвоен индикатору, который даёт значимые нулевые значения. Пример - фрактал. Поэтому отличить фантомные бары, полученные справа сдвигом от значимых э, дающих пустое значение, нет возможности.
вопрос к разработчикам. Как, использую ваш интерфейс, отличить фантомные бары, полученные сдвигом от значимых, дающих пустое значение?
Пасхалочка для Алексея Иванникова:
динамический процентный диапазон на графике
Пользователь
Сообщений: Регистрация: 30.01.2015
06.12.2021 20:03:42
Здравствуйте
насколько я знаю, таких встроенных возможностей нет.
но можно использовать пользовательские индикаторы, которые решат вашу задачу. Один из них
Пасхалочка для Алексея Иванникова:
Не всегда исполняется require в начале скрипта
Пользователь
Сообщений: Регистрация: 30.01.2015
03.12.2021 15:16:05
function f() a=math.random(0,1) -- выдает 0 или 1 if a==1 then b= 1 end x = 5 > b -- вот так должно быть. b или число или nil. ошибка исполнения при nil require "чегойта" end
написал: Спасибо, учить меня не надо. Да, я сразу даю разработчикам видимые вероятные наводки. Что-то переоптимизировали с загрузкой модулей. Добавлю еще, что переход перманентен - после него все скрипты, загружающие данный модуль, не исполняют его.
андрей.
ошибка где то у вас, даже не сомневайтесь.
если нужна помощь - делайте минимальный пример, где эффект есть и выкладывайте. Но скорее всего в процессе этого вы сами найдете свою ошибку
С чего это така яуверенность? ) Смотрите. Если в квике ошибки нет, то запуски скриптов не должны иметь side effects на последующие запуски. А я вижу, что все скрипты остановлены и запуск приводит к такой проблеме. Как вы можете это объяснить, если в квике нет ошибки? И нет смысла говорить о простом примере, т.к. у меня самого он не воспроизведет проблему на свежем запуске квика. А каким примером привести квик в такое проблемное состояние я, конечно, не знаю. Поэтому надо копать с другой стороны - чтобы разработчики посмотрели у себя, почему вообще возможны такие side effects с подгрузкой модулей. Какое-то там кеширование. Потому я и дал такую наводку сразу.
вариантов просто миллион
вот вам один, при котором require может выполняться, а может не выполняться и никаких сообщений вы не получите
function f() a=math.random(0,1) -- выдает 0 или 1 if a==1 then b= 1 end x = 5 > a require "чегойта" end
pcall(f)
Пасхалочка для Алексея Иванникова:
Не всегда исполняется require в начале скрипта
Пользователь
Сообщений: Регистрация: 30.01.2015
03.12.2021 12:04:03
Цитата
Андрей написал: Спасибо, учить меня не надо. Да, я сразу даю разработчикам видимые вероятные наводки. Что-то переоптимизировали с загрузкой модулей. Добавлю еще, что переход перманентен - после него все скрипты, загружающие данный модуль, не исполняют его.
андрей.
ошибка где то у вас, даже не сомневайтесь.
если нужна помощь - делайте минимальный пример, где эффект есть и выкладывайте. Но скорее всего в процессе этого вы сами найдете свою ошибку
написал: Возникает и очень часто вот такая ошибка на всех серверах "?:-1: attempt to perform arithmetic on a nil value" Из за чего это происходит и как это исправить? Скрипты не использую. Брокер ВТБ
если не используете скрипты лук, остаются только индикаторы луа
Можно как то узнать какой именно? Вроде все стандартные индикаторы.
у вас на каком то графике есть индикатор, написанный на луа. Проверьте.
вариантов два: или индикатор или скрипт луа
Это твой индикатор))) я у тебя купил его)))
так что же молчим как партизан об лёд? ))
звоните в Скайп и показывайте эту беду, патологоанатом в предвкушении )
написал: Возникает и очень часто вот такая ошибка на всех серверах "?:-1: attempt to perform arithmetic on a nil value" Из за чего это происходит и как это исправить? Скрипты не использую. Брокер ВТБ
если не используете скрипты лук, остаются только индикаторы луа
Можно как то узнать какой именно? Вроде все стандартные индикаторы.
у вас на каком то графике есть индикатор, написанный на луа. Проверьте.
вариантов два: или индикатор или скрипт луа
Пасхалочка для Алексея Иванникова:
Ошибка
Пользователь
Сообщений: Регистрация: 30.01.2015
30.11.2021 18:01:43
Цитата
Рустам написал: Возникает и очень часто вот такая ошибка на всех серверах "?:-1: attempt to perform arithmetic on a nil value" Из за чего это происходит и как это исправить? Скрипты не использую. Брокер ВТБ
если не используете скрипты лук, остаются только индикаторы луа
Пасхалочка для Алексея Иванникова:
getcandlebyindex и сдвиг графика
Пользователь
Сообщений: Регистрация: 30.01.2015
29.11.2021 16:14:07
А что думают по этому поводу господа разработчики терминала quik?
Пасхалочка для Алексея Иванникова:
getcandlebyindex и сдвиг графика
Пользователь
Сообщений: Регистрация: 30.01.2015
26.11.2021 14:48:25
Вопрос
Как отличить пустую свечу графика, получаемого по getcandlebyindex от правых фантомных свечей в случае, если график сдвинут вправо от источника его данных?
у вас есть уверенность, что в секунду на si происходит более 174 изменений цены?
что не так?
речь шла о минутах
Да, крнечно, в минутах.
Вы проверяли по таблице обезличенных сделок или по тиковому графику, сколько на самом деле было ИЗМЕНЕНИЙ цены? Есть мнение, что их ровно столько и было....
Пасхалочка для Алексея Иванникова:
Как часто у вас вызывается DataSource:Callback?
Пользователь
Сообщений: Регистрация: 30.01.2015
25.11.2021 16:58:09
А что удивляет?
у вас есть уверенность, что в секунду на si происходит более 174 изменений цены?