1

Тема: Вышло обновление QUIK версии 7.5

Обновлено: 07.10.2016

Вышло обновление терминала Quik, версия 7.5.

По части Lua значатся лишь исправленными пара ошибок:

  • получение стакана котировок из Lua приводило к аварийному завершению работы
    программы (видимо, не всегда всё же??);

  • в момент удаления области графика с индикатором Lua в предыдущей версии не по делу запускался пересчёт индикатора, в этой версии проблема исправлена, пересчет при удалении не запускается.


Вышло обновление терминала Quik, версия 7.4.

Обновлений по Lua в этой версии немного.

Добавлены поля в таблицу данных "Обязательства и требования по активам".
Добавлена таблица данных "Валюта: обязательства и требования по активам".

В битовые функции добавлена удобная и полезная функция bit.test(), которая позволяет понятно и наглядно проверять значение бита полей битовых флагов. Например:

if bit.test(order.flags, 0) then
  -- заявка активна, т.к. нулевой бит поля order.flags установлен в 1
end


Вышло обновление терминала Quik, версия 7.2.

Обновления, относящиеся к Lua.

Хотелось бы отметить, что справка в файле QLUA.chm заметно поправлена и дополнена. Для некоторых call-back функций приведены существенные уточнения о моменте их вызова, что ранее было возможно узнать лишь штудируя форум.

В функции CreateDataSource() появилось значение SetEmptyCallback, которое позволяет "включить" получения данных с сервера без необходимости создавать функцию обратного вызова.

Добавлены несколько параметров в возвращаемых таблицах некоторых функций:

  • getParamEx() - добавлен параметр result, возможные значения 0 или 1. Удивительно, но по славной традиции тип значения при этом - string.

  • getPortfolioInfo() - параметр is_leverage дополнительно может принимать значение "С" в случае, если торгуется только срочный рынок без ЕДП.

  • getPortfolioInfoEx() - добавлено несколько параметров.

Добавлены немного параметров в следующие таблицы структур данных:

  • "Заявки на внебиржевые сделки"

  • "Обезличенные сделки"

  • "Отчеты по сделкам для исполнения"

  • "Позиции по клиентским счетам (фьючерсы)"

  • "Сделки для исполнения"

  • "Стоп-заявки"

Пользовательские индикаторы. В таблицу "Settings" добавлена возможность указывать дополнительные типы графиков:

  • гистограммы

  • точка-тире

  • треугольник вверх

  • треугольник вниз


Вышло обновление терминала Quik, версия 7.1.

Что касается обновлений для Lua, то их весьма немного.

1. Добавлены функции ParamRequest, CancelParamRequest и getParamEx2. "Они
позволяют управлять получением биржевых параметров без добавления этих параметров в открытую Таблицу текущих торгов
". В общем наконец-то предоставлена возможность заказа нужных параметров непосредственно из скриптов. Скрипты становятся всё более и более автономными и не зависящими от интерфейса QUIK, это радует.

2. Исправление про метки: была ошибка, что после вызова функции SetLabelParams из Lua-скриптов метки на графике нельзя было переместить вручную. Это теперь исправлено, метки вручную перемещать можно.

Я с этой версией заметил такой момент: если вы обновляетесь с указанного выше FTP из файла quik_7_1_0_upd.zip - то в этом архиве лежит какой-то устаревший файл lua5.1.dll, он старее, чем такой файл был в версии 7.0.4. Соответственно есть смысл этот файл при обновлении из указанного архива оставить такой, какой у вас уже есть. Хотя проблема эта наверняка не критичная, и уж точно не важная, если выпишете только на Lua, без использования внешних библиотек.
По этому поводу получил ответ от тех. поддержки QUIK'а: это не принципиально, между указанными версиями различий нет. Так что это не баг и не критично. Хоть и досадно )


Вышло обновление терминала Quik, версия 7.0.2.

Наконец-то в нём починена проблема запуска Lua-скриптов на Windows XP.
Т.е. начиная с этой версии можно нормально и полноценно пользоваться Lua-сриптами с 7-й версии терминала QUIK.
Собственно это всё, что есть в версии.


Вышло обновление терминала Quik, версия 7.0.1.

По части Lua в этом обновлении были исправлены существенные ошибки версии 7.0.0. Собственно всё, что написано про ошибки 7.0.0 красным цветом (см. под чертой).

