1

Тема: Как получить параметры из таблиц лимитов по бумагам и заявок?

Ещё такой вопрос. Я сейчас уже почти дописал робота, оттестировал его на исторических данных, сейчас тестирую на реальных торгах. Вылавливаю мелкие глюки. В том числе дописываю мелкие фичи. В том числе нужно написать восстановление состояния робота после перезапуска, после сбоев и прочих неожиданностей в виде отключения света, разрыва коннекта... В общем то для реализации мне нужно несколько вещей:
1. Получить данные по количеству и средней цене бумаги из таблицы лимитов по бумагам. Имена полей этой таблицы со скрипом здесь же на форуме нашел. Работает. Но! Вообще где взять эти описания? Вообще нигде не могу найти... Просто жесть, вроде все до безобразия просто, но найти тот же depo_limits или currentbal или wa_position_price... Такое ощущение что это сверх секретная инфа...
2. Таблица заявок. Все что я по ней нашел, так только что она называется orders. Количество заявок получил, но надо из нее выбрать заявки по определенному инструменту, их статус. Это база. Неплохо бы вытащить из нее и другие поля, т.к. цена может тоже понадобиться... Это реально выдернуть? В принципе зная имена все это выдернуть не должно составить проблем.

2

Re: Как получить параметры из таблиц лимитов по бумагам и заявок?

1. Получить данные по количеству и средней цене бумаги из таблицы лимитов по бумагам.

См. функции getDepo и getDepoEx

2. Таблица заявок.

В папке с терминалом QUIK есть файлик QLUA.chm
Там все это написано smile

Заявки
Параметр     Тип     Описание
order_num     NUMBER     Номер заявки в торговой системе
flags     NUMBER     Набор битовых флагов
brokerref     STRING     Комментарий, обычно: <код клиента>/<номер поручения>
userid     STRING     Идентификатор трейдера
firmid     STRING     Идентификатор фирмы
account     STRING     Торговый счет
price     NUMBER     Цена
qty     NUMBER     Количество в лотах
balance     NUMBER     Остаток
value     NUMBER     Объем в денежных средствах
accruedint     NUMBER     Накопленный купонный доход
yield     NUMBER     Доходность
trans_id     NUMBER     Идентификатор транзакции
client_code     STRING     Код клиента
price2     NUMBER     Цена выкупа
settlecode     STRING     Код расчетов
uid     NUMBER     Идентификатор пользователя
canceled_uid     NUMBER     Идентификатор пользователя, снявшего заявку
exchange_code     STRING     Код биржи в торговой системе
activation_time     NUMBER     Время активации
linkedorder     NUMBER     Номер заявки в торговой системе
expiry     NUMBER     Дата окончания срока действия заявки
sec_code     STRING     Код бумаги заявки
class_code     STRING     Код класса заявки
datetime     TABLE     Дата и время
withdraw_datetime     TABLE     Дата и время снятия заявки
bank_acc_id     STRING     Идентификатор расчетного счета/кода в клиринговой организации
value_entry_type     NUMBER     Способ указания объема заявки. Возможные значения: «0» – по количеству, «1» – по объему
repoterm     NUMBER     Срок РЕПО, в календарных днях
repovalue     NUMBER     Сумма РЕПО на текущую дату. Отображается с точностью 2 знака
repo2value     NUMBER     Объём сделки выкупа РЕПО. Отображается с точностью 2 знака
repo_value_balance     NUMBER     Остаток суммы РЕПО за вычетом суммы привлеченных или предоставленных по сделке РЕПО денежных средств в неисполненной части заявки, по состоянию на текущую дату. Отображается с точностью 2 знака
start_discount     NUMBER     Начальный дисконт, в %
reject_reason     STRING     Причина отклонения заявки брокером
ext_order_flags     NUMBER     Битовое поле для получения специфических параметров с западных площадок
min_qty     NUMBER     Минимально допустимое количество, которое можно указать в заявке по данному инструменту. Если имеет значение 0, значит ограничение по количеству не задано
exec_type     NUMBER     Тип исполнения заявки. Возможные значения: «0» – «Значение не указано»; «1» – «Немедленно или отклонить»; «2» – «Поставить в очередь»; «3» – «Снять остаток»; «4» – «До снятия»; «5» – «До даты»; «6» – «В течение сессии»; «7» – «Открытие»; «8» – «Закрытие»; «9» – «Кросс»; «11» – «До следующей сессии»; «13» – «До отключения»; «15» – «До времени»; «16» –«Следующий аукцион»
side_qualifier     NUMBER     Поле для получения параметров по западным площадкам. Если имеет значение «0», значит значение не задано
acnt_type     NUMBER     Поле для получения параметров по западным площадкам. Если имеет значение «0», значит значение не задано
capacity     NUMBER     Поле для получения параметров по западным площадкам. Если имеет значение «0», значит значение не задано
passive_only_order     NUMBER     Поле для получения параметров по западным площадкам. Если имеет значение «0», значит значение не задано
visible     NUMBER     Видимое количество. Параметр айсберг-заявок, для обычных заявок выводится значение: «0».

3

Re: Как получить параметры из таблиц лимитов по бумагам и заявок?

Да, файл есть. И даже параметры есть, а вот как их сопоставить с таблицей? Т.е. толку от них, что они есть, что их нет, если я не знаю имени этой таблицы? Вот смотрю я на раздел с названием "сделки для исполнения"... Есть описания полей, а имя таблицы нужно угадать?

4

Re: Как получить параметры из таблиц лимитов по бумагам и заявок?

dark184 пишет:

Да, файл есть. И даже параметры есть, а вот как их сопоставить с таблицей? Т.е. толку от них, что они есть, что их нет, если я не знаю имени этой таблицы?

Не совсем понимаю в чем именно затруднение.

Открываем QLUA.chm.
Там идем в раздел "Функции для обращения к строкам произвольных таблиц", кликаем на "Таблицы, используемые в функциях «getItem» и «getNumberOf»"

https://quik2dde.ru/static-img/381/qhelp1.png

В открывшемся списке находим "Сделки для исполнения".

https://quik2dde.ru/static-img/381/qhelp2.png

Сразу видим название таблицы, которое надо запросить: "neg_trades".

Кликаем на "Сделки для исполнения" - попадаем в список доступных параметров и их имен для данной таблицы.

https://quik2dde.ru/static-img/381/qhelp3.png

Это то, что вы спрашивали? или затруднения в чем-то другом?

5 (2022-08-29 12:23:41 отредактировано dark184)

Re: Как получить параметры из таблиц лимитов по бумагам и заявок?

Да, именно то. У меня вопрос, а они ещё дальше не могли это все запихать, ну чтобы вообще невозможно было найти, желательно ещё в какой нибудь отдельный файл? В любом случае спасибо, а то ищешь в самом логично разделе "структуры данных" и нифига. Структура есть, нет имени таблицы

6

Re: Как получить параметры из таблиц лимитов по бумагам и заявок?

Маленько да, маленько не хватает "кросс-ссылок" из структур в функции, в которых они используются.
Но все же описано, алгоритм поиска вы теперь знаете smile

7

Re: Как получить параметры из таблиц лимитов по бумагам и заявок?

Теперь точно не забуду, месяц мучался. Вот сегодня уже написал и отладил восстановление уникального номера транзакции, читаю и смотрю что в портфеле и что покупается и продается, с битовыми флагами статуса заявки разобрался... Вообщем дело поперло smile Скоро и сбои будут не страшны, продумываю алгоритм восстановления состояния робота...