Sergey Gorokhov (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 75 След.
[BUG] QUIK вешается при использовании DestroyTable из main
 
Старатель,
Проблема изучается. Постараемся в ближайшее время дать ответ.
Отладка QUIK 8.7
 
Внимание всем.
В данном топике описываются две разные проблемы
Как либо пересекать их крайне недопустимо.
Одна проблема, то что в свойствах Lua индикатора нельзя ввести вещественное число если в Settings оно задано как целое.
И Вы Александр М, описываете ровно ту же самую проблему, только другими словами.
И эта проблема будет чиниться.

Вторая проблема, то что в свойствах индикатора, в уровне цены, нельзя указать число с точностью превышающую точность инструмента.
И как уже было сказано, это НЕ является багом, так работало всегда и такая работа описана в документации.
Нужна ли подписка на параметры таблицы Securities?
 
Цитата
Сергей написал:
Всем доброго дня. Вопрос такой, надо ли подписываться на те параметры ТТТ, которые уже присутствуют в описании инструментов, получаемых по getItem, либо по getSecurityInfo? Или они уже заполнены корректно при получении клиентом таблицы securities?
те которые в securities являются статичными и попадают на рабочее место без всяких подписок.
Обработка данных таблицы обезличенных сделок, Вопрос по оптимальному выбору инструментов
 
Цитата
Nikolai написал:
1. Для цели поставленных задач имеет ли смысл рассматривать вариант с получением данных через odbc против скриптов на qlua (если с программированием знаком на уровне логики). (первоначально использовал вывод через dde в excel с последующим расчетом нужных показателей через стандартные функции, но страдает оперативность и «удобство»).
Мы не проводили тестов в части сравнения скорости работы Qlua против ODBC. При необходимости Вы можете провести тест самостоятельно.
Цитата
Nikolai написал:
2. При получении данных ТОС через OnAllTrade возможно ли получение данных с начала торговой сессии или данные будут приходить только после запуска скрипта?
Вы можете получить порушенные данные через getItem или SearchItems или CreateDataSource
Цитата
Nikolai написал:
3. Есть ли ограничения по размерам таблиц/массивов qlua?
размер не является фиксированным
Отладка QUIK 8.7
 
Цитата
Старатель написал:
Точность значений индикаторов, например, таких, как VHF, не может ограничиваться точностью цены самого инструмента.

И тем не менее оно так работает, и даже в документации сказано "Значение указывается в единицах цены,"
так что это не баг а фишка, если хотите другого поведения, то это пожелание на доработку.
Отладка QUIK 8.7
 
Цитата
Александр М написал:
Дополнительно так и остался похожий баг, который у вас тянется еще с начала времен и по которому только сплошные обещания исправить.

В настройках ЛЮБОГО индикатора (и самой цены) в разделе Уровни нельзя добавить уровень с дробной частью. Вообще.  

Если на инструменте точность цены не позволяет наличие дробных значений то форма ввода цены уровней действительно не даст указать дробную цену, и собственно это не является багом.
Если у инструмента точность позволяет дробные значения то уровни прекрасно рисуются.
Отладка QUIK 8.7
 
Цитата
Юрий написал:
Не успели выложить и уже БАГИ....
Невозможно задать десятичные значения параметров в собственных индикаторах где ранее это было возможно. Тупо не ставится ни точка ни запятая в качестве разделителя дробной части.
Соответственно это СРАЗУ ставит крест на дальнейшем тестировании данной версии...

проблема изучается. Постараемся в ближайшее время дать ответ.
Скрипт прекращает работу, а не должен, Скрипт прекращает работу по непонятной причине, как ее выявить?
 
Цитата
Иван Ру написал:
Тогда вопрос: возможен ли такой вариант, что при остановке скрипта в результате ошибки никакое сообщение об ошибке  (в окне "Доступные скрипты" в поле "Ошибки выполнения скрипта") не выводится. Или ошибка исполнения всегда сопровождается соответствующим сообщением?
Нет.
Цитата
Иван Ру написал:
П.С. Код на 2600 строк, в нем непросто разобраться.

тогда без шансов.
Открытие графика скриптом LUA
 
Цитата
mwisor написал:
1) Можно ли получить содержание кликнутой строки/ячейки таблицы?
Да, см. функцию GetCell

Цитата
mwisor написал:
2) Можно ли в lua открыть график Quik с параметрами по умолчанию (график цены и объёма, подобный тому который можно построить в таблице Текущих торгов по правой кнопке мышки)?
Нет.
Скрипт прекращает работу, а не должен, Скрипт прекращает работу по непонятной причине, как ее выявить?
 