Однако, есть и новая проблема:
В версии 7.0.1 на
Windows XP не отображается пункт меню "Lua  скрипты", т.е. на этой ОС вы вовсе не сможете запускать какие-либо Lua скрипты (кроме индикаторов).

На других версиях Windows скрипты Lua в этой версии работают корректно, так что в отличии от предыдущей версии на версии 7.0.1 Lua-роботов уже можно запускать, работать будут корректно (кроме как в Windows XP).


Вышло обновление терминала Quik, версия 7.0.0.

В версии 7.0 полностью изменилось меню QUIK, теперь диалог со списком Lua-скриптов открывается так:
Сервисы -> Lua  скрипты.

О проблемах.
Сначала фича:
Начиная с этой версии в Lua вскрылась интересная нигде не описанная особенность: ранее OnTrade приходил только 1 раз для каждой сделки. В версии 7.0 и более новых, судя по опыту, OnTrade по одной и той же сделке может приходить 1, 2 или 3 раза. Разработчики на форуме объясняют, что в сделке стали возможны обновления полей, хотя по факту при повторных вызовах никакие значения (во всяком случае то, что получает Lua) не меняются. Но логику роботов придётся подправлять, или, как минимум, вставлять сохранение и проверку номера сделки, для которой же был вызов OnTrade, повторные вызовы для одной и той же сделки не обрабатывать (игнорировать).

В любом случае с этим придётся смириться, ибо заявлено, что это фича.

Теперь про найденные серьёзные ошибки в этой версии: (эти ошибки исправлены в версии 7.0.2)

  • В таблице, передаваемой в обработчик OnTransReply, есть следующие проблемы:

    • отсутствуют параметры sec_code и class_code

    • в поле price («Цена») отсутствует разделитель целой и дробной части!

    • отсутствует параметр order_num («Номер заявки»)

  • При запросе параметров из "Таблицы текущих торгов" (ранее называлась "Таблица текущих параметров") в некоторых параметрах (например, «shortname») возвращается некорректное значение!

Глядя на этот список можно уверенно сказать, что роботов Lua в этой версии запускать не стоит, надо ждать обновлений, т.к. всё будет работать явно не так, как хотелось бы.


Теперь о хорошем. Обнаружены следующие изменения:

1. Важное дополнение: в обработчик OnConnected добавлен параметр flag типа BOOLEAN.
Теперь этот обработчик вызывается каждый раз при получении терминалом нового класса, а не только при подключении! Если произошло получение нового класса - то flag равен false. Вероятно, если на самом деле произошло подключение - то значение параметра flag будет true (в справке не уточняется когда же значение этого параметра будет равно true, указано только про значение false).
Вызывался ли ранее этот обработчик при получении нового класса?!

2. Для функций «getItem», «getOrderByNumber», «getNumberOf» и «SearchItems» исчез вариант запроса параметра  ccp_positions, соответственно из справки убрано описание соответствующей таблицы "Обязательства и требования по деньгам".

3. В функции getFuturesLimit добавился параметр curr_code. Что будет, если его совсем не передать - в справке не уточняется.
Что будет со старыми программами, если этот параметр совсем не предавать? не понятно.

4. Существенно расширился состав полей в таблице "Отчеты по сделкам для исполнения", добавлены поля: sec_code, class_code, report_time, report_date_time.

5. Добавились несколько новых полей в таблицах "Сделки для исполнения", "Стоп-заявки", "Торговые счета".

6. В таблицу "Позиции по клиентским счетам (фьючерсы)" добавлено поле session_status.

7. В одной из предыдущих версий QUIK прямо в его поставку был включена прокси-библиотека lua5.1.dll. Но с ней была проблема, хоть и не часто замечаемая: эта библиотека требовала наличия в системе или в каталоге с терминалом файла msvcr100.dll.
В версии 7.0 эта проблема исправлена, файл msvcr100.dll более не требуется.

