Незнайка (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 След.
4.24 Транзакции. Флаги транзакции., Что это такое?
 
Транзакции KILL_ORDER имеют флаг "на ввод заявки",
а KILL_ALL_FUTURES_ORDERS - флаг "служебная".
QUIK clients support, какой смысл вкладывается в эти понятия?
4.24 Транзакции. Флаги транзакции., Что это такое?
 
262144 + 1 = "отправлена с помощью LUA" + "отправлена с помощью файла импорта"
Взаимоисключающие значения
Данный инструмент запрещен для операции шорт
 
Цитата
Незнайка написал:
на общем балансе брокера в моменте количество акций меньше, чем вы хотите продать...

Roman Azarov, возможна такая ситуация, когда у одного клиента на счёте +некоторое количество акций, у другого "-" (продано или стоят в заявках на продажу), в итоге суммарное количество доступных акций у брокера меньше, чем у первого клиента в портфеле? Какая в этом случае будет диагностика?
Данный инструмент запрещен для операции шорт
 
Брокер дал кому-то попользоваться вашими акциями, не?

Цитата
Владимир написал:
Откуда же берётся запрет?
Хм, на общем балансе брокера в моменте количество акций меньше, чем вы хотите продать...
Индекс формирующегося бара.
 
Цитата
s_mike@rambler.ru написал:
И ещё в нескольких случаях.
Огласите весь список, пожалуйста!
Ошибка: указанная транзакция по указанному классу не найдена, Quik 8.11.0.66
 
Обычно, если послать транзакцию за несколько секунд до начала или через несколько секунд после окончания торговой сессии, то будет ошибка от шлюза торговой системы:
"Сейчас эта сессия не идет."

Цитата
Олег написал:
вот с такими данными улетала транзакция фьючерс Si-3.21
12.02.2021;11:30:00;ACTION=NEW_ORDER; TRANS_ID=1612899312; OPERATION=B; QUANTITY=1; PRICE=74366;
Что значит "улетела"?
Цитата
Олег написал:
Указанная транзакция по указанному классу не найдена: "SPBFUT"
Это, вроде, как ошибка самого терминала, транзакция на сервер не отправляется.

Цитата
Evgeniy Karnaukhov написал:
"Статус" будет "не торгуется"
Не бывает такого Статуса торговли инструментом. По крайней мере, ни разу не встречал.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Незнайка написал:
Пока выполняется байткод (в любом потоке) сам QUIK залочен?
Ну да, ваш же тест выше это и подтверждает.
Просто это было не так очевидно в скриптах, где байткод перемежается с си-функциями. Не далеко от QPILE ушли  :what:
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
байткод всегда выполняется под локом
Пока выполняется байткод (в любом потоке) сам QUIK залочен?

Цитата
Anton написал:
Арке надо было только реализовать lua_lock/lua_unlock
А зачем понадобилось их реализовывать?
Ну выполнялись бы потоки параллельно. А то так стопорится скрипт на каждом шаге, переключаясь то на один поток, то на другой.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
Сишные функции - любые, из самого луа, из qlua выполняются без лока
Как можно в этом убедиться?

При вызове, скажем сишной функции из самого lua, сначала ставится lua_lock потом выполняется функция, затем lua_unlock
или в обратном порядке: lua_unlock - выполнение функции - lua_lock?
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Anton написал:
байткод всегда выполняется под локом, а когда надо вызвать сишную функцию, лок снимается и после возврата захватывается снова. Арке надо было только реализовать lua_lock/lua_unlock, все остальное уже готово.
Т.е., весь луа-код, в т.ч. и сишные функции из qlua, не может выполняться одновременно в двух потоках?
Ну и зачем тогда нужно было городить весь этот огород с двумя потоками, если они всё равно не работают параллельно?

Вопрос к разработчикам: какие преимущества дала такая двухпоточная модель работы Lua-скриптов?
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата
Nikolay написал:
почему это должны делать другие.
Вот вам и ответ на ваш вопрос: зачем оно надо.

Ни к чему не призываю, сам эту штуку не ставил. Но кому-то может, и пригодятся реализованные автором средства, которых нет изначально в qlua.
Вы ведь не думаете, что автор предложил исключительно вам двоим  :lol:  опробовать свой продукт?
С таким же успехом можно, пойти, например на форум TSLaba и возмущаться там, зачем мне ваша хрень, я и сам могу тестер написать.  :lol:
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата
Nikolay написал:
При этом у меня уже давно написан dsl, где я даже проще чем у вас создаю формы и реакции.
Можно увидеть ваш dsl?
Лучшие технические требования к оборудованию, Лучшие технические требования к оборудования для работы Quik
 
Цитата
Евгений написал:
Что не так с моим оборудованием что 35 меток в формате jpg на одном графике вызывают остановку остальных?
Открыто 8 вкладок на каждой в среднем по 3 графика с индикаторами.
Если закрыть все графики, кроме того, на котором метки, как работать будет?
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
 
Для начала надо разобраться заполняется ли вообще поле сервером при перестановке заявок. А то брокер, может, не при делах.
Как понять, что скрипт загружен через require?
 
Цитата
Незнайка написал:
Внутри модуля определить, каким образом он был запущен.
Вы же смотрите в скрипте, загружающем модуль.
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
 
Цитата
Roman Azarov написал:
Если Вы наблюдаете у себя описанное ранее в ветке
Вы не наблюдаете?
Хотите сказать брокер косячит?
У снятой заявки не заполняется поле canceled_uid, если заявка снята вскоре после выставления
 
А незаполненный canceled_uid для MOVE_ORDERS это не ошибка?
Как понять, что скрипт загружен через require?
 
Цитата
Egor Zaytsev написал:
что именно нужно
Внутри модуля определить, каким образом он был запущен.
В Lua 5.1 работал такой способ:
Код
if package.loaded[modname] == nil then
  print("Скрипт запущен напрямую")
else
  print("Скрипт загружен через require")
end

В Lua 5.4 внутри самого модуля package.loaded[modname] = nil в любом случае.
Как понять, что скрипт загружен через require?
 
В Lua 5.1 можно было заглянуть в package.loaded[modname].
Если там userdata, то скрипт загружен через require, иначе - запущен сам.
А теперь как?
Вопросы Новичка
 
Цитата
Nikolay написал:
Я использую luacheck

Подскажите настройку, чтоб он не ругался на создание глобальной функции
Цитата
setting non-standard global variable
Вопросы Новичка
 
Цитата
Nikolay написал:
А лучше пользоваться линтерами
Подскажите линтер для lua
getMoneyEx иногда выдает nil., Интересно почему?
 
Цитата
s_mike@rambler.ru написал:
Если же вы получили колбек и исходя из этого факта полезли в таблицу - это эта работа уже является полезной, а не бессмысленной.
Но при этом терминал упаковывает и передаёт нам в колбеке табличку, которую мы всё равно не используем. Или если использовать OnAllTrade() без параметров, то он не упаковывает сделку в табличку?
Опять же вопрос: что выгоднее перенести таблицу со сделкой в main через потокобезопасные функции или вытащить её в main через getItem?
getMoneyEx иногда выдает nil., Интересно почему?
 
Цитата
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 не предлагать
 
Во время клиринга поменяли на 19:05:00
Не обратил внимания, во сколько точно поменяли
Время ММВБ, Servertime не предлагать
 
У всех сегодня параметр "Начало вечерней сессии" показывает 19:00:00 ?
Предложение к разработчикам
 
Второй николз. Меня одного посещает такая мысль?
Время ММВБ, Servertime не предлагать
 
Цитата
Незнайка написал:
Ув. техподдержка, подскажите, как называется этот параметр в QUIK?
Также подскажите, как называются параметры, которые транслируются в потоке FORTS_REFDATA_REPL таблица session
Время ММВБ, Servertime не предлагать
 
Добрый день

Статус инструмента передается в шлюзе в потоке 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
 
Владимир, дружочек, если за 40 лет горе-программист ничему не научился, то это о чём-то говорит.
Вряд ли кто-то уже сможет вбить знания в его тупую башку.
Пациент безнадёжен...
Функции onInit, onStop, onClose
 
Владимир, замечательно.
Теперь если перейти от обыденных примеров к программированию, то тоже самое, какой тип вы в переменную (или ячейку таблицы) положите, тот потом оттуда и достанете.
Для вашего случая
Код
a[i][1][1] = "2"
P[a[i][1][1]] = P["2"]

a[i][1][1] = tonumber("2")
P[a[i][1][1]] = P[2]

Цитата
Владимир написал:
я 40 лет программистом
Цитата
Владимир написал:
Но я ПОНЯТИЯ НЕ ИМЕЮ по каким соображениям она присваивает данные и передаёт аргументы какого-то типа.
Значит, мало практики ещё.
Это вы ещё с вещественными числами мало работали. Когда обнаружите, что 0.1 + 0.2 ~= 0.3 ваш мир перевернётся.
Не представляю, как вы это переживёте, если уже на типах вы сыпитесь.
Функции onInit, onStop, onClose
 
Цитата
Владимир написал:
А если сразу после этого сделать t=""?
А если чай посолить?
Очередность срабатывания OnTransReply, OnOrder, OnTrade
 
?
Очередность срабатывания OnTransReply, OnOrder, OnTrade
 
Цитата
s_mike@rambler.ru написал:
Сервер посылает информацию вам с вполне определённой последовательностью в соответствии со своим внутренним алгоритмом.

Но информация делится на пакеты. Пакеты эти уезжают от сервера в сеть и дальше он ими не управляет. Поэтому первый пакет может уехать к вам через Камчатку, а второй через Химки. И вы запросто можете получить второй пакет раньше первого.

Добрый день.

Допустим, произошли две сделки: #1 и #2.
Возможно ли, что в результате таких "путешествий" пакет со сделкой #2 приехал к клиенту раньше, чем пакет #1 или это не более, чем домыслы?
Как найти количество контрактов которое можно купить на определенную сумму?
 
https://forum.quik.ru/messages/forum10/message47414/topic5519/#message47414
Текущий остаток, входящий остаток
 
Добрый день.
Всегда ли текущий остаток по бумагам и по срочным контрактам равен:
Текущий остаток = Входящий остаток + Куплено - Продано ?

Если был перевод ЦБ, то где это отразится? На входящем остатке?
Если был исполнен срочный контракт, то где это отразится? В сделках?
Расчёт ГО
 
Цитата
Egor Zaytsev написал:
У нас нет доступа к серверу брокера
Как же вы работаете?

Правильнее всё же будет уточнить актуальную формулу расчёта для текущего релиза спектры у сотрудников МБ и исправить у себя.
Расчёт ГО
 
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
По формуле:
Код
ГО = 7240,57 - (45,44 - 44,44) * 7,46714 / 0,01 * (1 + 6 / 100) = 6449,05
Столько же блокируется биржей*.

Продажа по цене 46,44:
В форме ввода заявки: 6662,97
По формуле:
Код
ГО = 7264,32 + (45,44 - 46,44) * 7,46714 / 0,01 * (1 + 6 / 100) = 6472,80
Столько же блокируется биржей*.

* значение Тек. чист. поз. из таблицы Ограничения по клиентским счетам
Расчёт ГО
 
В первом приближении ГО можно рассчитать по формуле:
Покупка:
ГО = ГО_покупателя - (РЦ - Цена_сделки) * Стоимость_шага_цены / Мин_шаг_цены * (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)
 
Какая версия QUIK?
Расчёт ГО
 
Цитата
Egor Zaytsev написал:
Также убедитесь, что у Вас версия рабочего места 8.2 и выше.
Цитата
Egor Zaytsev написал:
1. У Вас должна быть версия не ниже 8.7.1.
Что-то изменилось в расчёте ГО в 8.7.1 по сравнению с 8.2?
Расчёт ГО
 
Egor Zaytsev, то ли я плохой рассказчик, то ли вы... плохой читатель.
Попробуем ещё раз.
Открываем Руководство пользователя QUIK и читаем:
Цитата
Ввод заявок на Срочном рынке FORTS
«Объем ГО» – совокупный размер ГО, который блокируется по заявке исходя из количества контрактов и настроек брокера.
Проверяем, ставим заявку и сравниваем со значением Тек. чист. поз. из таб. Ограничения по клиентским счетам.
В сообщении #17 привёл скрины с реального счёта, не демо. Даже обвёл красненьким, на что обратить внимание.
Видите, циферки не совпадают?
Нулевые значения PRICEMIN и PRICEMAX
 
Цитата
Stanislav Tvorogov написал:
Цитата
Незнайка написал:
Что означают эти параметры на опционах?
Это минимально/максимально возможная ценна опциона при выставлении заявки.

Вы ошибаетесь
Нулевые значения PRICEMIN и PRICEMAX
 
Что означают эти параметры на опционах?
Базовый актив по фьючерсу, Базовый актив по фьючерсу можно ли получить
 
Цитата
Sergey Gorokhov написал:
Эта таблица и так есть в QUIK
Возможно вы про таблицу fut_sess_contents.

В общем, надо от getSecurityInfo("SPBFUT", "GZU0").base_active_seccode = GAZR прийти к GAZP
В таблице fut_vcb есть поле
Цитата
SECCODE с12 Код SECCODE таблицы SECURITIES шлюза ASTS. Значение по умолчанию NULL.

Цитата
Незнайка написал:
Возможно добавить?
Возможно добавить трансляцию таблицы fut_vcb в будущих версиях QUIK?
Базовый актив по фьючерсу, Базовый актив по фьючерсу можно ли получить
 
Из переписки с ТП МБ:
Цитата
в таблице 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 (таблица содержит справочник базовых контрактов для инструментов). Возможно добавить?
Расчёт ГО
 
Egor Zaytsev, какая ещё информация необходима, чтобы начать разбор проблемы "QUIK неверно рассчитывает Объем ГО заявки и, => максимальное возможное количество лотов в заявке" ?
Расчёт ГО
 
nikolz, дружище, ты читать умеешь? Тебе сотрудник ТП русским языком написал:
Цитата
Egor Zaytsev написал:
В форме ввода заявки ГО рассчитывается, оно не "едет"         напрямую из таблицы текущих торгов в форму ввода заявки.
Расчёт ГО
 
Egor Zaytsev,  версия рабочего места 8.6

Цитата
Egor Zaytsev написал:
В форме ввода заявки ГО рассчитывается, оно не "едет"         напрямую из таблицы текущих торгов в форму ввода заявки.
Считаете  по формуле.
У вас сходится ГО, рассчитанное по этой формуле, с тем, что считает квик?
Базовый актив по фьючерсу, Базовый актив по фьючерсу можно ли получить
 
Проще зайти на страницу Основные параметры срочного контракта, взять оттуда ISIN БА и по нему найти код акции в таблице securities.
Или можно составить статическую таблицу соответствий OPTIONBASE кодам акций в скрипте.
Но вопрос был
Цитата
Незнайка написал:
Как из квика получить код этой бумаги


Цитата
Anton написал:
"качаем листинг напрямую с мамбы
Это как?
А можете показать таблицу fut_vcb потока FORTS_FUTINFO_REPL
Может, числовой идентификатор базового контракта base_contract_id можно использовать?
Базовый актив по фьючерсу, Базовый актив по фьючерсу можно ли получить
 
OPTIONBASE возвращает GAZR
Код бумаги GAZP
Страницы: Пред. 1 2 3 4 5 След.
Наверх