Иван Ру,
По присланной части кода разобраться не представляется возможным, думаю Вы сами это понимаете.
если хотите чтобы Вам помогли пришлите весь код.

Скрипт может остановиться в трех случаях
либо его остановили вручную
либо был выход из main
либо произошла ошибка.

Всё никаких других вариантов нет и быть не может и это совершенно точно.
Без полной версии кода, очевидно что мы не сможем проверить ни один из пунктов.
Что я делаю не так, ошибка... attempt to call a boolean value (global 'isConnected')
 
Приложите полную версию проблемного кода и сообщите версию терминала на котором воспроизводится
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Сергей написал:
Цитата
Egor Zaytsev написал:
 
Цитата
Сергей  написал:
Это просто Wiliams % Range с прикрученным выводом звука на 0 -100 и при пересечении уровня и сбором статистики в файл
Здравствуйте!

Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.
Ситуация иправляется, если подключаемую по require библиотеку переместить из /luaindicatos в папку квика. Причина мне непонятна, ну да ладно... ¯\_(ツ)_/¯

Ранее мы сталкивались с похожей ситуацией, тогда помогло вместо функции require использовать package.loadlib
Например так:
package.loadlib(getScriptPath() .. "\\some.dll", "luaopen_somemetod")()
где вместо some.dll указать имя Вашей DLL и вместо luaopen_somemetod указать имя Вашего метода.
Отладка QUIK 8.6
 
Юрий,
Если Вы отправляли нам дамп почтой то ответ будет почтой.
Если Вы не получили ответа, просьба отправить запрос с уточнением статуса проблемы на quiksupport@arqatech.com
Не работает "getDepoEx" на реальном счёте. На демо - всё отлично
 
Hired,
Проверьте визуально таблицу лимитов по бумагам, есть ли в ней строка с нужной бумагой и теми параметрами которые Вы передаете в функцию
Объемы с плавающей запятой в Quik 8 ?, Вопрос в техподдержку Quik.
 
DVN,

Если оно работает то почему бы и нет.
Изменился тип лимита depo_limits.limit_kind
 
Цитата
Олег написал:
А может ли бумага находиться в разных режимах торгов с разными остатками, грубо говоря в режиме Т2 остаток 100, в режиме Т0 остаток 50?
Технически да может.
Однако в жизни такое бывает крайне редко.
Объемы с плавающей запятой в Quik 8 ?, Вопрос в техподдержку Quik.
 
Цитата
DVN написал:
Вопрос к техподдержке: это баг или это зачем-нибудь нужно?
Это особенность работы функции tostring, которую кстати Вы легко обнаружите в описании изменения на lua 5.3
И этот вопрос же много раз обсуждался на форуме
например
https://forum.quik.ru/messages/forum10/message45530/topic5479/#message45530
Изменился тип лимита depo_limits.limit_kind
 
Цитата
Олег написал:
Вопрос: как отследить данное изменение

никак не отследить, это брокер поменял схему лимитирования.
По идее он должен был как-то уведомить своих клиентов.

Цитата
Олег написал:
или может вообще обойтись без строгой проверки по limit_kind. Брать допустим все limit_kind>0 по бумаге и искать текущий остаток не равный 0. Будет так работать или есть подводные камни?

работать будет, но ведь не все режимы торгов лимитируются в Т+, это следует учесть в логике.
Createsource и смена сессии
 
Цитата
Старатель написал:
К сожалению, у вас так и останутся вопросы пока, наконец, вы не поймёте, что ds:Size() не обращается напрямую к серверу, а возвращает количество свечей на рабочем месте.

Вот именно что ds:Size() не обращается напрямую к серверу.
И как раз таки именно Вам надо это понять.
ds:Size смотрит что в терминале и как раз таки для решения задачи проверки полученных данных ее и надо использовать, ровно это Вы и делаете.
Вы же предлагаете добавить не проверку полученных данных, а того что есть на сервере, даже Ваша функция так названа "Чё_Есть_На_Сервере_Брокера"
А теперь еще раз прочитайте что я Вам сказал:
Цитата
Функция которая лезет на сервер для проверки того что есть на сервере, никак не может одновременно смотреть на клиента.

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

В связи с чем возникает резонный вопрос, в какой ситуации сервер (именно сервер а не терминал) должен ответить nil функции "Чё_Есть_На_Сервере_Брокера" на ее запрос?
И Вы так и не дали вразумительного ответа на этот вопрос.