8. Как бы по-мелочи, но при этом существенно доработана справка, в неё добавлено описание разных нюансов, которые очень не очевидны, но которых, как известно, очень много в QLua. Это явно поможет тем, кто делает Lua-роботов, теперь в справке больше той информации, которую ранее приходилось получать экспериментами или окольными путями. Замечены уточнения и добавки:

  • Для некоторых функций обратного вызова уточнено когда именно они вызываются (например, OnCleanUp, OnClose).

  • Ко многим функциям дописаны полезные примечания (например, CalcBuySell), текст много где изменён, стал более понятный.

  • Уточнения по возвращаемым параметрам (например, getBuySellInfoEx, таблица завок).

2

Re: Вышло обновление QUIK версии 7.5

Обновлено: 18.03.2014

Вышло обновление терминала Quik, версия 6.17.0 и 6.17.1.

В QLua добавлены "потоко-безопасные" функции работы с таблицами:

  • sconcat - аналог concat

  • sremove - аналог remove

  • sinsert - аналог insert

  • ssort - аналог sort

Надо еще проверить поправлена ли проблема с выгрузкой библиотеки VCLua или нет.


Вышло обновление терминала Quik, версия 6.16.0.

Новшеств в самом QLua не найдено, однако в работе с виртуальной машиной Lua внесено существенное дополнение: теперь Lua-машина полностью выгружается после остановки скрипта.
Но реализовано это не очень красиво: завершение производится из дочернего потока, в котором выполняется main(). Это приводит в частности к проблемам в работе с визуальной библиотекой VCLua!


Вышло обновление терминала Quik, версия 6.15.0. Обновление очень сырое, часть функционала Lua не работает! поэтому надо ждать патча, использовать указанную версию QUIK пока невозможно для Lua-роботов

По поводу Lua по справке видятся следующие изменения:

1) Появилась новая сервисная функция PrintDbgStr для вывода лога (как с ней работать).
2) Теперь данные по стакану котировок можно получать без ручного открытия окна стакана! Нужный "стакан" можно заказывать прямо из скрипта, для этого появились функции Subscribe_Level_II_Quotes и Unsubscribe_Level_II_Quotes.
Т.е. после вызова из скрипта Subscribe_Level_II_Quotes у нас начнет для указанного инструмента вызываться OnQuote.
Также есть функция проверки на подписку IsSubscribed_Level_II_Quotes.
3) У DataSet появился новый метод: SetEmptyCallback(). Описание скудное - видимо позволяет получать данные по инструменту без необходимости назначения callback-функции.
4) Обработчик события OnStop теперь может вернуть время, необходимое скрипту для завершения; если ранее остановка main принудительно осеществлялась через 5 сек. после нажатия кнопки "Остановить" в диалоге управления скриптами, то теперь это время ожидания можно указывать возвращаемым значением из OnStop. (Хотя не очень понятно зачем это необходимо)
5) Добавились новые функции "взаимодействия скрипта Lua и Рабочего места QUIK":

  • getMoneyEx

  • getDepoEx

  • getFuturesLimit

  • getFuturesHolding

В скриптах Lua-индикаторов появились следующие новые возможности:

5) Функции SetValue и SetRangeValue - теперь можно изменять любое значение на любом участке индикатора, а не только для последней свечи! Ура!
Еще новая функция GetValue для получения значения из любой рассчитанной свечи для построенного индикатора.



Вышло обновление терминала Quik, версия 6.13.0.
1) В справке по QLua поправлено и несколько дополнено описание функция работы с графиками.
2) В QLua в этой версии добавлена возможность размещать на графиках произвольные метки. Метка может включать в себя картинку из файла и текст, и может быть полупрозрачной. Функции работы с метками:

  • AddLabel - добавить метку на график;

  • DelLabel - удалить метку с графика;

  • DelAllLabels - удалить все метки на графике;

  • GetLabelParams - получить параметры определенной метки;

  • SetLabelParams - изменить параметры метки.



Вышло обновление терминала Quik, версия 6.11.0.
По документации замечены следующие небольшие дополнения в QLua.

  • getBuySellInfoEx - добавлены специфические параметры для реализации нового маржинального постановления;

  • CreateDataSource - добавлен второй возвращаемый параметр error_desc: описание ошибки при её возникновении;

  • в индикаторах добавлена функция getInterval, позволяющую определить тайм-фрейм графика.



