Большие ли отличия QLua от от Lua и где официальная документация?, Какая версия Lua в QLua, работают ли все функции Lua или только какой-то ограниченный набор (если так, то где прочитать, какой?), можно ли подключать модули и все как в обычном Lua? Есть ли где-то на официальном сайте документация?
Пользователь
Сообщений: Регистрация: 23.01.2015
03.02.2017 09:40:21
Цитата
Ivan Petrov написал: . В поисковиках почему-то очень сложно найти официальную документацию по QLua, пожалуйста, дайте ссылку, крайне желательно на официальном сайте.
Документация поставляется вместе с терминалом QUIK в отдельном файле QLUA.chm Также есть ссылка:
Цитата
Ivan Petrov написал: 2. Сильно ли отличается QLua от Lua, т.е. можно ли как обычно подключать разные модули, использовать все возможности Lua итд итп или нет? Где об этом почитать?
В QLUA есть все что в LUA + то что описано в документации QLUA.chm
Цитата
Ivan Petrov написал: 3. Какая версия Lua в QLua? Просьба подкрепить ссылкой на официальную документацию, если можно.
Используется версия 5.1, про ссылку не совсем понятно.
Оборотов торгов в деньгах (RUR) на графиках Фондовой секции ММВБ, Отражение Оборотов торгов в деньгах (RUR) на графиках инструментов Фондовой секции ММВБ - возможно ли организовать в текущей версии Quik
Пользователь
Сообщений: Регистрация: 23.01.2015
02.02.2017 10:55:10
Цитата
Денис Василевский написал: А разве исторические данные берутся не с серверов ММВБ?
Здравствуйте, Нет.
OnStop
Пользователь
Сообщений: Регистрация: 23.01.2015
02.02.2017 09:58:44
Здравствуйте, Проблема изучается. Постараемся в ближайшее время дать ответ.
Анатолий, Данный вопрос совершенно никак не относится ни к терминалу ни к QUIK в целом. За исполнение заявок отвечает биржа согласно правилам торгов. И Ваш вопрос надо адресовать брокеру, т.к. весь диалог с биржей Вы ведете через брокера. А QUIK это лишь средство для доступа на биржу
Анатолий, Этот вопрос совершенно никак не относится к LUA. Уточните у брокера причины исполнения заявок.
Снятия заявки без id транзакции
Пользователь
Сообщений: Регистрация: 23.01.2015
30.01.2017 20:37:35
Здравствуйте, Для снятия заявки TRANS_ID снимаемой заявки не нужен. TRANS_ID нужен для транзакции. Снятие заявки - это тоже транзакция и правила для TRANS_ID ровно такие же как и для любой другой транзакции. А значит в TRANS_ID можно указать любое число. А именно: Если речь про отправку транзакций из файла, то TRANS_ID должен быть таким которого еще нет в tro файле. Если речь про QPILE, QLUA или Trans2Quik, то вообще любое число. В диапазоне от 1 до 2х миллиардов с копейками.
В данный момент мы ведем диалог с Вашим брокером. Т.е. проблема открыта и пока причины ошибки не установлены. В связи с чем считаем давать какие-либо рекомендации преждевременным.
MOVE_ORDERS отвалилась
Пользователь
Сообщений: Регистрация: 23.01.2015
30.01.2017 13:39:25
ytrewq, В текущий момент мы уже ведем диалог с Вашим брокером по данной проблеме. О результатах, Вы можете уточнить у брокера.
Перестал работать DDE с квика, Перестал работать DDE с квика
Пользователь
Сообщений: Регистрация: 23.01.2015
30.01.2017 13:34:56
Николай Павлов, Здравствуйте, Уточните точную версию MS Office и версию терминала QUIK. Повторите проблему с логом quik_dde.log, пришлите его нам для анализа на адрес quiksupport@arqatech.com
MOVE_ORDERS отвалилась
Пользователь
Сообщений: Регистрация: 23.01.2015
30.01.2017 13:16:54
Здравствуйте, Уточните через какого брокера Вы работаете.
Двойное срабатывание OnTrade( T ), Наблюдаю при сделках двойное срабатывание OnTrade( T ) сделках
Пользователь
Сообщений: Регистрация: 23.01.2015
26.01.2017 23:02:30
Алексей Степанов, Раньше сделки действительно не обновлялись, но теперь сделки являются обновляемыми. И на них есть и TRANS_ID и UID.
простой код не работает
Пользователь
Сообщений: Регистрация: 23.01.2015
26.01.2017 22:59:37
Космонавт, Если заказать большое количество стаканов, то да это создаст какую-то нагрузку на сервер брокера. Если постоянно заказывать и отписываться то нет. если просто дергать значения функцией getQuoteLevel2 то брокер этого даже не заметит
простой код не работает
Пользователь
Сообщений: Регистрация: 23.01.2015
26.01.2017 22:02:24
Цитата
Космонавт написал: Это зависит от настроек брокера?
Да верно.
простой код не работает
Пользователь
Сообщений: Регистрация: 23.01.2015
26.01.2017 20:26:05
Здравствуйте, Попробуйте так:
Код
function main()
class="SPBFUT"
sec="SRH7"
s=Subscribe_Level_II_Quotes(class, sec)
toLog (log, s) --s как и положено true
sleep(1000)
qt=getQuoteLevel2(class, sec)
toLog (log, qt) --qt выглядит так: bid_count=0.000000;offer_count=0.000000;
Unsubscribe_Level_II_Quotes(class, sec)
end
Анатолий написал: В первом вызове значения UID и TRANS_ID равны 0 или nil?
Лучше проверьте на практике.
Цитата
Анатолий написал: И можно ли пропустить вызов в данном случае и ожидать второй вызов?
Второго вызова может и не быть, в случае если транзакция отправлялась на биржу не через QUIK. Отличить заявку выставленную через QUIK но без доп параметров, от заявки выставленной не через QUIK никак нельзя. Поэтому лучше реагировать на ответы на транзакции (OnTransReply) там есть номер порожденной заявки и нужные параметры UID и TRANS_ID Если в OnTransReply параметры есть, а на заявке с тем же номером их пока еще нет, значит скоро приедет еще один OnOrder но уже с нужными параметрами.
Здравствуйте, Вопрос уже не раз подымался на форуме. Второй вызов может произойти в момент, когда сервер устанавливает на теле заявки параметры которых нет на бирже. Таковыми например являются UID и TRANS_ID (есть и другие). В первом вызове их нет, а во втором есть.
Последний индекс
Пользователь
Сообщений: Регистрация: 23.01.2015
24.01.2017 00:02:30
Цитата
валерий написал: Что значит "просто запомнить предыдущее значение"? На каком индексе его брать и запоминать?
что мешает добавить для этого переменную в код? И просто ее обновлять если она не равна Size()?
валерий написал: Как узнать значение? На какой свечке? Если на первой там все понятно, но оно не будет соответствовать последнему расчету. А как на последней, если я не могу ее определить?
Вам надо просто запомнить предыдущее значение и сравнить с текущим. Если они не совпали то обновить предыдущее.
Последний индекс
Пользователь
Сообщений: Регистрация: 23.01.2015
23.01.2017 23:37:57
валерий, Запомнить старое значение и сравнить с новым
Последний индекс
Пользователь
Сообщений: Регистрация: 23.01.2015
23.01.2017 23:31:55
Цитата
Sergey Gorokhov написал: валерий , Сообщить message в какой момент? В момент закрытия текущей свечи? если так то его отловить можно только после появления новой, или окончания торгов. Соответственно, нужно добавить условие на проверку появления новой свеч (изменится Size()) и статус торгов (через getParamEx)
и еще добавить проверку на время т.к новых свечек может и не быть вовсе, даже если торги идут.
Последний индекс
Пользователь
Сообщений: Регистрация: 23.01.2015
23.01.2017 23:29:43
валерий, Сообщить message в какой момент? В момент закрытия текущей свечи? если так то его отловить можно только после появления новой, или окончания торгов. Соответственно, нужно добавить условие на проверку появления новой свеч (изменится Size()) и статус торгов (через getParamEx)
Последний индекс
Пользователь
Сообщений: Регистрация: 23.01.2015
23.01.2017 23:18:06
Цитата
валерий написал: Нужно чтобы условие Size() == index сработало только один раз, а не много раз.
Условие будет срабатывать при каждой новой свечке и это правильно. т.к. меняется количество свечек и при изменении текущей. Если Вам нужно чтобы оно не срабатывало несколько раз при изменении текущей свечки (а не добавлении новой), добавьте еще одно условие проверку. Что именно проверять Вам решать т.к. нам не известно что Вам требуется.
Последний индекс
Пользователь
Сообщений: Регистрация: 23.01.2015
23.01.2017 23:08:10
валерий, Да, ведь до добавления, номер свечки не равен текущему количеству свечек. Вопрос то в чем?
Последнюю на данный момент свечку, можно узнать сравнив номер текущей с результатом функции Size()
Функции CreateWindow() и InsertRow()
Пользователь
Сообщений: Регистрация: 23.01.2015
23.01.2017 21:29:29
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
ParamRequest и CreateDataSource не заказывают получение параметров Таблицы текущих торгов
Для корректной работы функции включите в настройках Рабочего места QUIK признак получения данных «Исходя из настроек открытых пользователем таблиц» (меню Система / Настройки / Основные настройки..., раздел «Программа» / «Получение данных»).
ParamRequest и CreateDataSource не заказывают получение параметров Таблицы текущих торгов
Пользователь
Сообщений: Регистрация: 23.01.2015
23.01.2017 17:55:32
Старатель, Что значит "стандартная"? если настройка есть в интерфейсе она уже стандартная в любом случае. Если вопрос про значение "по умолчанию", то как-раз стоит "исходя из настроек..."
Функции CreateWindow() и InsertRow()
Пользователь
Сообщений: Регистрация: 23.01.2015
23.01.2017 17:21:37
Цитата
Andrei2016 написал: Стандартная практика в программировании - это формирование образа данных в памяти и лишь затем отображение содержимого.
Но строки вполне честно могут быть добавлены и после появления таблицы. Собственно оно так и работает (и не только в Lua таблицах)
1) есть сравнительный анализ? 2) не вижу нарушений логики.
ParamRequest и CreateDataSource не заказывают получение параметров Таблицы текущих торгов
Согласно документации, для корректной работы нужна настройка "Исходя из настроек открытых пользователем таблиц"
Как получить список инструментов из таблицы текущих параметров
Пользователь
Сообщений: Регистрация: 23.01.2015
23.01.2017 15:59:29
Сергей Дворцов, Получить список именно из таблицы нельзя. Т.к. QLua работает с хранилищем данных, а не напрямую с таблицами в интерфейсе. Т.е. Вы можете получить список доступных Вам инструментов и там будут вообще все доступные инструменты, а не только те которые в таблице. Список инструментов можно получить функцией getClassSecurities
Присвоим идентификатор графику программно!
Пользователь
Сообщений: Регистрация: 23.01.2015
22.01.2017 08:21:57
Цитата
medvedoff написал: Двойкуу вам за поддержку Сергей Горохов, в последней версии есть опция идентификатора для пользовательский графиков
Читайте внимательней. Речь про то чтобы данный идентификатор заполнить через Lua, а то что он существует и так всем известно, ничего нового Вы не сказали.
Sergey Gorokhov написал: О компании -> Новости -> Подписаться
Вчитался............ Это ж как пользователь должен догадаться, что в разделе "О компании - новости" будут новости о новых версиях?
Ну да в разделе Новости, находятся новости. Для этого раздел и назван "Новости"
Таблица обезличенных сделок
Пользователь
Сообщений: Регистрация: 23.01.2015
19.01.2017 05:08:13
Космонавт, Чтобы данные поступали их надо заказать. Делается это либо путем открытия таблицы, либо через CreateDataSource
Сортировка таблицы по возрастанию
Пользователь
Сообщений: Регистрация: 23.01.2015
19.01.2017 05:04:26
К слову, вопрос уже подымался на нашем форуме
Сортировка таблицы по возрастанию
Пользователь
Сообщений: Регистрация: 23.01.2015
19.01.2017 04:56:14
bulat, Ваш вопрос совершенно никак не касается Lua. Это чистой воды логика программирования. Алгоритмов сортировки двумерных массивов очень много, и все они легко ищутся в интернете. Достаточно найти любой из них и перенести на синтаксис Lua. В этом месте при возникновении вопросов готовы оказать содействие. Искать по фразе "сортировка двумерного массива"
неужели OnParam самый быстрый?
Пользователь
Сообщений: Регистрация: 23.01.2015
18.01.2017 09:03:57
Цитата
Николай Камынин написал: Никто не мешает брокеру создать специально задержку данных, поступающих на ваш комп и показывать Вам вчерашний день.
Со стороны QUIK нет такой настройки, которая бы позволила внести искусственную задержку.
Как отслеживать появление новых версий квика?
Пользователь
Сообщений: Регистрация: 23.01.2015
18.01.2017 04:34:02
Sergey Denegin, Подписаться на новости, как не удивительно, можно в разделе Новости.
arqatech.com -> О компании -> Новости -> Подписаться
Вызов getDataSourceInfo() из Init() в Lua индикаторах
Пользователь
Сообщений: Регистрация: 23.01.2015
17.01.2017 05:10:38
Цитата
Алексей написал: Это то понятно, что решить задачу можно, отлавливая вызов для первой свечки, но это лишние накладные расходы, пускай и мизерные. А на медленных машинках, для процессов, исполняемых интерпретатором, если кто-то решит повесить много индикаторов, в каждом из которых по несколько линий ...:),
1) То что проверка первой свечи приводит к "накладным расходам" не более чем просто слова. 2) Гипотетическое создание Init2 совершенно никак не позволит изменить ситуацию. И даже если ее добавить, это будет ровно тоже самое что проверка первой свечи. 3) Решение в виде проверки первой свечи, в полной мере решает задачу и аргументов которые не позволят ее решить указанным способом, Вы так и не привели.
Торговля в двух и более терминалах на LUA
Пользователь
Сообщений: Регистрация: 23.01.2015
17.01.2017 05:03:02
Здравствуйте,
Цитата
SkeelS написал: Подскажите пожалуйста можно ли одним скриптом на LUA торговать в двух терминалах?
Да можно. Но это уже будет не один скрипт, а две копии одного скрипта.
Цитата
SkeelS написал: Например есть стратегия, которая в зависимости от событий на одном счету - должно что-то происходить на втором.
Если Вам нужно взаимодействие между скриптами, это уже другой вопрос. Вариантов решения много, самый простой чтение/запись в какой-либо файл. Один скрипт пишет в файл, второй читает. Еще есть вариант через пайпы. Работает примерно также как через файл. Некоторые также умудряются использовать функцию PrintDbgStr. Еще есть вариант через отдельную DLL (можно найти на сайте одного известного участника форума), которая подключается к обоим скриптам и позволяет обмениваться информацией.
Касаемо примеров, у нас их нет. Они есть в интернете.
Как отслеживать появление новых версий квика?
Пользователь
Сообщений: Регистрация: 23.01.2015
17.01.2017 04:55:32
Здравствуйте, На главном сайте для этого есть рассылка новостей, в том числе и по обновлениям. Фильтра нет, однако любой почтовый агент с легкостью с этим справится.
Описания полей, Не хватает данных в справочнике
Пользователь
Сообщений: Регистрация: 23.01.2015
16.01.2017 13:23:04
Цитата
Николай Камынин написал: информацию можно получить по любому полю из любой таблице, используя экспорт DDE в excel, включив "С заголовками столбцов" и "Формальные заголовки"
Это работает только для таблицы Params, для остальных совпадение не гарантируется.