забудьте вообще про клиента, поставьте себя на место сервера.
К серверу пришел запрос на data_source, он отправляет клиенту ответ в виде кучи запрашиваемых свечек или пусто если свечей нет.
Понятно что отправка занимает время, но со стороны сервера это сотые доли секунд, дальше весь путь занимает сеть до клиента и т.п.
Допустим до клиента весь пакет еще не дошел и сервер получил запрос "Чё_Есть_На_Сервере_Брокера", по Вашей логике он должен вернуть nil т.к. до клиента полный пакет еще не дошел.
Но от куда сервер должен знать что до клиента пакет не дошел? Да ни от куда, потому что клиент не сообщает серверу что он получил пакет. Связь в этом месте односторонняя.
Следовательно сервер не сможет в описанной ситуации ответить nil.

Ровно это и имелось ввиду под фразой из моей цитаты.
ну не может запрос на сервер одноременно смотреть на клиента.
Обновление пользовательской таблицы/окна
 
Цитата
Старатель написал:
Я давно заприметил функцию UpdateRow в QLua. Что это за функция такая, что она делает?
Это старая не публичная функция которая появилась в терминале версии 6.6.
К сожалению зачем она была добавлена уже никто не вспомнит, возможно для каких-то специфичных проектов.
Раз релиза ее не было, значит и использовать ее не следует.
Createsource и смена сессии
 
Старатель,
Простите но Вы говорите ерунду и перемешиваете одни ситуации с другими вообще не понимая между ними разницы.
Это так к слову.
Если по делу, у Вас есть конкретное предложение по введению функции.
И суть этого предложения как раз и вызывает вопросы.
В том числе, чем оно отличается от предложения зарегистрированного 3года назад.
Если ничем, то и регистрировать повторное пожелание не имеет смысла.
Createsource и смена сессии
 
Цитата
Nikolay написал:
Мы же сейчас говорим не про аналоговое телевидение, а про асинхронную передачу дискретного потока данных.В момент заказа данных есть историчесике данные, это все что есть до этого момента времени. Это срез данных на момент времени. Он один.Мы начинаем отдавать этот массив. Да, параллельно появляются новые данные. Но в какой-то момент времени мы будем в окрестности границы множества, и в этот момент вы отдаете остаток исторических данных и пришедшее новое (с момента начала передачи) до конца выборки всего массива данных. Опять, это момент, срез времени, с точки зрения наблюдателя он один. Пока не посмотрим на новые данные для наблюдателя их еще нет.Если Вы говорите, что именно в этот момент пришли новые данных и как-бы данные уже не все, то это как раз не проблема, т.к. это будет уже колбек по новым данным, истрия уже загружена.

В данном случае, телевидение как раз таки больше всего подходит под пример.
допустим сайт первого канала, там идет online поток трансляции в реальном времени. Вот Вы вдруг захотели скачать от туда информацию.
Сразу возникает проблема того что скачка будет идти вечно.  т.е. нет такого понятия как "все данные загружены"
Если же говорить про архивные данные, то Вы и так уже сейчас можете определить что "все архивные данные загружены" без каких-либо доработок
Createsource и смена сессии
 
Цитата
Старатель написал:
nil - это, когда вы запрашиваете DS:Чё_Есть_На_Сервере_Брокера() до того, как клиент получил информацию с сервера. Биты, они, ведь, не мгновенно передаются, понимаете?
В самом определении уже видна логическая ошибка.
Функция которая лезет на сервер для проверки того что есть на сервере, никак не может одновременно смотреть на клиента.
Функция такая взяла залезла на сервер, посмотрела что там есть и вернула клиенту какой-то результат, без какого-либо участия клиента.
false - понятно, на сервере инструмент есть но по нему нет данных
true - тоже понятно, на сервере инструмент есть и по нему данные есть
nil - все еще не понятно, допустим "во всех остальных случаях", включая "инструмента нет", но сразу возникает вопрос, а если инструмент спустя мгновение возьмет и появится? Инструменты же добавляются на сервер не сразу с ходу, а по мере подключения шлюзов
И даже более того, на западных шлюзах инструменты могут появиться прям посреди сессии.
как быть?
Createsource и смена сессии
 
Nikolay,
давайте еще раз.
Мы говорим про условия постоянного появления свежих данных
Постоянного, понимаете? Как телевизор который непрерывно показывает разные программы.
Там нет такого понятия как "последний" пакет данных.
Createsource и смена сессии
 
Старатель,
Вы сейчас про "все данные загружены" или про nil?
Createsource и смена сессии
 
Nikolay,
дайте определение фразе "все данные загружены" в условиях непрерывного поступления данных, тогда подумаем над реализацией.
А если серьезно то этому вопросу уже десятки лет, никто так и не смог нормально ответить, то такое "все данные загружены"
Вот вы заказали свечки, на момент их заказа было 100шт, а когда получили последнюю 100 свечку, уже появилась 101 шт, это считается "все данные загружены"?
Установка QUIK на Linux под Wine, Проблемы с актуальными на сегодняшний день версиями
 