Вышло обновление терминала Quik, версия 6.9.
В этой версии появилось довольно много самых разных нововведений. Из общего - новая таблица, вызываемая из меню Торговля -> Состояние счета. Это этакая сводная таблица всех позиций клиента в одном месте: деньги, акции, облигации, фьючерсы, опционы, и все в одной таблице. Отображаются позиции по каждому инструменту, оценка позиций, количество заявок на покупку и продажу, нереализованная прибыль/убытки и т.д. Кроме этого сводные совокупные параметры по счету.

Но нас интересует Lua, и здесь тоже довольно много нового и вкусного.

Во-первых - это, конечно же, возможность построения пользовательских индикаторов на Lua! Для этого используются специальные скрипты на Lua, которые должны быть размещены в каталоге LuaIndicators внутри папки с исполняемыми файлами терминала Quik.

Во-вторых, существенной модификации подверглась система получения и обработки данных графиков. Если ранее робот на Lua мог получать данные только из графиков в явном виде открытых пользователем в интерфейсе, да еще и с с необходимостью задавать руками уникальное имя графика, то в новой версии 6.9 введена концепция "источников данных". Вернее, сама концепция была в Quik'е всегда, но теперь появилась возможность создавать источник данных прямо из кода робота без необходимости ручного построения графика:

ds = CreateDataSource("SPBFUT", "RIU3", INTERVAL_M5, "last")

После этого терминал Quik начнет автоматически получать с сервера информацию о пятиминутных свечах инструмента RIU3 по параметру "цена последней сделки".
Для доступа к данным внутри скрипта робота необходимо использовать специальные методы источника данных, например для второй свечи (доступ по индексу):

Open = ds:O(2) -- вернет значение "открытие свечи"
High = ds:H(2) -- вернет максимальное значение свечи
Low = ds:L(2) -- вернет минимальное значение свечи
Close = ds:C(2) -- вернет значение "закрытие свечи"
Volume = ds:V(2) -- вернет объем сделок в указанной свече
Time = ds:T(2) -- вернет таблицу со значениями времени и даты свечи

Остальные функции можно посмотреть в файле справке QLUA.chm в документации по индикаторам.
Кроме того, можно задать свой обработчик события изменения данные в свечах созданного источника данных через метод ds:SetUpdateCallback(function).



Вышло обновление терминала Quik, версия 6.8.2.9. Небольшие дополнения по поводу QLua в этой версии следующие: "В QPile и QLua добавлены функции для получения параметров таблиц «Клиентский портфель» и «Купить/Продать» с учетом вида лимита".
Речь о двух новых функциях:

  • getPortfolioInfoEx - в отличии от getPortfolioInfo имеет дополнительный параметр limit_kind, позволяющий указать данные из строки с каким именно видом лимита необходимо получить (необходимо указать число! отбросив букву Т от названия вида лимита).

  • getBuySellInfoEx - возвращает туже таблицу, что и getBuySellInfo, но с дополнительным параметром limit_kind, который показывает к рынку с каким сроком расчетов относится данный инструмент и режим торгов. (Проверил, новый параметр называется маленькими буквами, в документации опечатка.)

Обновление до версии QUIK 6.8.2.9 доступно на ftp-сервере ARQA в виде zip-файла (без инсталлятора).



Вышло обновление терминала Quik, версия 6.8.1.13. Изменений по поводу QLua в этой версии ровно одно: появилась новая функция SearchItems(), предназначенная "для обращения к данным произвольных таблиц QUIK, ... позволяет получить быструю выборку элементов, удовлетворяющих заданному условию поиска, из хранилища данных терминала".



Вышло обновление терминала Quik, версия 6.7.3.2. Изменений по поводу QLua в этой версии нет совсем никаких, файл qlua.dll и файл справки точно такие же, как в предыдущей версии 6.7.1.3.



Вышло обновление терминала Quik, версия 6.7.1.3. Изменения по поводу QLua в этой версии:

  • Появилась возможность обработки кликов мыши и нажатия клавиш в таблицах, созданных из QLua. Причем обрабатывается большое множество разных событий: нажатие кнопки мыши, отпускание кнопки мыши, двойной клик, нажатие клавиши на клавиатуре. В обработчиках кликов мыши можно определить над какой ячейкой произведено действие, в обработчиках клавиатуры - номер активной выделенной строки.

  • Появилась возможность непосредственно из скрипта Lua задавать и менять цвет отдельных ячеек и строк таблиц.

  • Появилась возможность временно "подсветить" ячейку из скрипта Lua (на подобии, как пдсвечиваются строки таблицы текущих параметров при изменении цен, например).

  • Наконец-то добавлены функции для работы отдельными битами непосредственно в QLua. Необходимость в дополнительной bit.dll теперь отпала. Обратите внимание как правильно называются новые функции, в документации опечатка:

    • bit.bnot, bit.band, bit.bor, bit.bxor - соответственно логическое НЕ, И, ИЛИ, исключающее ИЛИ;

    • bit.tohex - переводит число в шестнадцатеричное строковое представление, удобно при отладке, записи в лог.



