если не готовы дать развёрнутые ответы по каждому вопросу (Но, именно развёрнутые) - то, может и не стоит тогда?...
OnOrder без UID
Пользователь
Сообщений: Регистрация: 01.02.2015
16.06.2015 13:41:56
мда уж...
и после этого они смеют утверждать, что на них наговаривают и что торговля через QUIK отличается стабильностью и постоянством.
Вопросы по QTABLE
Пользователь
Сообщений: Регистрация: 01.02.2015
16.06.2015 13:37:50
Были заданы вопросы, Вы, тем не менее опять занимаетесь троллингом, заставляя их снова перечислять.
Вопросы по QTABLE
Пользователь
Сообщений: Регистрация: 01.02.2015
16.06.2015 13:36:00
Цитата
Michael Bulychev пишет: Добрый день. Смущает что положение нового окна смещается при каждом вызове CreateWindow?
Михаил, смущает односложность фраз.
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 01.02.2015
16.06.2015 13:33:48
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
Скорость получения данных OnParam OnQuote
Пользователь
Сообщений: Регистрация: 01.02.2015
16.06.2015 13:25:24
всё веселее и веселей...
OnOrder без UID
Пользователь
Сообщений: Регистрация: 01.02.2015
16.06.2015 13:22:33
Цитата
Старатель пишет: Можете отметить их в руководстве.
тогда tech support придётся весь разогнать:))) надо же перед глупым начальством подчеркнуть собственную важность и заботу о клиенте:))))))
не соответствует время
Пользователь
Сообщений: Регистрация: 01.02.2015
16.06.2015 13:20:07
извиняюсь, что непотеме ))) но я перед торгами, каждый день провожу синхронизацию локального времени - с московским штатными средствами Windows.
Вопросы по QTABLE
Пользователь
Сообщений: Регистрация: 01.02.2015
16.06.2015 07:28:45
4. Значит ли это, что реально, дескриптор окна таблицы никуда не разрушается, а окно просто "прячется" - т.е. получает сообщение WM_SHOWWINDOW с wParam = false?
Вопросы по QTABLE
Пользователь
Сообщений: Регистрация: 01.02.2015
16.06.2015 07:22:02
Простенький минимально достаточный для создания окна скрипт:
Код
is_run = true
function OnInit()
t_id = AllocTable()
CreateWindow(t_id)
SetWindowCaption(t_id, "thats my table")
end
function main()
while is_run do
sleep(100)
end
end
function OnStop()
DestroyTable(t_id)
is_run = false
return 1000
end
После его работы - создаётся большущее окно без названия и только потом - окно в один столбец но, очень длинное по вертикали. При этом, если передёрнуть скрипт несколько раз - положение окна будет всё время меняться в сторону приращения координат левого верхнего угла по X и по Y. Про функцию SetWindowPos - знаю. И о ней мне говорить не надо. Вопрос:
получается, что на самом деле, при создании окна - собирается какой-то мусор от предыдущих экземпляров - хотя, при остановке скрипта - его LUA VM должна быть полностью разрушена, равно как и переменные ею занимаемые/устанавливаемые.
Почему при создании окна таблицы вылазиет ещё одно большое окно? Внешне это выглядит, как неприятное единовременное мерцание. подозреваю, что это одно и тоже окно но, заданное с большими дефолтными размерами и только потом, они почему-то опять меняются непонятным образом.
Значит ли это, что внутри функции CreateWindow(t_id) - снова меняются размеры окна?
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 18:21:45
не задавайте им таких вопросов - вы и так уже всё знаете...
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 18:21:19
про это они как бы уже давно забыли
Разработка торговых роботов, Разработка торговых роботов
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 18:19:04
..спади! да всем (нувыпоняли...)
Вопросы по совместной работе, quik junior и доске опционов., Два пользователя за одним терминалом. Программный доступ к доске опционов ...
в наше время, определённо - НЕТ. Именно для этого создаются личные профили/кабинеты внутри сайтов - чтоб пользователь мог сам фильтровать поток, а не превращать e-mail в корзину для мусора. Не думаю, что информация здесь находящаяся нуждается в немедленной реакции (сродни смс-уведомлениям). Поэтому, если у пользователя находится время на чтение e-mail - то и на визит в свой личный профиль и "кликанье" по своему "избранному" - тоже найдётся.
Цитата
Дмитрий пишет: Его с успехом может заменить меню "избранное" в браузере.
могу Вам сказать, что в моём браузере, в "моём избранном" - можно потеряться))))). И ведь, - всё как говорится: "надо" и ничего не выкинешь))))
коды событий поворотов колеса мыши SetTableNotificationCallback
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 16:03:17
Эбаут: ну и, конечно,
коды событий поворотов колеса мыши SetTableNotificationCallback
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 15:54:27
вообще, тема, конечно хорошая, как и другая схожая в другом топике. Думаю, пора всерьёз заняться сабклассингом нативных окон. Благо это всё легально.
Вопросы по совместной работе, quik junior и доске опционов., Два пользователя за одним терминалом. Программный доступ к доске опционов ...
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 15:34:21
Цитата
Дмитрий пишет: Для этого возле названия темы специально есть слово " "
тогда форум начнёт с..рать на e-mail уведомлениями))))
коды событий поворотов колеса мыши SetTableNotificationCallback
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 15:31:58
Цитата
sam063rus пишет: Собственно, она уже есть в WINAPI: вот она: GetAsyncKeyState
так что, просто вывести её в QLua и можно вообще не быть ограниченным привязкой именно к [ctrl][shift][alt]
коды событий поворотов колеса мыши SetTableNotificationCallback
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 15:28:49
я думаю, тут больше не хватает события именно отпускания (отжатия) клавиши. Что-нибудь, вроде QTABLE_VKEY_UP. Либо, отдельной функции: ScanKeyState, позволяющей определить факт нажатия/отпускания клавиши вне зависимости от прихода событий в QTAble. Собственно, она уже есть в WINAPI: вот она: GetAsyncKeyState
:)))
коды событий поворотов колеса мыши SetTableNotificationCallback
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 15:14:27
таким же "макаром" - можно прикрутить и событие "drag". Но ввиду полной ущербности GUI в QLua - смысла в этом никакого.
коды событий поворотов колеса мыши SetTableNotificationCallback
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 15:05:48
имеем:
QTABLE_CHAR – нажата символьная клавиша, при этом par2 содержит код клавиши, par1 – текущую выделенную строку,
QTABLE_VKEY – нажата клавиша, при этом par2 содержит код клавиши, par1 – текущую выделенную строку,
QTABLE_LBUTTONUP – отпущена левая кнопка мыши, при этом par1 содержит номер строки, par2 – номер колонки,
также известно (например, из примеров VCL Delphi): что Click - это вовсе никакой не "клик", а элементарный xBUTONUP на определённой территории (регионе), в данном случае, -> ячейки таблицы Таким образом:
заводим в классе булевую переменную, которая будет флагом нажатия определённой клавиши, которую мы получим в другом коллбеке (QTABLE_VKEY).
далее, при приходе LBUTTONUP проверяем установлен ли этот флаг (полученный VKEY) and находимся ли мы в заданной ячейке. И если "Да" - do smth
------------------------------- примерно так делают в других программах.
Очень нужны индикаторы, когда появятся?
Пользователь
Сообщений: Регистрация: 01.02.2015
15.06.2015 11:11:54
ну можно предложить замену экселю и вебквику: собственно, сам QUIK. устроит, не? :)))
коды событий поворотов колеса мыши SetTableNotificationCallback
Для того, чтобы это было осуществимо средствами WINAPI - надо (в самом простом варианте/случае):
Создать окно средствами QTable.
Чтобы оно не потерялось - обозвать его с помощью Caption. Потом найти окно в системе с таким заголовком и по нему хендл и, возможно класс...
Потом, с помощью переопределения оконной процедуры (SetWindowLongPtr и т. д. и т. п.) - уже творить с ним, что заблагорассудиться. НО!!! Из-за такой "затеи" - абсолютно непонятно как это будет сочетаться с квиком и привязкой к вкладкам, а также на реакцию на оконные сообщения Windows бо как у нас ещё в памяти таким образом создастся совершенно не нужный объект - тот самый QTable да ещё с непонятным поведением и свойствами
таким образом, хотелось бы более "чистый" вариант от разработчиков.
Библиотека QCtrls.dll
Пользователь
Сообщений: Регистрация: 01.02.2015
13.06.2015 14:05:00
Цитата
Старатель пишет: В таком случае, получить название и хендл активной вкладки можно с помощью того же winAPI.
У Вас для этого есть стабильный и 100%-ный способ? Чтож, рад его услышать. Мне пока такого не попадалось.
Библиотека QCtrls.dll
Пользователь
Сообщений: Регистрация: 01.02.2015
13.06.2015 12:11:37
Цитата
Старатель пишет: При отсутствии возможности задавать положение окна на конкретной вкладке польза от такой функции будет сомнительной.
положение окна, его размер, обработка событий - всё это уже делается элементарно с помощью winAPI. Кроме того, можно также сделать, чтоб это всё запоминалось бо как info.wnd - это не панацея и никто не запрещает пользователям создавать/хранить свои настройки окон для своих скриптов в своих файлах.
Библиотека QCtrls.dll
Пользователь
Сообщений: Регистрация: 01.02.2015
13.06.2015 06:54:45
Цитата
Michael Bulychev пишет: Пожелание такого рода у нас есть и мы думаем над их реализцией.
а пока Вы думаете над их реализацией - было бы неплохо уже с чего-то начать: к примеру, если бы Вы сделали функцию в QLUA, возвращающую хендл текущей вкладки - то это бы избавило от массы проблем. функцию можно назвать например так: getActiveTabbed(). В качестве результата - можно возвращать либо таблицу с дополнительной информацией (например, название вкладки, хендл её окна и т. п.) либо же просто хендл. Хранить параметры и доставать их можно через стандартный механизм хранения таких вещей, как: LightUserData.
Сделать это для Вас - не составит великого труда (займёт не больше часа), а пользы будет действительно много. НО!!! Только не надо нам тут подсовывать, какой-то не Windows-описатель, как это сделано у Вас с QTable. Нам нужна возможность полноценной привязки к вкладке и возможность "перепрыгивать" с вкладки на вкладку.
Компель LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
12.06.2015 04:14:37
Цитата
Роман пишет: а в том как это на С# реализовывается
оставьте эту затею. LUA VM + виртуальная машина "шарпа" = оно Вам надо? Тогда уж лучше C++
Пакетное получение данных, Все сделки приходят не по одной, а пакетами от 1 до xx штук
Sergey Gorokhov пишет: Здравствуйте, Не вижу проблемы в данном конкретном случае. Стек TCP/IP вполне может подразумевать пакетную передачу данных, это вполне нормальное поведение. Если смущает задержка в 0,00001 то это вполне допустимое значение, даже у света есть скорость.
Возможно поможет тонкая настройка сетевой карты. Поищите инструкцию в интернете для Вашей сетевой карты. Также поищите информацию по запросу "Настройка протокола TCP/IP" Любые настройки в этом месте на ваш страх и риск.
возможно, это спасёт автора топика? :
а вообще, насчёт сжатия, тут правильно сказали выше.
Данные из Таблицы параметров опционов...., Данные из Таблицы параметров опционов.
Пользователь
Сообщений: Регистрация: 01.02.2015
11.06.2015 19:07:33
они ещё, как правило любят "посылать" почитать документацию на шлюз на сайт биржи. Когда у них спрашивали про несовпадение параметров и постоянные "додумывания" - то если, ка бы это по-мягче перефразировать: "мол де включайте ассоциации: если это выглядит, как чёрное и делает то, что чёрное - значит это чёрное". Разговор, если не изменяет память был около месяца - двух назад.
Данные из Таблицы параметров опционов...., Данные из Таблицы параметров опционов.
Пользователь
Сообщений: Регистрация: 01.02.2015
11.06.2015 19:00:52
ТТП - не биржевое "изобретение", а квиковское. Сделано на основе биржевых протоколов. Поэтому названия параметров, естественно разные.
Данные из Таблицы параметров опционов...., Данные из Таблицы параметров опционов.
Пользователь
Сообщений: Регистрация: 01.02.2015
11.06.2015 17:21:01
Скажу даже больше - те названия формальных параметров, которые - "большими буквами" - это, в терминологии разработчиков: СТАТИЧНЫЕ параметры. т.е. те, которые, как правило, не изменяются за торговую сессию. Также верно и то, что они, разработчики, не дают по ним и по синхронности их прихода никакой гарантии. (кто это сказал - сами найдёте через поиск.)
Данные из Таблицы параметров опционов...., Данные из Таблицы параметров опционов.
Пользователь
Сообщений: Регистрация: 01.02.2015
11.06.2015 17:03:52
неугомонный))) Вывод по DDE (порядок следования столбцов) - совпадает с тем, что в квиковской ральной таблицеТТП. Реальные названия формальных параметров - нетрудно сопоставить. Бо как это надо сделать лишь один раз. Далее, по документации в разделе "просмотр информации" (так кажется называется) - можно снабдить получившуюся таблицу более полными комментариями по каждому параметру. Нечто подобное для себя уже сделал.
Данные из Таблицы параметров опционов...., Данные из Таблицы параметров опционов.
Пользователь
Сообщений: Регистрация: 01.02.2015
11.06.2015 16:45:45
ок, тогда нет ничего проще его получить - можно открыть ТТП через DDE. И будет полный.
Данные из Таблицы параметров опционов...., Данные из Таблицы параметров опционов.
Пользователь
Сообщений: Регистрация: 01.02.2015
11.06.2015 16:02:18
открываете документацию по квику, ныряете в раздел "тупайл", далее в описание работы с ТТП и будет вам счастье. Там вы найдёте полный список параметров. Реальный же список - будет зависеть от того, какие параметры транслирует брокер, а также от класса активов: для опционов - одни параметры, для акций - другие.
ещё много много раз - потокобезопасные операции, Потокобезопасность.
Пользователь
Сообщений: Регистрация: 01.02.2015
11.06.2015 15:52:04
хочу привести реальный пример, из жизни. хоть он и несовсем по теме - но главное - суть: есть 3D-движок CryEngine - от вполне себе современной и раскрученной игры. Причём, он тоже поддерживает LUA. Так вот: чуть покопавшись в его SDK и примерах скриптинга - я чот не нашёл там ни повального использования метатаблиц, ни корутин, ни потоков. Там есть развитая библиотека уже встроенных на уровне движка объектов (Entity). Чтобы наследовать какой-то объект или свойство от другого объекта - там не надо писать полушаманский код на метатаблицах - всё сделано на уровне домохозяек и школьников - хочешь наследовать - вызови пару функций и будет тебе счастье. Насчёт доступа ке глобальным переменным, во многих скриптовых движках - уже давно для этого используют классы, т.е. глобальная переменная - это - тоже класс, причём встроенный в сам движок. Пользователь - вообще в данном случае не думает ни о каких потоках и синхронизации - он просто дёргает методы и навешивает на эту глобальную переменную - события. Список можно бесконечно продолжать. Хочется ещё раз спросить: для кого эта QLUA - затевалась? Кто целевая аудитория? Какие перспективы? Если всё - это для трейдеров - то это точно не для них, потому как разгребать за вами ваши же огрехи ценою своего счёта по причинам описанным выше - не хватит денег ни у кого. Если это для программистов - то программисты от него тоже - не в восторге. Им было бы куда проще и гибче писать на C++ и не быть ни в чём стеснёнными. Я не спорю, что сама по себе LUA - вполне себе достойный скриптовый язык. НО!!! Вы доведите её уже наконец, до ума, а не выпускайте на рынок вечно-сырой продукт.
ещё много много раз - потокобезопасные операции, Потокобезопасность.
Пользователь
Сообщений: Регистрация: 01.02.2015
11.06.2015 15:36:10
честно сказать, я уже и на майн и на потоки согласен НО! Дайте примеры достойные подражания? А то - документация - никакая, техподдержка, если почитать их сообщения со старого и этого форума и сопоставить (благо MySQL сейчас может пользоваться каждый) друг другу - противоречит, разработчики - привыкли ограничиваться лишь парой фраз. В итоге, как говорится, "вот вам qlua и (ну вы поняли...)". При этом, сотрудники компании ещё сильно обижаются, когда их упрекают в отсутствии знания собственного продукта. Видать, писать, что "проблема будет исправлена в следующей версии" в этой компании уже давно вошло в привычку за 15 лет.
ещё много много раз - потокобезопасные операции, Потокобезопасность.
Пользователь
Сообщений: Регистрация: 01.02.2015
11.06.2015 12:28:50
ну вот, опять убежал...
ещё много много раз - потокобезопасные операции, Потокобезопасность.
Пользователь
Сообщений: Регистрация: 01.02.2015
11.06.2015 11:59:35
, Прошу Вас, самым детальнейшим образом расписать, как устроено межскриптовое взаимодействие/влияние в QLUA -> интересует: 1. порядок инициализации главной виртуальной машины - > что после чего запускается, как и на каком этапе происходит цикл регистрации и опроса коллбеков. 2. Также прошу расписать в каких случаях создаётся новый lua-thread (имеется ввиду только в обычных скриптах. 3. (несовсем по теме, конечно, но... ) 1. в какое место совать свою GUI-билиотеку? в основное тело скрипта, 2. в майн 3. или создавать для этого новый поток ОС и делать в нём свою message-loop бо как диспетчеризация сообщений квиковским главным потоком уже будет не досягаема?
Пакетное получение данных, Все сделки приходят не по одной, а пакетами от 1 до xx штук
простой принцип - Вам уже описали выше. а вообще, для начала почитайте книгу от Роберто Иерусалимски "Программирование на языке LUA". Третье издание. После этого у Вас исчезнет большая часть вопросов.
если под "дравиной" Вы понимаете dll - то Да, так оно и есть.
ещё много много раз - потокобезопасные операции, Потокобезопасность.
Пользователь
Сообщений: Регистрация: 01.02.2015
10.06.2015 16:32:35
Любое обращение к глобальным переменным, равно как и любая модификация стека в LUA происходит через критические секции. Исследования показывают, что нет в целом ряде случаев абсолютно никакой выгоды от многопоточности, если не используется соответствующая операционная система и многоядерные процессоры. Широко распространено и подтверждено на практике мнение, что число потоков - должно соответствовать числу ядер. Вот, кстати, статейка на тему:
Контроль данных в МТС, Создание отказоустойчивой автоматизированной торговой системы
Пользователь
Сообщений: Регистрация: 01.02.2015
10.06.2015 16:21:42
и если уж тут заговорили про МТС -> признаюсь, как бы мне не хотелось увеличить число одновременно торгующих ботов - но мой канал связи клиент-брокер-биржа-брокер-клиент - позволяет обрабатывать только 4 заявки в секунду. т.е. получается 250ms "на круг". При том, что реальная торговля через выделенные шлюзы может доходить до 3 ms. Но это уже, для меня, - дело весьма отдалённой перспективы.
Контроль данных в МТС, Создание отказоустойчивой автоматизированной торговой системы
Пользователь
Сообщений: Регистрация: 01.02.2015
10.06.2015 15:53:31
Цитата
Старатель пишет: на случай "потери" части свечей сервером
а как робот поймёт, что это "потеря", а не неликвид?
для себя - сделал таблицу: критичных и некритичных параметров, а также контроль так сказать целостности данных на случай намеренного и ненамеренного "технического сбоя" - т.е. составляется по каждому классу - профиль поведения изменения параметров и если параметры не укладываются в профиль - торговля: либо прекращается, либо - при возможности - закрывается позиция. Очень часто такую картину можно наблюдать во время планок - на доске опционов - не пойми что. Также мониторится серверное время и локальное - при слишком большой разнице - некоторые алгоритмы - отменяются (выставляется соответствующий флаг), изменяется также скорость подачи заявок роботом.
-------------- а вообще - конечно, интересная тема.
Цена заявки не соответствует установленному диапазону
Пользователь
Сообщений: Регистрация: 01.02.2015
10.06.2015 13:35:21
а почему у Вас на сайте отсутствует информация о версии 10.5.0? При том, что нашёлся человек, который откуда-то взял. Могу я ознакомиться с изменениями в этой версии?
Цена заявки не соответствует установленному диапазону
Пользователь
Сообщений: Регистрация: 01.02.2015
10.06.2015 13:29:53
судя по контексту - это модуль торгового интерфейса Фондового рынка Московской Биржи, отсюда: но на сайте - я не нашёл никакого упоминания об этой версии и уж тем более о заявленных выше возможностях. После версии 10.3 идёт сразу 10.7.0
Цена заявки не соответствует установленному диапазону
Пользователь
Сообщений: Регистрация: 01.02.2015
10.06.2015 12:15:19
Нашёл ответ на "старом" форуме:
Цена заявки не соответствует установленному диапазону
Пользователь
Сообщений: Регистрация: 01.02.2015
10.06.2015 11:43:46
Цитата
sam063rus пишет: Если я правильно понял - это какой-то плагин для сервера QUIK?
и если это так - то вопрос к разработчикам - значит ли это, что серверные плагины могут в ТТП могут добавлять столбцы с дополнительной информацией?