order_num или ordernum?

Страницы: 1
RSS
order_num или ordernum?
 
OnOrder, две пары повторяющихся полей:

price и value
order_num и ordernum

OnTrade, три пары повторяющихся полей:

price и value
trade_num и tradenum
order_num и ordernum

OnTransReply, поля не дублируются, но видимо раньше дублировались, потому что есть ошибка в примере test_trans.lua из документации по QLua (https://arqatech.com/upload/iblock/194/quik_lua.zip):

ordernum вместо order_num, из-за чего скрипт не работает.
Хотя даже при исправлении этой ошибки он всё равно не работает, так как там ещё две ошибки в нём.

То-есть, во всей документации и примерах путаница с именами order_num/ordernum, trade_num/tradenum и price/value. Так какие имена всё-таки использовать?
 
С price и value напутал, это цена и объём... у меня на 1 лот одинаковые выдавала. Но по другим вопрос остаётся. Имена с подчёркиваниями считаются новыми, а без — устаревшими?
 
Цитата
Suntor написал:
Но по другим вопрос остаётся. Имена с подчёркиваниями считаются новыми, а без — устаревшими?
Добрый день. Имена параметров с символом подчеркивания являются правильными. Если Вы посмотрите справку по QLua (на данный момент последняя версия терминала 7.16), то увидите, что старые параметры ordernum и tradenum там больше не описаны, но эти параметры оставлены для обратной совместимости, чтобы старые пользовательские скрипты не начали выдавать ошибки. Старые названия параметров в будущем будут удаляться, поэтому их использование при написании новых скриптов не рекомендуется.
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
 
Цитата
Nikolay Pavlov написал:
Добрый день. Имена параметров с символом подчеркивания являются правильными. Если Вы посмотрите справку по QLua (на данный момент последняя версия терминала 7.16), то увидите, что старые параметры ordernum и tradenum там больше не описаны, но эти параметры оставлены для обратной совместимости, чтобы старые пользовательские скрипты не начали выдавать ошибки. Старые названия параметров в будущем будут удаляться, поэтому их использование при написании новых скриптов не рекомендуется.
Спасибо за разъяснения. На форумах когда искал от тех. поддержки Quik нашёл сообщения с прямо противоположным утверждением. Поэтому отдельно спросил.

Ещё вопрос по обновлениям. Сравнил документацию 7.12 и 7.16, и видно, что добавились новые параметры. Например в OnTrade много новых параметров.
Приход этих новых параметров зависит от версии рабочего места Quik? У меня стоит версия 7.14.1.7 от сентября 2017 года. А документация последняя на версию 7.16 с этими новыми параметрами.
Я хотел обновиться, но Quik пишет что «Версия программы на сервере не изменилась».

Эти новые параметры из документации 7.16 будут приходить в Quik 7.14.1.7??? Или нужно ждать, пока брокер обновит версию на своём сервере?
 
Suntor,
Нужно обновить терминал QUIK
Категорически не рекомендуем использовать разные версии документации и терминала.
Т.к. обновление документации совершенно не гарантирует появление нового функционала.
 
Цитата
Sergey Gorokhov написал:
Suntor  ,
Нужно обновить терминал QUIK
Категорически не рекомендуем использовать разные версии документации и терминала.
Т.к. обновление документации совершенно не гарантирует появление нового функционала.
А можно ли так делать?...
Если я обновлю терминал без участия брокера, мне во-первых придётся перетаскивать туда брокерские настройки, и как вообще это грамотно сделать такую операцию?
А во-вторых, если у меня версия терминала будет новее версии сервера, не глюканёт ли такое соединение?
Ну и в-третьих, что это даст в принципе? Сервер то остаётся старым, и если он посылает старый набор параметров, то обновление клиента само по себе ничего не даст...
 
Цитата
А можно ли так делать?
... Один мой брокер обычно затягивает с обновлением версии сервера.
Мои самостоятельные попытки обновить версию терминала (беру риск на себя) отчасти основаны на своем понимании внесенных обновлений.
Все ли обновления описаны или что-то существенное опущено, правильно ли я их интерпретировал и осознал степень локальности - это риск.

Исправления локальных багов и декоративные бантики - можно попробовать. Иногда прокатывает.
При серьезных отличиях  версий терминала и сервера соединение может даже не установиться, получите соответствующую диагностику о несовместимости.
Между этими крайностями - дистанция ... .

Насколько аккуратны и последовательны разработчики в этом контроле - наверное, как и во всем остальном.
Но послушать их концепцию по этому вопросу интересно.

И частный вопрос - насколько корректна ручная замена всего, что можно заменить или добавить, взяв из новой версии терминала? Есть ли подводные камни?  
 
Suntor,
Если у брокера будет старый сервер и Вы попытаетесь подключиться новым терминалом, то терминал не подключится с ошибкой вида "неверная версия протокола". так что если будете самостоятельно обновлять терминал, сделайте на всякий случай резервную копию папки с терминалом.
Но правильней всего, попросить брокера выложить обновление.
 
Цитата
Sergey Gorokhov написал:
Suntor  ,
Если у брокера будет старый сервер и Вы попытаетесь подключиться новым терминалом, то терминал не подключится с ошибкой вида "неверная версия протокола". так что если будете самостоятельно обновлять терминал, сделайте на всякий случай резервную копию папки с терминалом.
Но правильней всего, попросить брокера выложить обновление.
Ну то-есть, нельзя... короче... самому обновляться...
 
конечно можно и нужно обновляться самому. просто копируете папку quik в папку quik_new ( разумеется название произвольное, я обычно в конец добавляю номер версии 7.16.1, например), запускаетесь из новой папки и пробуете подсоединиться. обычно это не получается с первого раза. у меня, например Открывашка - не все серверы пускают 7.16. ну что поделать - работаю на тех, которые пускают.  чуть позже, когда брокер обновит серверную часть переименовываем папку quik -> quik_old.7.14 (к примеру) а "новый" переименовываем в quik.
Пы.Сы. как я Вам в другом посте написал, то что квик вот такой "переносимый независимый конструктор", который вообще не надо инсталировать - это благо. будет хуже если он будет непереносимый и зависимый от брокера, шмокера и прочьего настроения.
 
Цитата
Алексей Дуванов написал:
конечно можно и нужно обновляться самому. просто копируете папку quik в папку quik_new ( разумеется название произвольное, я обычно в конец добавляю номер версии 7.16.1, например), запускаетесь из новой папки и пробуете подсоединиться. обычно это не получается с первого раза. у меня, например Открывашка - не все серверы пускают 7.16. ну что поделать - работаю на тех, которые пускают.  чуть позже, когда брокер обновит серверную часть переименовываем папку quik -> quik_old.7.14 (к примеру) а "новый" переименовываем в quik.
Пы.Сы. как я Вам в другом посте написал, то что квик вот такой "переносимый независимый конструктор", который вообще не надо инсталировать - это благо. будет хуже если он будет непереносимый и зависимый от брокера, шмокера и прочьего настроения.
Да это всё понятно... экспериментировать с запуском и обновлениями можно с чем угодно... но речь шла про то, как по факту обстоит дело с совместимостью новых клиентских и старых серверных версий. А по факту её нет.

Ну представьте ситуацию, вы скачиваете новую версию браузера, устанавливаете... заходите на какой-нибудь сайт в Интернете, а браузер вам пишет: "неверная версия протокола"...  :smile:
 
Подскажите, пожалуйста - поле trade_num в функции обратного вызова "OnTrade" на сколько "уникально"? Т.е. если мне нужно в своем скрипте отслеживать - обработал ли я новую сделку, я запоминаю "Номер сделки в торговой системе trade_num" в фифо. Далее при вызове функции "OnTrade" я смотрю - нет ли уже записи с данным номером сделки. Если номер уже есть - значит я обработал данную сделку, нет - сделка является новой. Делать это необходимо, т.к. по каждой сделке "OnTrade" вызывается по нескольку раз (у меня по три раза).
Очевидно, что рано или поздно номера сделок будут повторяться и мой вопрос в том, когда мне вытирать из фифо(и, соответственно, каким объемом фифо закладываться) номер обработанной сделки? Через минуту/час...месяц/сессию? Из простых соображений ясно, что если за полсекунды пришло несколько "OnTrade" с одним trade_num, то это одна и та же сделка, если через месяц -то, наверное, это разные сделки:)
 
