4.24 Транзакции. Флаги транзакции., Что это такое?
Пользователь
Сообщений: Регистрация: 30.05.2020
02.03.2021 11:16:30
Транзакции KILL_ORDER имеют флаг "на ввод заявки", а KILL_ALL_FUTURES_ORDERS - флаг "служебная". QUIK clients support, какой смысл вкладывается в эти понятия?
4.24 Транзакции. Флаги транзакции., Что это такое?
Пользователь
Сообщений: Регистрация: 30.05.2020
28.02.2021 08:44:17
262144 + 1 = "отправлена с помощью LUA" + "отправлена с помощью файла импорта" Взаимоисключающие значения
Данный инструмент запрещен для операции шорт
Пользователь
Сообщений: Регистрация: 30.05.2020
24.02.2021 14:25:19
Цитата
Незнайка написал: на общем балансе брокера в моменте количество акций меньше, чем вы хотите продать...
Roman Azarov, возможна такая ситуация, когда у одного клиента на счёте +некоторое количество акций, у другого "-" (продано или стоят в заявках на продажу), в итоге суммарное количество доступных акций у брокера меньше, чем у первого клиента в портфеле? Какая в этом случае будет диагностика?
Данный инструмент запрещен для операции шорт
Пользователь
Сообщений: Регистрация: 30.05.2020
24.02.2021 13:39:50
Брокер дал кому-то попользоваться вашими акциями, не?
Ошибка: указанная транзакция по указанному классу не найдена, Quik 8.11.0.66
Пользователь
Сообщений: Регистрация: 30.05.2020
14.02.2021 11:28:45
Обычно, если послать транзакцию за несколько секунд до начала или через несколько секунд после окончания торговой сессии, то будет ошибка от шлюза торговой системы: "Сейчас эта сессия не идет."
Цитата
Олег написал: вот с такими данными улетала транзакция фьючерс Si-3.21 12.02.2021;11:30:00;ACTION=NEW_ORDER; TRANS_ID=1612899312; OPERATION=B; QUANTITY=1; PRICE=74366;
Что значит "улетела"?
Цитата
Олег написал: Указанная транзакция по указанному классу не найдена: "SPBFUT"
Это, вроде, как ошибка самого терминала, транзакция на сервер не отправляется.
Не бывает такого Статуса торговли инструментом. По крайней мере, ни разу не встречал.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
Пользователь
Сообщений: Регистрация: 30.05.2020
11.02.2021 11:48:50
Цитата
Незнайка написал: Пока выполняется байткод (в любом потоке) сам QUIK залочен?
Ну да, ваш же тест это и подтверждает. Просто это было не так очевидно в скриптах, где байткод перемежается с си-функциями. Не далеко от QPILE ушли
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
Пользователь
Сообщений: Регистрация: 30.05.2020
11.02.2021 11:26:36
Цитата
Anton написал: байткод всегда выполняется под локом
Пока выполняется байткод (в любом потоке) сам QUIK залочен?
Цитата
Anton написал: Арке надо было только реализовать lua_lock/lua_unlock
А зачем понадобилось их реализовывать? Ну выполнялись бы потоки параллельно. А то так стопорится скрипт на каждом шаге, переключаясь то на один поток, то на другой.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
Пользователь
Сообщений: Регистрация: 30.05.2020
10.02.2021 13:46:10
Цитата
Anton написал: Сишные функции - любые, из самого луа, из qlua выполняются без лока
Как можно в этом убедиться?
При вызове, скажем сишной функции из самого lua, сначала ставится lua_lock потом выполняется функция, затем lua_unlock или в обратном порядке: lua_unlock - выполнение функции - lua_lock?
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
Пользователь
Сообщений: Регистрация: 30.05.2020
09.02.2021 14:45:05
Цитата
Anton написал: байткод всегда выполняется под локом, а когда надо вызвать сишную функцию, лок снимается и после возврата захватывается снова. Арке надо было только реализовать lua_lock/lua_unlock, все остальное уже готово.
Т.е., весь луа-код, в т.ч. и сишные функции из qlua, не может выполняться одновременно в двух потоках? Ну и зачем тогда нужно было городить весь этот огород с двумя потоками, если они всё равно не работают параллельно?
Вопрос к разработчикам: какие преимущества дала такая двухпоточная модель работы Lua-скриптов?
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
Ни к чему не призываю, сам эту штуку не ставил. Но кому-то может, и пригодятся реализованные автором средства, которых нет изначально в qlua. Вы ведь не думаете, что автор предложил исключительно вам двоим опробовать свой продукт? С таким же успехом можно, пойти, например на форум TSLaba и возмущаться там, зачем мне ваша хрень, я и сам могу тестер написать.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
Пользователь
Сообщений: Регистрация: 30.05.2020
30.01.2021 10:15:15
Цитата
Nikolay написал: При этом у меня уже давно написан dsl, где я даже проще чем у вас создаю формы и реакции.
Можно увидеть ваш dsl?
Лучшие технические требования к оборудованию, Лучшие технические требования к оборудования для работы Quik
Пользователь
Сообщений: Регистрация: 30.05.2020
22.01.2021 16:29:03
Цитата
Евгений написал: Что не так с моим оборудованием что 35 меток в формате jpg на одном графике вызывают остановку остальных? Открыто 8 вкладок на каждой в среднем по 3 графика с индикаторами.
Если закрыть все графики, кроме того, на котором метки, как работать будет?
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
Пользователь
Сообщений: Регистрация: 30.05.2020
18.01.2021 12:57:23
Для начала надо разобраться заполняется ли вообще поле сервером при перестановке заявок. А то брокер, может, не при делах.
Как понять, что скрипт загружен через require?
Пользователь
Сообщений: Регистрация: 30.05.2020
18.01.2021 08:52:38
Цитата
Незнайка написал: Внутри модуля определить, каким образом он был запущен.
Вы же смотрите в скрипте, загружающем модуль.
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
Пользователь
Сообщений: Регистрация: 30.05.2020
15.01.2021 15:28:47
Цитата
Roman Azarov написал: Если Вы наблюдаете у себя описанное ранее в ветке
Вы не наблюдаете? Хотите сказать брокер косячит?
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
Пользователь
Сообщений: Регистрация: 30.05.2020
15.01.2021 13:03:23
А незаполненный canceled_uid для MOVE_ORDERS это не ошибка?
s_mike@rambler.ru написал: Если же вы получили колбек и исходя из этого факта полезли в таблицу - это эта работа уже является полезной, а не бессмысленной.
Но при этом терминал упаковывает и передаёт нам в колбеке табличку, которую мы всё равно не используем. Или если использовать OnAllTrade() без параметров, то он не упаковывает сделку в табличку? Опять же вопрос: что выгоднее перенести таблицу со сделкой в main через потокобезопасные функции или вытащить её в main через getItem?
getMoneyEx иногда выдает nil., Интересно почему?
Пользователь
Сообщений: Регистрация: 30.05.2020
02.12.2020 14:21:15
Цитата
Anton написал: И дальше две модели - синхронная и асинхронная. Синхронная - это как форум, задал вопрос, через некоторое время зашел, поглядел, что ответили, если ничего - попозже еще зашел и так далее. Асинхронная - это оставил мыло (колбек), как проблему изучили, прислали ответ туда. Тут тоже возможны варианты, можно написать "ответ на ваш вопрос появился на форуме", то есть просто напомнить, что пора пойти и синхронно глянуть, либо прислать ответ целиком, чтобы никуда уже не ходить. В квике есть все эти варианты для разных вопросов. В идеальном мире были бы возможны все варианты для любого вопроса по выбору скрипта. Скажем, мне вот не нужна в OnAllTrade вся эта табличка с трейдом, мне нужен только факт, что туда что-то приехало, а бедный квик каждый раз табличку заполняет, в которую я даже не погляжу. А кому-то табличка нужна.
Что выгодней с точки зрения производительности: постоянно опрашивать размер таблицы
Код
function main()
local last = 0
while run do
local n = getNumberOf("all_trades")
if n > last then
for i = last, n - 1 do
...
end
last = n
else sleep(100) end
end
end
или назначить колбек на получение новых данных?
Код
function OnAllTrade()
a = true
end
function main()
local last = 0
while run do
if a then
local n = getNumberOf("all_trades")
a = false
for i = last, n - 1 do
...
end
last = n
else sleep(100) end
end
end
Время ММВБ, Servertime не предлагать
Пользователь
Сообщений: Регистрация: 30.05.2020
27.10.2020 19:04:21
Во время клиринга поменяли на 19:05:00 Не обратил внимания, во сколько точно поменяли
Время ММВБ, Servertime не предлагать
Пользователь
Сообщений: Регистрация: 30.05.2020
27.10.2020 18:37:37
У всех сегодня параметр "Начало вечерней сессии" показывает 19:00:00 ?
Предложение к разработчикам
Пользователь
Сообщений: Регистрация: 30.05.2020
27.10.2020 17:18:30
Второй николз. Меня одного посещает такая мысль?
Время ММВБ, Servertime не предлагать
Пользователь
Сообщений: Регистрация: 30.05.2020
27.10.2020 13:48:09
Цитата
Незнайка написал: Ув. техподдержка, подскажите, как называется этот параметр в QUIK? Также подскажите, как называются параметры, которые транслируются в потоке FORTS_REFDATA_REPL таблица session
Время ММВБ, Servertime не предлагать
Пользователь
Сообщений: Регистрация: 30.05.2020
26.10.2020 19:06:40
Добрый день
Статус инструмента передается в шлюзе в потоке FORTS_REFDATA_REPL и таблице fut_sess_contents поле state
Цитата
Поле state может принимать следующие значения: 0 Сессия по этому инструменту назначена. Нельзя ставить заявки, но можно удалять по этому инструменту. 1 Сессия по этому инструменту идет. Можно ставить и удалять заявки по этому инструменту. 2 Приостановка торгов по всем инструментам. Нельзя ставить заявки, но можно удалять. 3 Сессия по этому инструменту принудительно завершена. Нельзя ставить и удалять заявки по этому инструменту. 4 Сессия по этому инструменту завершена по времени. Нельзя ставить и удалять заявки по этому инструменту. 5 Приостановка торгов по этому инструменту. Нельзя ставить заявки, но можно удалять по этому инструменту
Ув. техподдержка, подскажите, как называется этот параметр в QUIK? Также подскажите, как называются параметры, которые транслируются в потоке FORTS_REFDATA_REPL таблица session
begin Время начала end Время окончания inter_cl_begin Время начала промежуточного клиринга inter_cl_end Время окончания промежуточного клиринга inter_cl_state Состояние промежуточного клиринга eve_on Признак того, что дополнительная вечерняя сессия будет проводиться eve_begin Время начала дополнительной вечерней сессии eve_end Время окончания дополнительной вечерней сессии state Состояние сессии
Цитата
Поле state может принимать следующие значения: 0 Сессия назначена. Нельзя ставить заявки, но можно удалять. 1 Сессия идет. Можно ставить и удалять заявки. 2 Приостановка торгов по всем инструментам. Нельзя ставить заявки, но можно удалять. 3 Сессия принудительно завершена. Нельзя ставить и удалять заявки. 4 Сессия завершена по времени. Нельзя ставить и удалять заявки.
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 30.05.2020
16.10.2020 16:49:22
Владимир, дружочек, если за 40 лет горе-программист ничему не научился, то это о чём-то говорит. Вряд ли кто-то уже сможет вбить знания в его тупую башку. Пациент безнадёжен...
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 30.05.2020
16.10.2020 15:28:53
Владимир, замечательно. Теперь если перейти от обыденных примеров к программированию, то тоже самое, какой тип вы в переменную (или ячейку таблицы) положите, тот потом оттуда и достанете. Для вашего случая
Владимир написал: Но я ПОНЯТИЯ НЕ ИМЕЮ по каким соображениям она присваивает данные и передаёт аргументы какого-то типа.
Значит, мало практики ещё. Это вы ещё с вещественными числами мало работали. Когда обнаружите, что 0.1 + 0.2 ~= 0.3 ваш мир перевернётся. Не представляю, как вы это переживёте, если уже на типах вы сыпитесь.
Функции onInit, onStop, onClose
Пользователь
Сообщений: Регистрация: 30.05.2020
16.10.2020 14:48:50
Цитата
Владимир написал: А если сразу после этого сделать t=""?
s_mike@rambler.ru написал: Сервер посылает информацию вам с вполне определённой последовательностью в соответствии со своим внутренним алгоритмом.
Но информация делится на пакеты. Пакеты эти уезжают от сервера в сеть и дальше он ими не управляет. Поэтому первый пакет может уехать к вам через Камчатку, а второй через Химки. И вы запросто можете получить второй пакет раньше первого.
Добрый день.
Допустим, произошли две сделки: #1 и #2. Возможно ли, что в результате таких "путешествий" пакет со сделкой #2 приехал к клиенту раньше, чем пакет #1 или это не более, чем домыслы?
Как найти количество контрактов которое можно купить на определенную сумму?
Пользователь
Сообщений: Регистрация: 30.05.2020
08.10.2020 22:42:15
Текущий остаток, входящий остаток
Пользователь
Сообщений: Регистрация: 30.05.2020
21.09.2020 14:55:35
Добрый день. Всегда ли текущий остаток по бумагам и по срочным контрактам равен: Текущий остаток = Входящий остаток + Куплено - Продано ?
Если был перевод ЦБ, то где это отразится? На входящем остатке? Если был исполнен срочный контракт, то где это отразится? В сделках?
Расчёт ГО
Пользователь
Сообщений: Регистрация: 30.05.2020
16.09.2020 18:58:22
Цитата
Egor Zaytsev написал: У нас нет доступа к серверу брокера
Как же вы работаете?
Правильнее всё же будет уточнить актуальную формулу расчёта для текущего релиза спектры у сотрудников МБ и исправить у себя.
Расчёт ГО
Пользователь
Сообщений: Регистрация: 30.05.2020
25.08.2020 15:08:25
Egor Zaytsev, неужели так сложно скачать архив с вашего фтп, подключиться к серверу брокера и проверить?
Расчёты на сегодня (25.08 после клиринга 14:00):
Для SRU0: РЦ: 23 058 ГО покупателя: 4 034,40 ГО продавца: 4 086,80
Считаем по , поскольку шаг цены расччитывается в рублях, R = 0
Покупка по цене 22 058: В форме ввода заявки QUIK показывает: 3040,71 По формуле:
Код
ГО = 4034,40 - (23058 - 22058) * 1 / 1 = 3034,40
Столько же блокируется биржей*.
Продажа по цене 24 058: В форме ввода заявки: 3080,20 По формуле:
Код
ГО = 4086,80 + (23058 - 24058) * 1 / 1 = 3086,80
Столько же блокируется биржей*.
Для BRU0: РЦ: 45,44 ГО покупателя: 7 240,57 ГО продавца: 7 264,32 Шаг цены: 0,01 Ст. шага цены: 7,46714 R: 6
Покупка по цене 44,44: В форме ввода заявки: 6641,19 По формуле:
* значение Тек. чист. поз. из таблицы Ограничения по клиентским счетам
Расчёт ГО
Пользователь
Сообщений: Регистрация: 30.05.2020
31.07.2020 18:03:50
В первом приближении ГО можно рассчитать по формуле: Покупка: ГО = ГО_покупателя - (РЦ - Цена_сделки) * Стоимость_шага_цены / Мин_шаг_цены * (1 + R / 100) Продажа: ГО = ГО_продавца + (РЦ - Цена_сделки) * Стоимость_шага_цены / Мин_шаг_цены * (1 + R / 100) где R - радиус валютного курса Для контрактов, шаг цены которых рассчитывается в рублях, R = 0
Судя по значениям, QUIK рассчитывает R для всех контрактов, в т.ч. рублёвых, по формуле, приведённой в сообщении #4. Не знаю, как определить R, но после релиза Спектры 6.0 он точно не рассчитывается по той формуле. Например, на сегодня для USD R = 6% Если считать по формуле для RIU0 получается 5,44%, для BRQ0 -19,7%. Короче, невпопад.
При цене сделки, близкой к верхнему или нижнему лимиту, ГО считается как-то иначе. Как именно, не разобрался ( В методике расчёта ГО не нашёл, плохо искал наверное.
luasql (проблема с cursor:fetch)
Пользователь
Сообщений: Регистрация: 30.05.2020
28.07.2020 15:27:40
Какая версия QUIK?
Расчёт ГО
Пользователь
Сообщений: Регистрация: 30.05.2020
24.07.2020 10:24:40
Цитата
Egor Zaytsev написал: Также убедитесь, что у Вас версия рабочего места 8.2 и выше.
Цитата
Egor Zaytsev написал: 1. У Вас должна быть версия не ниже 8.7.1.
Что-то изменилось в расчёте ГО в 8.7.1 по сравнению с 8.2?
Расчёт ГО
Пользователь
Сообщений: Регистрация: 30.05.2020
20.07.2020 16:36:14
Egor Zaytsev, то ли я плохой рассказчик, то ли вы... плохой читатель. Попробуем ещё раз. Открываем Руководство пользователя QUIK и читаем:
Цитата
Ввод заявок на Срочном рынке FORTS «Объем ГО» – совокупный размер ГО, который блокируется по заявке исходя из количества контрактов и настроек брокера.
Проверяем, ставим заявку и сравниваем со значением Тек. чист. поз. из таб. Ограничения по клиентским счетам. В сообщении привёл скрины с реального счёта, не демо. Даже обвёл красненьким, на что обратить внимание. Видите, циферки не совпадают?
Возможно добавить трансляцию таблицы fut_vcb в будущих версиях QUIK?
Базовый актив по фьючерсу, Базовый актив по фьючерсу можно ли получить
Пользователь
Сообщений: Регистрация: 30.05.2020
06.07.2020 20:56:45
Из переписки с ТП МБ:
Цитата
в таблице fut_sess_contents есть поле base_contract_code, информацию по которому можно получить из таблицы fut_vcb. Обе таблицы транслируются в потоке FORTS_FUTINFO_REPL
Цитата
Из таблицы fut_sess_contents получаем base_contract_code = GAZR Далее из таблицы fut_vcb для GAZR получаем SECCODE = GAZP
Т.е., в QUIK нам нужна таблица fut_vcb (таблица содержит справочник базовых контрактов для инструментов). Возможно добавить?
Расчёт ГО
Пользователь
Сообщений: Регистрация: 30.05.2020
06.07.2020 00:05:42
Egor Zaytsev, какая ещё информация необходима, чтобы начать разбор проблемы "QUIK неверно рассчитывает Объем ГО заявки и, => максимальное возможное количество лотов в заявке" ?
Расчёт ГО
Пользователь
Сообщений: Регистрация: 30.05.2020
05.07.2020 23:59:16
nikolz, дружище, ты читать умеешь? Тебе сотрудник ТП русским языком написал:
Цитата
Egor Zaytsev написал: В форме ввода заявки ГО рассчитывается, оно не "едет" напрямую из таблицы текущих торгов в форму ввода заявки.
Egor Zaytsev написал: В форме ввода заявки ГО рассчитывается, оно не "едет" напрямую из таблицы текущих торгов в форму ввода заявки. Считаете по формуле.
У вас сходится ГО, рассчитанное по этой формуле, с тем, что считает квик?
Базовый актив по фьючерсу, Базовый актив по фьючерсу можно ли получить
Пользователь
Сообщений: Регистрация: 30.05.2020
26.06.2020 09:03:35
Проще зайти на страницу , взять оттуда ISIN БА и по нему найти код акции в таблице securities. Или можно составить статическую таблицу соответствий OPTIONBASE кодам акций в скрипте. Но вопрос был
Цитата
Незнайка написал: Как из квика получить код этой бумаги