Вышло обновление терминала Quik, версия 6.6.0.18. Изменения по поводу QLua в этой версии:

  • Наконец-то начала появляться визуализация!!! Теперь можно добавлять свои таблицы, создаваемые и заполняемые из скрипта на Lua.

  • Добавлена функция getOrderByNumber, позволяющая получить информацию о заявке по номеру.

  • Во многих структурах появились новые поля с данными, которые ранее были недоступны в Lua.

  • Наименования некоторых полей в разных структурах изменены, наименования приведены к единому виду. Но старые поля (если у кого-то есть скрипты) по прежнему работают (пока?). Вот список изменений, которые мне удалось выявить сравнением документации версий 6.5 и 6.6:

    • Обезличенные сделки:

      • tradenum --> trade_num

      • seccode --> sec_code

    • Позиции по клиентским счетам:

      • seccode --> sec_code

    • Позиции по клиентским счетам (фьючерсы):

      • seccode --> sec_code

    • Сделки:

      • tradenum --> trade_num

      • ordernum --> order_num

      • seccode --> sec_code

    • Сделки для исполнения:

      • seccode --> sec_code

    • Стоп-заявки:

      • ordernum --> order_num

      • seccode --> sec_code

      • condition_seccode --> condition_sec_code

    • Транзакции:

      • ordernum --> order_num

  • В скрипте может отсутствовать функция main(). Теперь QLua не выдает ошибку с этом случае.

Если ваш брокер еще не выложил обновление - его можно взять в официальном файловом архиве (инсталлятор), либо на FTP-сервере ARQA (файл quik_6_6_0_118_upd.zip). Правда, похоже что есть какая-то несовместимость с серверами некоторых брокеров, поэтому не забудьте сохранить предыдущую версию! ARQA советует обращаться с этим вопросом к брокеру.



Вышло обновление терминала Quik, версия 6.5.2.11, и снова Lua-часть не обойдена стороной, что, конечно, очень радует.

Изменения по поводу QLua в версии 6.5.2.11:

  • В таблице, которую возвращает функция OnTransReply, добавлены поля:

    • class_code - класс заявки

    • sec_code - инструмент заявки

    • trans_id - идентификатор транзакции, указанный пользователем в sendTransaction

  • Добавлены новые функции:

    • getPortfolioInfo - позволяет получить информацию из таблицы "Клиентский портфель" (обеспечение, уровень маржи, общая оценка лонгов/шортов и т.д.);

    • getBuySellInfo - позволяет получить информацию из таблицы "КупитьПродать".

  • Исправлена ошибка с точностью в цене в функции OnTransReply (речь, очевидно, вот про эту ошибку).

  • Устранен сбой при работе из Lua с большими стаканами котировок.

  • Традиционно в документации QLua исправлен ряд опечаток и неточностей.

Изучение документации по поводу изменений в OnTransReply выявило один важный момент: ранее в таблице содержалось поле R без названия, но в нем возвращался заданный пользователем номер транзакции. Теперь поля R не стало, судя по всему оно было заменено на поле с осмысленным названием trans_id, содержащеим туже самую информацию. Т.е. в этом месте потеряна обратная совместимость! Надо будет поправить скрипты на сайте.



Изменения по поводу QLua в версии 6.5.1.19:

  • Добавлена функция getScriptPath, позволяющая из Lua-скрипта получить каталог, из которого этот скрипт был загружен.

  • В плагине поддержки Lua функции getTradeDate и getInfoParam не работали, вместо этого нужно было использовать функции GetTradeDate и GetInfoParam.

  • В плагине поддержки Lua не вызывалась функция OnNegDeal.

  • В плагине поддержки Lua при вызове функции getClassSecurities для некоторых классов возникал сбой программы.

  • В документации пользователя на плагин поддержки Lua исправлен ряд опечаток и неточностей.