Цитата
Евгений написал:
multipurpose
на сколько нам известно multipurpose  не работает на Linux
Как очистить данные в setCell, Как очистить данные в setCell по условию и как правильно прочитать данные из getClassSecurities("SPBFUT"),используя getParamEx.На ум приходить только {"RIM0","SiM0"}
 
InsertRow(t_id, -1)
Createsource и смена сессии
 
Цитата
Старатель написал:
Последние два поста я вам пишу о ситуации, когда задан валидный инструмент, но графика нет по нему.
В такой ситуации должен возвращать пустые значения.

т.е. сейчас пустые значения возвращаются и по делу и не по делу
когда исправим это, ожидается что пустые значения будут только по делу, т.е. как раз когда инструмент валиден, а данных нет.
это и будет Ваше false - нет свечей
если значение не пустые, начит true - свечи есть
про nil не понятно, при каких обстоятельствах он по Вашему должен проявляться.
и не понятно, как сервер должен понять что информация "обязательно" будет, ведь Вы сами сказали что мы не про машину времени.
Createsource и смена сессии
 
Цитата
Старатель написал:
А как понять, что сервер уже вернул эти пустые значения? Они ведь у вас по дефолту и так возвращаются. Пусть, скажет, что у него нет свечей, чтоб не ждать понапрасну.
Было же сказано что это ошибка
Createsource и смена сессии
 
Старатель,
По идее он должен вернуть пустые значения, разве нет?
Createsource и смена сессии
 
s_mike@rambler.ru,
Михаил,
Да и сейчас мы надеемся что большая часть этих кейсов или даже все будут закрыты.
Не могу ответить уверенно т.к. исправление еще не вышло.
Createsource и смена сессии
 
Цитата
s_mike@rambler.ru написал:
сейчас, когда терминал не может внятно сказать, удачно ли он подписался на котировку,
Да и это ошибка, которую мы уже изучили и уже признали.

Цитата
s_mike@rambler.ru написал:
нет возможности отследить, почему нет котировок. Или нет свечей в принципе,
да такой возможности нет, и сам сервер этого не знает.
От куда серверу знать будут ли торги по инструменту или трейдеры вообще ничего сегодня не купят?
никто этого знать не может
и сервер тоже не может.

Цитата
s_mike@rambler.ru написал:
или они ещё не получены, или подписка не прошла.
Это та же тема что и первый пункт про неправильный статус createdatasource?
Если так то ответ уже был.
Createsource и смена сессии
 
s_mike@rambler.ru,
Не понятно причем тут это, речь же была про подписку а не про свечи.
Свечи да могут быть обрезаны с лева, нумерация при этом сдвинется.
Createsource и смена сессии
 
Цитата
Сергей написал:
По размышлению возник вопрос, а зачем вообще при дисконнекте закрывать потоки, созданные createdatasource()? Они автоматом разве не закроются? Что вообще произойдет с открытым потоком, если соединение разорвется, а затем восстановится?

Терминал QUIK автоматом закроет поток если он не используется.
При реконнекте подписка не теряется.
Отладка QUIK 8.6
 
Антон (band),
Вообще то вопрос был к Андрей, а не к Вам.
Отладка QUIK 8.6
 
Андрей,
Вы же сами пишите "Аналогичная ошибка" к теме про падения.
Если у Вас терминал не падает, это уже далеко совсем не "аналогичная" ошибка
К сожалению, по описанию проблемы, нам не удалось воспроизвести ситуацию.
Просьба добавить логирование событий в Ваш код.
При повторении проблемы прислать нам архив всей папки с терминалом QUIK (без ключей доступа), Ваш скрипт, и полученный лог файл
индикатор Price Channel, не могу получить корректные данные., верхняя линия - "upper", нижняя "lower"?
 
Максим,
Уточните о каком инструменте идет речь и какая версия терминала QUIK?
У нас проблема (на нашем коде) не воспроизводится
Как очистить данные в setCell, Как очистить данные в setCell по условию и как правильно прочитать данные из getClassSecurities("SPBFUT"),используя getParamEx.На ум приходить только {"RIM0","SiM0"}
 
psih,

Если вопрос в том как строку разбить по частям и перебрать эти части по очереди, то используйте следующий цикл:
Код
      for sec_code in string.gmatch(sec_list, "([^,]+)") do --перебираем инструменты по очереди.

      end   