ivan,
Номера сделок не уникальны, и дело совсем не в сроках, а в принципе.
Разные биржи ничего не знают о номерах сделок друг друга.
На срочном рынке есть вечерняя сессия которая повторно транслируется на утро следующего дня.
Еще существуют так называемые кросс сделки, когда торгуешь сам с собой, а значит будет две сделки отличающиеся только направлением.
На некоторых внебиржевых или зарубежных рынках, вообще нет нумерации и каждый день сделки начинают нумерацию с 1.
Поэтому, мы считаем что уникальность сделки определяется не по номеру, а совокупно по четырем параметрам:
Номер сделки
Направленность сделки (покупка или продажа)
Код класса инструментов
Дата торговой сессии (не путать с датой сделки)

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

Что касается именно "фифо", то все зависит от конкретного рынка.
Если мы говорим про наш фондовый и срочный рынок МБ, то там нумерация не сбрасывается уже десятки лет и врядли в ближайшие 10 сбросится, а значит нет необходимости об этом беспокоиться.
 
Спасибо за ваш подробный ответ, а подскажите еще вот что: можно ли как-то из параметров таблицы сделок понять - вечерняя сессия или нет? Или только смотреть на время сделки и если она с 19:00 до 00:00, то вечерка?
Кстати, а если сделка совершена в вечернюю сессию перед большими праздниками, то дата торговой сессии будет соответствовать ближайшему следующему торговому дню, даже если это будет через неделю?
 
И еще не понятно, как получить дату торговой сессии. Если у меня нет календаря торгов, то как мне узнать, какой день, после дня с вечерней сделкой будет следующим? Т.е. если сделка в четв. вечером, то может ближайший клиринг будет в пятницу, а может, если это праздник, в понедельник...
В таблице параметров сделки есть поле "settle_date Дата расчетов" - это не дата ли торговой сессии? Демоквик возвращает "0".
 
Цитата
ivan написал:
Спасибо за ваш подробный ответ, а подскажите еще вот что: можно ли как-то из параметров таблицы сделок понять - вечерняя сессия или нет? Или только смотреть на время сделки и если она с 19:00 до 00:00, то вечерка?
Добрый день.

Как сказал Сергей выше, можно определять по дате торговой сессии, если она отличается от даты сделки, то это сделки вечерней сессии, а не новая сделка.

Цитата
Кстати, а если сделка совершена в вечернюю сессию перед большими праздниками, то дата торговой сессии будет соответствовать ближайшему следующему торговому дню, даже если это будет через неделю?
Дата торговой сессии будет та, когда была заключена сделка.
 
Цитата
Egor Zaytsev написал:
Как сказал Сергей выше, можно определять по дате торговой сессии, если  она отличается от даты сделки, то это сделки вечерней сессии, а не новая  сделка.  
Это понял, спасибо. А откуда можно вытянуть дату сессии?
 
Можно из таблицы getInfoParam, параметр TRADEDATE

STRING getInfoParam (STRING param_name)
TRADEDATE Дата торгов
Страницы: 1
Читают тему
Наверх