Оперативки точно жрет немерено. А не проще провести эксперимент самому?
Утечка памяти
Пользователь
Сообщений: Регистрация: 31.01.2015
22.09.2015 10:02:32
, я не собираюсь дальше продолжать с Вами спор, т.к. считаю это бесполезной тратой времени.
Если у разработчиков возникнут какие-то вопросы на эту тему, то я им предоставлю всю необходимую информацию.
Цитата
Imersio Arrigo пишет: Подайте заявку в контору на реализацию пожелания. Возможно его и примут. примерно через десятьтыщлет...
Уже подал, пожелание зарегистрировано:
Утечка памяти
Пользователь
Сообщений: Регистрация: 31.01.2015
21.09.2015 21:33:39
Цитата
Imersio Arrigo пишет: Слышу звон, но не знаю... ага. Почитайте про систему виртуальной памяти чтоли, и как работает файл подкачки. И сами осознайте какую связь это имеет с "файлами данных самого терминала".
Я не собираюсь изучать все детали функционирования виртуальной памяти Windows. Для этого есть другие специалисты, которым за это платят. К тому же ни Вы ни я не можем знать деталей функционирования самого терминала Quik, поэтому нельзя исключать, что в самом терминале предусмотрена загрузка информации в оперативную память из файлов данных терминала по мере необходимости, а также освобождение памяти от не нужной в данный момент информации.
Цитата
Imersio Arrigo пишет: Если только своп будет в пару терабайт... )))
Если бы я не наблюдал такую картину на своем терминале много раз, то не писал бы об этом. Это не мои домыслы или предположения, а многократно подтвержденный факт.
Цитата
Imersio Arrigo пишет: Тогда при таком требовании, Вы должны отдавать себе отчет в том, что когда программа выжрет всю оперативку (а при наличии на машине ее меньше 4Г это случится очень быстро) вся система просто встанет колом.
Программа пока что не отжирала у меня больше полутора гигов оперативки. Обычно даже меньше, притом что открыто в ней очень много всего... И если важна стабильная работа, то вполне можно пожертвовать 1 или даже полутора гигами ОЗУ, в ущерб остальным приложениям (которые можно вообще не запускать на машине с терминалом).
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
20.09.2015 21:49:48
Да, точно, невнимательно посмотрел :)
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
20.09.2015 20:51:08
Цитата
Viktor MMM пишет: Раз пошла такая пьянка,, то вот так):
Не пойдет. Символ с кодом 0 - это отнюдь не "0".
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
20.09.2015 20:31:29
Так будет красивей:
Код
if par2 > 95 and par2 <106 then --цифры с нампада
curstring = curstring .. string.char(string.byte("0") + par2 - 96)
end
Утечка памяти
Пользователь
Сообщений: Регистрация: 31.01.2015
20.09.2015 20:23:06
Цитата
Gridmer пишет: При сворачивании любой программы винда ее скидывает из памяти в файл подкачки. При разворачивании начинает оттуда подгружать обратно.
Все несколько сложней. При разворачивании квика совсем не обязательно начнется подгрузка данных из файла подкачки в память. Зато такая подгрузка может начаться и при свернутом окне терминала, если ему в процессе работы вдруг понадобятся какие-то данные, которые были ранее удалены из памяти и, возможно, сброшены в файл подкачки (я не уверен, что они подгружаются из файла подкачки, а не из файлов данных самого терминала). И процесс такой подгрузки данных с диска в память может оказаться настолько длительным, что в итоге связь с сервером разорвется по тайм-ауту.
Поэтому было бы здорово, если бы разработчики добавили настройку в терминал, которая позволяла бы запретить удаление данных из памяти с последующей из загрузкой с диска при необходимости, а заставляла бы вместо этого постоянно держать все данные терминала в оперативной памяти. Прошу зарегистрировать такое пожелание на доработку.
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
20.09.2015 20:08:44
Вообще-то прописывать в скрипте коды всех клавиш нет необходимости, это нужно только для управляющих клавиш. Для всех остальных (алфавитно-цифровых) можно использовать простое преобразование кода клавиши в символ, например, так:
Да, понимает. Код каждой клавиши легко узнать, написав простенький скрипт, который будет выводить код нажатой клавиши.
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
19.09.2015 23:33:15
Зацикливать внутри коллбэка ничего не нужно. Каждое новое нажатие клавиши приводит у новому вызову коллбэка, внутри которого это нажатие обрабатывается. Просто после начала редактирования текста в ячейке нужно установить значение какой-то переменной-флага в true, тогда при очередном вызове коллбэка он будет знать, что сейчас работает режим ввода текста и нужно добавить новый символ к строке и т.п. После нажатия Enter флаг ставите = false.
Servertime - это время сервера, Lastrecord - время получения с сервера последней записи.
Код
есть Lastrecord будет всегда меньше, чем просто Servertime ?
можно сказать, что да.
А если, к примеру, время на компьютере не совсем правильное и опережает время сервера, то Lastrecord может быть и больше, чем время сервера?
Помогите с ошибкой LUA
Пользователь
Сообщений: Регистрация: 31.01.2015
18.09.2015 10:58:33
Код
svecha = cb_open-cb_close
Что-то я не заметил, а где у вас присваиваются значения переменным cb_open и cb_close
Новый современный интерфейс + юзабилити + UX, Когда?
Пользователь
Сообщений: Регистрация: 31.01.2015
17.09.2015 22:42:07
, а что за терминал на рисунке?
Рисовать линию на графике
Пользователь
Сообщений: Регистрация: 31.01.2015
17.09.2015 22:15:02
Цитата
Старатель пишет: Можно создать метку в виде горизонтальной линии. метку нужно обязательно создавать без подписи (TEXT)
А как без текста сделать метку в виде линии? Использовать файл с изображением?
Лимитированная, рыночная заявка
Пользователь
Сообщений: Регистрация: 31.01.2015
17.09.2015 21:55:10
Цитата
Николай Камынин пишет: Если нельзя, но очень хочется то можно попробовать указать EXECUTION_CONDITION -Условие исполнения заявки, необязательный параметр. Со значением «FILL_OR_KILL» – немедленно или отклонить,
Вряд ли это поможет исполнить заявку по цене, худшей, чем есть сейчас в стакане.
Спрэд в стакане и цены совершённых сделок (Таблица всех сделок), Проблема понимания изменения спрэда в стакане и цены совершённых сделок в Таблице всех сделок
Пользователь
Сообщений: Регистрация: 31.01.2015
17.09.2015 21:53:27
Цитата
Старатель пишет: У стакана есть время? Где вы его берёте?
Присоединяюсь к вопросу. Особенно с учетом того, что автор темы ссылается на нее из другой своей темы в обоснование своей правоты.
Таблциа Истории
Пользователь
Сообщений: Регистрация: 31.01.2015
15.09.2015 15:54:38
А разве может быть такое, чтобы объем на графике не соответствовал данным из ТВС (ну если не считать каких-то сбоев в работе сервера QUIK)? Ведь графики строятся на сервере по тем же данным, которые мы видим в ТВС. Или я ошибаюсь?
SetWindowCaption крякозябры вместо русского текста
Пользователь
Сообщений: Регистрация: 31.01.2015
12.09.2015 12:43:18
Сохранить файл в другой кодировке (если была Win то в DOS, и наоборот)
OnTransReply вывод в таблицу
Пользователь
Сообщений: Регистрация: 31.01.2015
08.09.2015 21:01:40
А если написать
Код
message(TransReplyTl[1].order_num .. " " )
доступ к строкам таблицы изменений параметров, почему его нет?
Will Will пишет: Оформляйте заявку хочу чтоб в луа была возможность работать с данными ТИП не открывая ее, как с ТВС. Собственно о чем я и писал ранее.
Если для CreateDataSource задать колбек то таблицу не надо открывать
Для программиста-пользователя вашего терминала разница будет в том, что если ему нужно проанализировать историю изменений двух и более параметров в совокупности, то при использовании CreateDataSource ему нужно будет самостоятельно собирать внутри скрипта аналог ТИП с использованием значения count (при условии, что вы реализуете исправления в алгоритме формирования этого значения). Если же вы предоставите механизм непосредственного обращения к строкам ТИП из скрипта (аналогично работе с ТВС), то подобная задача сильно упростится. Поэтому подобное пожелание, на мой взгляд, заслуживает отдельной регистрации. А уж сможете ли вы его реализовать, и если сможете, то когда - это другой вопрос.
доступ к строкам таблицы изменений параметров, почему его нет?
Пользователь
Сообщений: Регистрация: 31.01.2015
05.09.2015 20:31:33
Цитата
Will Will пишет: Оформляйте заявку хочу чтоб в луа была возможность работать с данными ТИП не открывая ее, как с ТВС.
Поддерживаю пожелание.
Рабочая скорость Квика
Пользователь
Сообщений: Регистрация: 31.01.2015
05.09.2015 20:14:45
Цитата
Роман пишет: и пол метра должно равняться 524288 байтам. (1024 *1024 / 0.5). Может я не прав - уточните пожалуйста.
Выше речь шла о мегабитах, а не мегабайтах, если вы об этом:
Цитата
Stanislav Tvorogov пишет: Рекомендуемая минимальная пропускная способность должна составлять не менее 0,5 мбит/с
Так что делите это число на 8 (число бит в байте).
Пожелания по развитию форума
Пользователь
Сообщений: Регистрация: 31.01.2015
29.08.2015 22:00:38
тем не менее картинку вставить можно в текст и отобразится она в виде массы букв, но если потом это сообщение вставить в цитату, то увидишь картинку во время редактирования своего сообщения. Так что потенциально возможность размещать картинки есть, но что-то не доделано здесь.
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
29.08.2015 02:02:11
Ну не то чтобы обманул... Просто не понял, что именно хотел Конечно, совершенно самостоятельный скрипт, содержащий функцию main(), так не получится запустить. Но насчет того, что dofile просто вставляет в текущий скрипт текст из указанного файла, можно поспорить. Согласно официальной документации функция dofile открывает указанный файл и выполняет его содержимое (хотя конечный итог получается практически такой же, как при вставке текста):
Цитата
Opens the named file and executes its contents as a Lua chunk. When called without arguments, dofile executes the contents of the standard input (stdin). Returns all values returned by the chunk. In case of errors, dofile propagates the error to its caller (that is, dofile does not run in protected mode).
Ошибка при первом запуске, Ошибка при первом запуске QUIK
Пользователь
Сообщений: Регистрация: 31.01.2015
28.08.2015 21:17:58
Скорей всего, у Сбера просто заблокирована возможность пинговать их сервер. Если телнет устанавливает соединение на нужный порт, то со связью все ок. А ругань в вашем первом сообщении скорей всего была как-то связана с региональными языковыми настройками.
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
28.08.2015 20:30:00
Цитата
Viktor MMM пишет: Другие скрипты запускать из скрипта есть возможность, не знаете?
Можно, например так:
Код
dofile (getScriptPath() .. "\\Script_Name.lua")
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
28.08.2015 15:37:46
При желании можно также с помощью тех же самых средств QLua создать поля для ввода и редактирования строк (даже с мигающим внутри такого поля "курсором"). Но вообще средства для создания интерфейсов программ в QLua довольно примитивные, требуют немало времени и усилий от программиста, поэтому тут уже неоднократно звучали просьбы клиентов к разработчикам Quik о развитии этих средств.
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
28.08.2015 15:27:51
пример выпадающих меню:
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
28.08.2015 15:19:18
попытка номер 2
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
28.08.2015 15:17:23
Цитата
Viktor MMM пишет: если у Вас есть пример красивого такого окна с чекбоксами, кнопками и тд, хотелось бы увидиеть
Вот простой пример такого окна:
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
27.08.2015 23:36:18
Цитата
Viktor MMM пишет: Дмитрий, это Вы про нарисовать таблицу с ячейками да нет, потом отследить движения мыши и обработку? Или есть другой способ? Мне этот вариант показался не то чтобы немыслимым, хоть и реальным, но пока что не могу его принять, по религиозным соображениям) Но конечно, что выяснится, что со сторонними функциями будут глюки, придется идти другим путем.
Да, именно про таблицу с ячейками и отслеживание мыши. Если поковыряться, то можно даже красиво сделать. И не только кнопки Да/Нет, но и всякие чекбоксы и т.п. Если видели интерфейс Far, то он ведь фактически так же выглядит - все кнопки и т.п. из обычных текстовых символов. Зато не надо думать о побочных эффектах использования сторонних библиотек.
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 31.01.2015
27.08.2015 14:36:04
Вообще-то создать окно с надписью и кнопками Да Нет и обрабатывать его результаты можно и стандартными средствами QLua (работа с экранными таблицами). Придется написать побольше кода, будет выглядеть не так красиво, но зато не нужно подключать никакие внешние библиотеки.
Уменьшение трафика
Пользователь
Сообщений: Регистрация: 31.01.2015
21.08.2015 13:05:43
Фьючерсы и опционы, возможно, выбираются потому, что терминал всегда получает по ним данные, даже если никаких таблиц по ним не открыто. Как объясняли разработчики, такова реализация работы терминала, вот ссылка на эту тему:
Delphian Transactor, Экспорт данных в SQL, HTTP запросы и не только
Пользователь
Сообщений: Регистрация: 31.01.2015
18.08.2015 19:51:14
Признаюсь, я особо не вникал в функционал Вашей библиотеки, но сама возможность вызывать выполнение функций Lua в терминале посредством HTTP-запросов наводит на мысль, что использование такой библиотеки может быть сопряжено с большим риском (несанкционированное вмешательство в работу терминала посторонних лиц через Интернет с целью получения данных или совершения операций по счету). Наличие открытого кода помогло бы уменьшить подобные опасения.
Delphian Transactor, Экспорт данных в SQL, HTTP запросы и не только
Пользователь
Сообщений: Регистрация: 31.01.2015
18.08.2015 16:31:07
Было бы очень хорошо, если бы в архиве с каждой новой версией присутствовали также исходники Вашей DLL.
заказ всех сделок, вопрос разработчикам
Пользователь
Сообщений: Регистрация: 31.01.2015
14.08.2015 21:59:02
Цитата
Sergey Gorokhov пишет: направление сделки определяется по направлению первой заявки. Если первая заявка была на покупку значит сделка будет на покупку и на оборот
А Вы уверены, что не ошиблись? В документации по Квик написано, что тип сделки в ТВС (купля или продажа) определяется направленностью заявки, инициирующей заключение сделки:
Цитата
«Купля» - заключена сделка путем выставления заявки на покупку против находящейся в торговой системе котировки на продажу, «Продажа» - заключена сделка по заявке на продажу
То есть, согласно вашей документации направление сделки определяется направлением второй заявки.
Цитата
Sergey Gorokhov пишет: Но следует уточнить что тут играет значение о каком именно рынке мы говорим.
Разницы между фондовым и срочным рынками Московской биржи в данном случае быть не должно - это уже обсуждалось ранее на старом форуме (причем Вы сами давали тогда в конечном итоге правильный ответ, с учетом которого в дальнейшем была исправлена ваша документация):
Добавить график, Добавить график, Price, Новое окно.
Пользователь
Сообщений: Регистрация: 31.01.2015
13.08.2015 22:35:39
Цитата
Imersio Arrigo пишет: Есть такой индикатор "Профиль рынка" - вот он как раз отражает на графике кол-во заявок привязанных к ценах.
Может, не заявок, а сделок?
Количество открытых позиций и сделки из таблицы всех сделок
Пользователь
Сообщений: Регистрация: 31.01.2015
13.08.2015 22:07:46
Цитата
Василий пишет: Покопал на тему внесистемных сделок, судя по всему тут имеет место быть биржевая адресная сделка, которая и не попадает в таблицу.
Интересно, а на объеме, отображаемом на графике, такая сделка тоже не отразится? Или на значениях параметров ТТП типа "Количество во всех сделках" и "Оборот в деньгах"?
Глупый вопрос! Механизм совершения сделок!, Механизм совершения сделок!
Вопрос еще в том, работает ли эта вещь с любыми классами инструментов (в том числе теми, которые обычно торгуются на бирже) или же такая "кухня" возможна лишь по специально созданным для этого классам инструментов. Во втором случае клиент должен явно указать согласие на обработку своих заявок внутри "кухни" путем выбора специального класса инструментов, не существующего на бирже (типа TQBR_KITCHEN вместо TQBR).
Присоединяюсь к вопросу Старателя к разработчикам по поводу возможности перехвата и исполнения брокером обычных заявок клиентов без вывода их на биржу.
заказ всех сделок, вопрос разработчикам
Пользователь
Сообщений: Регистрация: 31.01.2015
11.08.2015 16:31:18
Поясню свой вопрос. Сейчас еще раз провел несложный эксперимент - пометил галочками все классы в меню "Связь/Заказ всех сделок", после чего установил связь с сервером. При этом ни одного тикового графика и ТВС открыто не было. Через час отключился от сервера и открыл ТВС - ни одной сделки за это время не поступило. Но если бы я при установленном соединении с сервером открыл ТВС хотя бы по одному единственному инструменту, то в итоге терминал получил бы сделки по всем инструментам из тех классов, которые были отмечены в меню "Связь/Заказ всех сделок".
заказ всех сделок, вопрос разработчикам
Пользователь
Сообщений: Регистрация: 31.01.2015
11.08.2015 13:51:20
А почему информация по всем сделкам для классов, выбранных в меню "Связь/Заказ всех сделок", не будет поступать в терминал, если в нем не открыто ни одного тикового графика или ТВС хотя бы по одному инструменту? Получается, что с одной стороны, настройки в меню "Связь/Заказ всех сделок" имеют решающее значение при определении списка классов/инструментов, по которым будут приходить сделки (так как сделки будут приходить по всем выбранным там классам и/или инструментам, даже если по ним не открыты тиковые графики или ТВС), но с другой стороны если в терминале вообще не будет открыто ни одного тикового графика или ТВС, то сделки вообще не будут поступать в терминал. То есть, случайно закрыв единственный тиковый график или ТВС по одному инструменту, можно прервать получение данных по целому списку других инструментов или классов. Можно исправить такое поведение терминала? То есть сделать так, чтобы обезличенные сделки поступали в терминал с учетом настроек в меню "Связь/Заказ всех сделок" независимо от наличия или отсутствия в терминале тиковых графиков и ТВС?
заказ всех сделок, вопрос разработчикам
Пользователь
Сообщений: Регистрация: 31.01.2015
10.08.2015 18:13:48
Здравствуйте! Правильно ли я понимаю, что для того чтобы в терминал (в ТВС) поступали все обезличенные сделки по нескольким классам достаточно отметить их галочками в меню "Связь / Заказ всех сделок", но при этом нет необходимости открывать тиковые графики или ТВС по всем этим классам, а достаточно иметь открытую ТВС хотя бы даже по одному какому-нибудь инструменту из любого другого класса?
Экспорт по HTTP, Библиотека для экспорта данных по HTTP
Пользователь
Сообщений: Регистрация: 31.01.2015
22.07.2015 11:16:59
, было бы очень хорошо, если бы Вы выкладывали вместе с остальными файлами также исходник Вашей DLL.
CreateDataSource
Пользователь
Сообщений: Регистрация: 31.01.2015
20.07.2015 15:24:15
Цитата
Старатель пишет: Причём, если график не открыт в терминале, то значения "старых" свечей мы получаем только в колбеке (не зависимо, сохранён кэш графиков или нет). Если график открыт, то "старые" свечи возвращаются в CreateDataSource.
То есть если график не открыт, то CreateDataSource вообще не выдаст нам свечи, сохраненные в кэше?
Я думал, что Вы сравниваете количество свечей на двух графиках Сбера между собой, а потом с графиком Si.
Скрипт, сохраняющий историю., Я пока учусь :)
Пользователь
Сообщений: Регистрация: 31.01.2015
17.07.2015 21:42:38
Цитата
Некто пишет: Для графика Сбера периодов 1 и 2 мин они равны. Для Si getNumCandles() в 21:30 возвращает бОльшее число. Возможно, это связано с тем, что на FORTS после 19:00 начинается новая сессия?
Совершенно верно
CreateDataSource
Пользователь
Сообщений: Регистрация: 31.01.2015
17.07.2015 19:50:46
Цитата
Николай Камынин пишет: Полагаю, что речь идет о реальном времени. Т е рассмотрим реальную торговлю, а иначе нет смысла вообще в этой дискуссии.
Цитата
Николай Камынин пишет: Запрашивать сервер о количестве свечей не имеет смысла,
По-моему, Вы не вникли в смысл темы, которая обсуждалась выше. Речь идет о получении истории свечей при первоначальном вызове CreateDataSource (которая обычно достигает 3000 свечей за прошлые дни, плюс сегодняшние свечи). Этот процесс занимает неопределенное время (особенно при одновременном открытии источников данных по нескольким инструментам), а скрипт должен ждать окончания загрузки данных. Прежде всего нам нужно знать, есть ли вообще такая история на сервере. Если на момент вызова CreateDataSource на сервере нет ни одной свечи, то мы можем ждать бесконечно долго пока функция Size() вернет значение, большее 0, или придет коллбэк. Смысл запрашивать количество свечей на сервере есть, и он состоит в том, чтобы избежать подобных ситуаций.
CreateDataSource
Пользователь
Сообщений: Регистрация: 31.01.2015
17.07.2015 14:32:01
Цитата
Sergey Gorokhov пишет: Дело в том, что нет такого критерия который позволил бы отличить ситуацию "продолжения ожидания" от "отсутствия данных", а значит и решить эту проблему нельзя.
А почему бы не сделать дополнительную функцию, при вызове которой будет возвращаться количество свечей, которое было на сервере по заданному инструменту на момент вызова этой функции? Она отрабатывала бы намного быстрей, чем CreateDataSource, т.к. не требовалось бы передавать весь массив свечей на терминал. Вызвав ее, мы смогли бы узнать, какое минимальное количество свечей должна вернуть нам CreateDataSource. И, самое главное, эта функция всегда возвращала бы нам какое-то определенное значение, даже если свечей по данному инструменту на сервере нет. Если при вызове этой новой функции мы получим 0, то будем знать, что нет смысла ждать поступления каких-либо данных. Таким образом, проблема бесконечного ожидания была бы устранена на 100%. По-моему, нет ничего невозможного в реализации такой функции. Прошу зарегистрировать соответствующее пожелание на доработку.