Как очистить данные в setCell, Как очистить данные в setCell по условию и как правильно прочитать данные из getClassSecurities("SPBFUT"),используя getParamEx.На ум приходить только {"RIM0","SiM0"}
 
psih,

Вопрос не понятен.
Вы хотите удалить строку в GUI таблице? (тут речь про таблицу которую Вы видите глазами в терминале)
Или удалить значение из массива? (тут речь НЕ про визуальную таблицу, а про Lua таблицы table)
Или удалить значение из середины строки? (getClassSecurities ведь возвращает строку)
Createsource и смена сессии
 
Проблема изучается. Постараемся в ближайшее время дать ответ.
Отладка QUIK 8.6
 
Антон (band),
и
Андрей,

Если у Вас терминал падает с дампом, нам требуется получить этот самый дамп на адрес quiksupport@arqatech.com
Quik 8.5 не освобождается память
 
Anton,
Проблема изучается. Постараемся в ближайшее время дать ответ.
Как очистить данные в setCell, Как очистить данные в setCell по условию и как правильно прочитать данные из getClassSecurities("SPBFUT"),используя getParamEx.На ум приходить только {"RIM0","SiM0"}
 
Здравствуйте,
Для очистки значения в ячейке, нужно передать ему пустое значение соответствующее типу данных.
Для строковых типов, пустым является "", для числовых 0.
Пример:
SetCell(t_id, row, 1, "")
SetCell(t_id, row, 2, tostring(""),0)
Quik 8.5 не освобождается память
 
Цитата
Anton написал:
Однако, если бросить ошибку в теле скрипта или в OnInit, по-прежнему выпадем без очистки. С этим можно жить, конечно, отложить ошибку до мейна ровно три строчки, но непорядочек все же. Тем более, в отличие от ошибок в колбеках, в этот момент мейн еще не создан, следовательно, жестко прибивать поток мейна не придется, тут теоретически можно допилить до красоты.
Можете привести пример кода на котором проблема воспроизводится?
lua 5.3 не открывает заявки...
 
Здравствуйте,
Для уточнения причин отклонения транзакции Вы можете посмотреть ответ на транзакцию.
Догадываемся что причина в неверно указанной цене
данный вопрос уже обсуждался на нашем форуме:
https://forum.quik.ru/messages/forum10/message44474/topic5319
https://forum.quik.ru/messages/forum10/message45530/topic5479
Уведомление о необходимости обновления торговых терминалов в связи с изменениями на срочном рынке Московской биржи, Список проблем при работе устаревших версий QUIK после обновления торговой системы срочного рынка МБ
 
Цитата
Futurum написал:
Раньше, например, при перемещении заявки в sendTransaction в качестве "FIRST_ORDER_NUMBER" можно было передать переведенный в строку полученный из таблицы заявок номер order_num. Когда номер заявки станет 19-значным, что-то надо поменять в этой схеме?

На старых терминалах Вы просто не сможете передать номер по указанному способу.
Требуется либо обновить терминал до 8.5 или выше
Либо брать номер не из таблицы заявок, а из ответа на транзакцию, вырезав его из текста самого ответа.

Цитата
Futurum написал:
А если просто отправить заявку, ничего в старом коде менять не нужно, поскольку в этом случае номер заявки не используется?
Да верно
Ограничение 50 транзакций в секунду
 
Цитата
Михаил Е написал:
Возможно Sergey Gorokhov - сможете объяснить как хотят транзакции между квиком и сервером
Вопрос слишком общий для того чтобы можно было дать на него предметный ответ.
Легко можем ответить что они ходят по TCP протоколу, и ответ будет вписываться в вопрос.
Однако, что-то подсказывает что вы не это хотите услышать, тогда что?
Цитата
Михаил Е написал:
и как замеряется этот интервал - 50 транзакций в секунду?
Интервал замеряется сервером QUIK по времени получения транзакций.
Ключевая особенность как раз в том что время получения транзакции это далеко не то же самое что время ее отправки до сервера.
И да swerg, прав, проблема может возникать при буферизации.
Почтой ответили более подробно.
Скрипт прекращает работу, а не должен, Скрипт прекращает работу по непонятной причине, как ее выявить?
 
Sergey Denegin,
Приведите пример кода.
И уточните версию терминала на которой воспроизводится проблема.
Скрипт прекращает работу, а не должен, Скрипт прекращает работу по непонятной причине, как ее выявить?
 
Цитата
Иван Ру написал:
Как в такой ситуации определить причину неожиданной остановки скрипта?

Добавить в скрипт логирование всего, и по факту остановки смотреть что было последним.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 75 След.
Наверх