3

Re: Вышло обновление QUIK версии 7.5

Поправлена проблема с wx, iup
Правда wxLua нужен последний, собранный на 9-м тулсете.

4

Re: Вышло обновление QUIK версии 7.5

Вышла версия QUIK 6.5.2.11. Список изменений в первом посте.
А вот улучшение взаимодействия с wx и iup по прошлой версии так, увы, руки и не дошли проверить. Может кто-то проверял?


5

Re: Вышло обновление QUIK версии 7.5

admin пишет:

Обновлено: 16.04.2013

Вышло обновление терминала Quik, версия 6.6.0.18.

Внимание! И снова есть потеря обратной совместимости!
Часть скриптов у меня вдруг не заработала, оказалось, что изменены наименования некоторых полей структур (таблиц) данных! Сравнение документации 6.5 и 6.6 версий показывает, что изменения в

Добрый день.
А можете пример кода привести который "отвис" после обновления?

6

Re: Вышло обновление QUIK версии 7.5

mbul,
Стал готовить пример, чтобы выложить сюда, и понял, что я ошибся: просто обновление QUIK совпало у меня с новым куском кода на Lua, в котором я сделал ошибку, написав secode. Сразу не заметил, конечно, кинулся "подозревать всех вокруг", как водится. Т.е. понял, что где-то с полями косяк, но описку у себя не заметил.
Потом решил скопировать из документации, чтобы наверняка, открыл, скопировал - и тут увидел, что рядом в коде написано слитно - ну сразу стало "понятно", виновато обновление. Пошерстил документацию - выявил расхождения, быстро поменял все у тебя в скриптах (а може и не все, кстати, раз вы говорите, что старые названия работают), но т.к. заработало - решил, что в этом и есть причина. Ну и написал...

Текст про "потерю обратной совместимости" поправил.

7

Re: Вышло обновление QUIK версии 7.5

Вышла версия 6.7.1, в ней есть несколько дополнений в QLua

8

Re: Вышло обновление QUIK версии 7.5

Вышла версия 6.13
(на ftp Arqa доступна версия 6.113.0.104)

Самое в ней прикольное - это вынос внутренних окон за пределы основного окна терминала! (для выноса окна надо держать нажатой Ctrl и перемещать окно)

https://quik2dde.ru/static-img/30/QUIK_6_13.png

9

Re: Вышло обновление QUIK версии 7.5

Вышло обновление QUIK версии 6.17, список изменений про Lua - в первом посте темы.

10 (2016-09-29 11:30:27 отредактировано sam063rus)

Re: Вышло обновление QUIK версии 7.5

-

11

Re: Вышло обновление QUIK версии 7.5

В первый пост темы добавил список найденных изменений для версий 7.0.0 и 7.0.1.

Просьба ко всем, кто что-то вписывает в эту тему - не забывать указывать версию терминала, к которой относится ваше сообщение.

12 (2016-09-29 11:40:53 отредактировано sam063rus)

Re: Вышло обновление QUIK версии 7.5

-

13 (2015-12-10 10:20:58 отредактировано CyberTrader)

Re: Вышло обновление QUIK версии 7.5

admin пишет:

1. Важное дополнение: в обработчик OnConnected добавлен параметр flag типа BOOLEAN.

admin пишет:

Вызывался ли ранее этот обработчик при получении нового класса?!

Да вызывался. Добавили, как я понял, только флаг.

14

Re: Вышло обновление QUIK версии 7.5

Теперь и в Windows XP можно пользоваться Lua-криптами, т.е. для полноценного использования 7-й версии QUIK надо ставить минимум версию 7.0.2.

15 (2016-09-29 11:39:53 отредактировано sam063rus)

Re: Вышло обновление QUIK версии 7.5

-

16 (2016-02-13 12:02:30 отредактировано admin)

Re: Вышло обновление QUIK версии 7.5

Вышла, да.
Но про Lua ничего там не нашёл я нового/исправленного.

17

Re: Вышло обновление QUIK версии 7.5

Вышла новая версия терминала 7.4
Список обновлений про Lua в первом сообщении этой темы.