Главная Книги - Разные Экспобанк. ПО QUIK Руководство пользователя (2024-2025 год)
поиск по сайту правообладателям
|
|
содержание .. 7 8 9 10 ..
Заполнение полей окна ввода заявки при вводе заявки-отчета общим способом выполнения
операций (звездочкой (*) отмечены обязательные поля):
1. «Инструмент» - идентификатор финансового инструмента.
2. «Код расчетов» - выбор из списка кода расчетов по сделке (UPTO05, UPTO30, OVER30). Код
расчетов зависит от количества дней, прошедших с момента заключения внебиржевой
сделки.
3. «Операция» - направление операции «Покупка» / «Продажа».
4. «Цена» - цена за одну ценную бумагу.
5. «Количество» - количество бумаг в заявке, в лотах.
6. «Лот» - количество бумаг в одном лоте (для информации).
7. «Код клиента» - код клиента, указанный в заявке.
8. «Поручение» - текстовый комментарий.
9. «От имени и за счет» - лицо, от имени которого и за чей счет регистрируется сделка.
Возможные значения:
- «От своего имени, за свой счет» - сделка регистрируется от имени брокера и за его
счет;
- «От своего имени, за счет клиента» - сделка регистрируется от имени брокера
и за счет клиента;
- «От своего имени, за счет доверительного управления» - сделка регистрируется
от имени брокера и за счет лица, выступающего в качестве доверительного
управляющего ценными бумагами клиента;
- «От имени клиента, за счет клиента» - внебиржевая сделка регистрируется от имени
клиента и за его счет.
10.«Код валюты» - код валюты расчетов, например «SUR» - рубли РФ, «USD» - доллары США.
11.«Дата исполнения» - дата исполнения сделки.
12.«Крупная сделка» - признак крупной сделки.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
57
Поля «Количество», «Код клиента», «Поручение» могут быть заполнены
автоматически. Подробнее см. п. 5.17 Раздела 5 «Торговые операции
клиента».
Нажатием кнопки «Ввести» сделка регистрируется в торговой системе. Нажатие кнопки «Отмена»
закрывает окно без регистрации сделки.
Зарегистрированная внебиржевая сделка, принятая торговой системой, отображается в Таблице
заявок на внебиржевые сделки.
7.11.2
Отмена внебиржевой сделки
Операция применяется для снятия введенных ранее внебиржевых сделок.
Снятие внебиржевой сделки может быть произведено одним из следующих способов:
1. В Таблице заявок на внебиржевые сделки (снимаемая сделка должна быть выбрана):
- Выбором пункта контекстного меню «Снять заявку на внебиржевую сделку» или
пункта меню программы Действия/Снять заявку на внебиржевую сделку;
- Нажатием кнопки на панели инструментов;
- Нажатием клавиш «Ctrl»+«D» на снимаемой заявке.
2. Общим способом выполнения транзакций - нажатием кнопки на панели инструментов,
выбором соответствующего класса («Внебиржевые сделки») и операции «Отмена
внебиржевой сделки». Эта же операция может быть выполнена горячей клавишей «Ctrl»+«T».
В открывшемся окне укажите параметры (звездочкой (*) отмечены обязательные поля):
1. «Сделка» - идентификационный номер сделки в Торговой Системе.
2. «Участник» - идентификатор трейдера.
3. «Фирма» - выбор из списка идентификатора фирмы.
4. «К/П» - направленность сделки (Купля/Продажа).
5. «Инструмент» - выбор из списка идентификатора финансового инструмента.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
58
7.12 Маклерская заявка
7.12.1
Назначение
Маклерская заявка - специальный вид транзакций, используемый в случае, когда один сервер
QUIK используется несколькими участниками торгов для подключения к торговым системам
бирж. Маклерская заявка позволяет указать код участника торгов непосредственно при вводе
поручений из числа брокеров, использующих данный сервер QUIK.
Работа с маклерскими заявками требует наличия на сервере специальной
лицензии на использование мультиброкерских рабочих мест и настройки прав
пользователя для работы с ними.
Открытие окна «Ввод маклерской заявки» осуществляется:
Из Таблицы текущих торгов, Таблицы котировок, Таблицы заявок, Таблицы сделок Таблицы
«Купить/продать» выполнением следующих действий:
• Нажатием кнопки на панели инструментов;
• Двойным нажатием левой кнопки мыши. Из Таблицы текущих торгов подать заявку таким
образом не получится, так как при выполнении этого действия откроется Окно котировок;
• Нажатием клавиши «F2»;
• Выбором в таблице пункта контекстного меню «Новая заявка» или пункта меню программы
Действия/Новая заявка;
• Использованием Общего способа выполнения транзакций с выбором операции «Ввод
маклерской заявки».
7.12.2
Ввод маклерской заявки
Окно в зависимости от настроек может иметь компактную (слева) или полную (справа) форму.
Вид окна переключается нажатием кнопки «>>». Формы оптимизированы для легкого
и быстрого ввода параметров и компактного расположения на экране.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
59
Заполнение формы заявки:
1. «Организация» - идентификатор фирмы-участника торгов, от имени которой подана заявка.
Заполняется автоматически, если указан «Код клиента».
2. «Инструмент» - выбор инструмента из списка ценных бумаг данного класса. Чтобы найти
инструмент в списке, наберите с клавиатуры первые буквы его наименования (контекстный
поиск в выпадающих списках включается в меню Система/Настройки/Основные настройки…,
раздел «Программа»).
3. «Торговый счет» - код торгового счета, в отношении которого подается заявка (регистр
символов имеет значение). Если за пользователем закреплен один счет, то поле заполнится
автоматически. Если доступны несколько счетов, потребуется выбрать нужный счет из
списка или воспользоваться настройкой «Указывать счет депо по коду клиента» (см. п. 5.13.2
Раздела 5 «Торговые операции клиента»). О настройке последовательности счетов в списке
подробнее см. п. 5.14 Раздела 5 «Торговые операции клиента».
4. «Покупка» / «Продажа» - направление операции.
5. «Цена» - цена заявки, за одну единицу финансового инструмента.
При установке флажка в поле «Рыночная» заявка выставляется по рыночной цене. При
отключении признака «Рыночная» в поле автоматически подставляется значение цены,
указанное в данном поле до включения признака «Рыночная». При смене инструмента
запомненное значение сбрасывается.
При выборе в рамке «Ввод цены» значения «По средневзвешенной цене» поле «Цена»
и признак «Рыночная» становятся неактивными (серыми).
6. «Количество» - количество ценных бумаг в заявке. Поле недоступно для заполнения при
подаче рыночной заявки на покупку на аукцион периода закрытия.
7. «Код клиента» - идентификатор клиента в системе QUIK.
8. «Поручение» - номер поручения.
Дополнительные параметры:
9. «Ввод цены»:
- Выбор значения в поле «Цена»:
«По цене» - исполнение заявки при наличии в торговой системе встречных
заявок с аналогичной ценой исполнения.
«По доходности» - исполнение при наличии встречных заявок с аналогичной
доходностью, рассчитанной по цене заявки (для облигаций).
«По средневзвешенной цене» - в качестве цены принимается
средневзвешенная цена за текущую торговую сессию.
Как правило, почти всегда используется вариант «По цене», установленный в форме
по умолчанию. Если для данного класса или типа заявки выбор невозможен, варианты
становятся неактивными (серыми).
- Выбор цены исполнения заявки:
Руководство пользователя QUIK.
Раздел 7: Операции брокера
60
«По одной цене» - заявка исполняется по одной цене.
«По разным ценам» - заявка может быть исполнена по разным ценам.
10.«Объем и комиссия» - стоимость сделки в денежном выражении. Поле недоступно для
заполнения при подаче рыночной заявки на продажу на аукцион периода закрытия. Размер
комиссии рассчитывается автоматически и выводится в поле справа.
11.«Задать количество» - рассчитать значения полей «Объем» и «Комиссия».
12.«Условие исполнения» - порядок исполнения заявки: «Поставить в очередь», «Немедленно
или отклонить», «Снять остаток», «Аукцион периода закрытия».
Поля «Количество», «Код клиента», «Поручение» могут быть заполнены
автоматически. Подробнее см. п. 5.17 Раздела 5 «Торговые операции
клиента».
7.12.3
Ввод маклерских заявок для классов Срочного рынка FORTS
Окно в зависимости от настроек может иметь компактную (слева) или полную (справа) форму.
Вид окна переключается нажатием кнопки «>>». Формы оптимизированы для легкого
и быстрого ввода параметров и компактного расположения на экране.
Форма ввода маклерской заявки для класса «Опционы FORTS»:
Форма ввода маклерской заявки для класса «Фьючерсы FORTS»:
Руководство пользователя QUIK.
Раздел 7: Операции брокера
61
Заполнение формы заявки:
1. «Организация» - идентификатор фирмы-участника торгов, от имени которой подана заявка.
Заполняется автоматически, если указан «Торговый счет».
2. «Инструмент» - выбор инструмента из списка ценных бумаг данного класса. Чтобы найти
инструмент в списке, наберите с клавиатуры первые буквы его наименования (контекстный
поиск в выпадающих списках включается в меню Система/Настройки/Основные настройки…,
раздел «Программа»).
3. «Торговый счет» - код торгового счета, в отношении которого подается заявка (регистр
символов имеет значение). Если за пользователем закреплен один счет, то поле заполнится
автоматически. Если доступны несколько счетов, потребуется выбрать нужный счет из
списка или воспользоваться настройкой «Указывать счет депо по коду клиента» (см. п. 5.13.2
Раздела 5 «Торговые операции клиента»). О настройке последовательности счетов в списке
подробнее см. п. 5.14 Раздела 5 «Торговые операции клиента».
4. «Покупка» / «Продажа» - направление операции.
5. «Цена» - цена заявки, за одну единицу финансового инструмента.
При установке флажка в поле «Рыночная» заявка выставляется по рыночной цене. При
отключении признака «Рыночная» в поле автоматически подставляется значение цены,
указанное в данном поле до включения признака «Рыночная». При смене инструмента
запомненное значение сбрасывается.
6. «Кол-во» - количество ценных бумаг в заявке.
7. «Код Клиента» - идентификатор клиента в системе QUIK.
8. «Поручение» - номер поручения.
Дополнительные параметры:
9. «Условие исполнения» - порядок исполнения заявки: «Поставить в очередь», «Немедленно
или отклонить», «Снять остаток».
10.«Переносить заявку» - признак выставления заявки с условием исполнения до даты,
указанной пользователем.
При установленном признаке поле для выбора даты экспирации заявки становится
доступным для редактирования.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
62
11.«Проверять клиентский лимит» - при установленном признаке производится проверка
лимитов клиента.
12.«Объем» - оценка заявки в денежном выражении. Позволяет рассчитать «Кол-во» бумаг
в заявке по известной сумме денег. Для этого нужно ввести в поле «Объем» сумму денежных
средств и нажать кнопку «Задать кол-во». При этом в поле «Кол-во» будет введено число,
полученное в результате пересчета и округленное вниз до ближайшего целого, а в поле
«Объем» - денежная оценка заявки при данном «Кол-ве».
Объем заявки рассчитывается по формуле:
«Объем» = «Количество» * «Стоимость шага цены» * («Цена» / «Размер шага цены»)
13.«Объем ГО» - совокупный размер ГО, который будет заблокирован по заявке. Объем ГО
рассчитывается по формуле:
«Объем ГО» = «Количество контрактов» * «ГО* покупателя / продавца»)
(*) Для опционов в случае продажи в качестве гарантийного обеспечения
учитывается параметр «БГОНП».
14.«Проверять диапазон цен» - если флажок включен, то цена заявки проверяется торговой
системой на соответствие диапазону допустимых значений цены по этому инструменту.
Признак доступен только для класса «Опционы FORTS».
Поля «Кол-во», «Код Клиента», «Поручение» могут быть заполнены
автоматически. Подробнее см. п. 5.17 Раздела 5 «Торговые операции
клиента».
7.12.4
Снятие и замена маклерской заявки
Операции снятия и замены маклерской заявки выполняются из Таблицы заявок и аналогичны
действиям над обычными заявками.
7.13 Маклерская стоп-заявка
7.13.1
Назначение
Маклерская стоп-заявка - специальный вид стоп-заявки, используемый в случае, когда один
сервер QUIK используется несколькими участниками торгов для подключения к торговым
системам бирж. Маклерская стоп-заявка позволяет указать код участника торгов
непосредственно при вводе поручений из числа брокеров, использующих данный сервер QUIK.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
63
Работа с маклерскими стоп-заявками требует наличия на сервере специальной
лицензии на использование мультиброкерских рабочих мест и настройки
маклерских прав пользователя для работы с ними.
Открытие окна «Ввод стоп-заявки маклером» осуществляется:
Из Таблицы текущих торгов, Таблицы котировок, Таблицы заявок, Таблицы стоп-заявок,
Таблицы сделок, Таблицы обезличенных сделок, Кармана транзакций выполнением следующих
действий:
• Нажатием кнопки на панели инструментов;
• Двойным нажатием левой кнопки мыши в «Таблице стоп-заявок»;
• Нажатием клавиши «F6»;
• Выбором в таблице пункта контекстного меню «Новая стоп-заявка» или пункта меню
программы Действия/Новая стоп-заявка;
• Использованием Общего способа выполнения транзакций с выбором операции
«Маклерская стоп-заявка».
7.13.2
Ввод маклерской стоп-заявки
С помощью формы ввода маклерской стоп-заявки можно формировать стоп-заявки разных
типов (описание типов стоп-заявок см. п. 5.5.2 Раздела 5 «Торговые операции клиента»).
Дополнительные условия заявки отображаются в расширенной форме, вызываемой нажатием
кнопки «Больше >>» или выбором типа стоп-заявки, для которой предназначены эти
дополнительные условия.
Форма ввода маклерской стоп-заявки содержит следующие параметры:
1. «Организация» - идентификатор фирмы-участника торгов, от имени которой подана заявка.
Для срочного рынка заполняется автоматически, если указан «Торговый счет». Для спот-
рынка заполняется автоматически, если указан «Код клиента».
2. «Тип стоп-заявки» - выбор одного из возможных типов поручения. Делает доступным
особые поля, относящиеся к определенному типу стоп-заявки. При необходимости окно
ввода заявки принимает расширенную форму.
3. «Срок действия». Если выбрано значение «сегодня», то поручение действительно до конца
текущего дня, иначе поручение действительно до даты, выбранной в поле «по…», или до
отмены поручения, если выбрано значение «до отмены».
Стоп-заявки «Со связанной заявкой» действительны только в течение
текущей торговой сессии.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
64
4.
«Время действия заявки» - период времени, в течение которого проверяются условия стоп-
заявки. Параметр поручений типа «Тэйк-профит и стоп-лимит». Если флажок отключен,
то параметр не используется. При включенном флажке необходимо указать в поле «с…» -
время начала действия стоп-заявки, а в поле «до…» - время окончания.
1. Параметр «Время действия заявки» определяет только интервал времени,
в течение которого проверяется условие активации стоп-заявки. Если заявка
активировалась, то проверка времени действия прекращается. Например,
если для заявки типа «Тэйк-профит и стоп-лимит» цена пробила уровень
тэйк-профит (заявка сработала, начался расчет минимума/максимума
цены), но заявка не исполнилась до окончания заданного интервала
времени внутри дня, то расчет максимума/ минимума цены
не прекращается по истечении заданного периода времени.
2. Если значения времени «С…» и «До…» совпадают, то считается, что задан
интервал с указанного времени текущего дня, до аналогичного времени
следующего дня. Если значение «До…» строго больше времени «С…»,
то время действия проверяется в течение текущего дня.
3. При включенной настройке «Показывать дату и время торговых данных
с учетом локальной временной зоны» (подробнее см. п. 2.10.1 Раздела 2
«Основные принципы работы с программой») значение параметра «Время
действия заявки» указывается с учетом временной зоны компьютера,
на котором запущен терминал QUIK.
5.
«Инструмент» - выбор инструмента из списка ценных бумаг данного класса. Чтобы найти
инструмент в списке, наберите с клавиатуры первые буквы его наименования (контекстный
Руководство пользователя QUIK.
Раздел 7: Операции брокера
65
поиск в выпадающих списках включается в меню Система/Настройки/Основные настройки…,
раздел «Программа»).
6.
«Торговый счет» - код торгового счета, в отношении которого подается заявка (регистр
символов имеет значение). Если за пользователем закреплен один счет, то поле заполнится
автоматически. Если доступны несколько счетов, потребуется выбрать нужный счет из
списка или воспользоваться настройкой «Указывать счет депо по коду клиента» (см. п. 5.13.2
Раздела 5 «Торговые операции клиента»). О настройке последовательности счетов в списке
подробнее см. п. 5.14 Раздела 5 «Торговые операции клиента».
7.
«Условие активации заявки» - настройка условий активации заявки:
- «Операция» - выбор направления заявки: «Покупка» или «Продажа».
- Выбор контролируемого условия стоп-цены по отношению к цене последней сделки
по инструменту:
Для заявок типа «Стоп-цена по другой бумаге» условие имеет вид: «Если цена
<=» ( или «>=») и означает исполнение заявки, если цена последней сделки
по другому инструменту пересечет указанное значение;
Для заявок типов «Стоп-лимит», «Со связ. заявкой» условие имеет вид «стоп-
лимит, если цена <=» ( или «>=») и означает выставление лимитированной заявки
в случае, если цена последней сделки пересекла указанное значение;
Для заявок типа «Тэйк-профит» условие имеет вид «тэйк-профит, если цена <=»
(или «>=») и означает начало расчета минимума (максимума) цены последней
сделки, если она пересекла указанное значение;
Для заявок типа «Тэйк-профит и стоп-лимит» доступны условия 2) и 3), причем
любое из них может не заполняться.
Значение стоп-цены указывается в окне справа от выбора условия.
8.
«Цена» - цена лимитированной заявки, выставляемой в торговую систему при наступлении
условия «Стоп-лимит», за одну единицу финансового инструмента.
При включении признака «По рыночной цене» значение поля устанавливается в «0». При
отключении признака «По рыночной цене» в поле автоматически подставляется значение
цены, указанное в данном поле до включения признака «По рыночной цене». При смене
инструмента запомненное значение сбрасывается.
9.
«По рыночной цене» - признак исполнения стоп-заявки по рыночной цене. Параметр заявок
типа «Тэйк-профит и стоп-лимит».
В некоторых режимах торгов использование рыночных заявок
не предусмотрено.
10.«Кол-во (лот …)» - количество бумаг, выраженное в лотах. В скобках указано количество
единиц выбранного инструмента бумаг в одном лоте.
11.«max» - максимальное возможное количество лотов в стоп-заявке, рассчитанное из
величины доступных средств клиента с учетом всех комиссий. Нажатием на кнопку
указанное максимальное значение вводится в поле «Кол-во». Поле отображается при
Руководство пользователя QUIK.
Раздел 7: Операции брокера
66
включенном в настройках флажке «Рассчитывать доступное количество» (см. п. 5.13.2
Раздела 5 «Торговые операции клиента»).
12.«Код Клиента» - идентификатор клиента в системе QUIK.
13.«Поручение» - текстовый комментарий к заявке.
Параметры расширенной формы ввода заявки, разворачивающиеся нажатием кнопки «Больше>>»:
1.
«Брать стоп-цену для инструмента» - наименование и класс инструмента, по которому
осуществляется контроль условия стоп-цены. Параметр поручения типа «Стоп-цена
по другой бумаге».
2.
«Выставить связанную заявку на покупку (продажу) по цене» - цена исполнения связанной
лимитированной заявки. Параметр поручения типа «Со связ. заявкой».
3.
«При частичном исполнении связанной заявки снять стоп-заявку» - если флажок
установлен, то при частичном исполнении связанной лимитированной заявки стоп-заявка
становится снятой. Если флажок снят, то при частичном исполнении связанной заявки объем
стоп-заявки уменьшается до величины неисполненного остатка лимитированной заявки.
4.
«Выставить «тэйк-профит» - параметры заявки типа «Тэйк-профит»:
- «Отступ от max (min)» - устанавливает значение отступа от максимума (на продажу)
или минимума (на покупку) цены последней сделки, при достижении которого будет
сгенерирована лимитированная заявка. Значение отступа может указываться как
в виде отклонения цены, так и в процентах.
- «Защитный спрэд» - устанавливает дополнительное (опережающее) отклонение
цены заявки от цены последней сделки, инициировавшей заявку. Защитный спрэд
предназначен для того, чтобы установить цену создаваемой лимитированной заявки
заведомо исполнимой.
- «По рыночной цене» - признак исполнения тэйк-профита по рыночной цене.
Значение параметра «Защитный спрэд» в данном случае не используется. Параметр
заявок типа «Тэйк-профит и стоп-лимит».
В некоторых режимах торгов использование рыночных заявок
не предусмотрено.
5.
«Объем и комиссия» - оценка заявки в денежном выражении. Позволяет рассчитать
«Количество» бумаг в заявке по известной сумме денег. Для этого нужно ввести в поле
«Объем» сумму денежных средств и нажать кнопку «Задать количество». При этом в поле
«Количество» будет введено число, полученное в результате пересчета и округленное вниз
до ближайшего целого, а в поле «Объем» - денежная оценка заявки при данном
«Количестве»,
Сумма брокерской комиссии с объема заявки рассчитывается автоматически в соответствии
с установленным алгоритмом и выводится в поле справа.
1. При заполнении формы заявки можно перемещаться между полями
мышью, либо клавишей «Tab» в одну сторону, или «Shift»+«Tab»
в обратную сторону.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
67
2. Поля «Количество», «Код клиента», «Поручение» могут быть заполнены
автоматически. Подробнее см. п. 5.17 Раздела 5 «Торговые операции
клиента».
3. В случае неблагоприятного исполнения заявки типа «Тэйк-профит»
на покупку, цена будет рассчитана следующим образом: <стоп-цена> +
<отступ от min/max> + <защитный спред>.
Если для какого-то типа стоп-заявки не предусмотрен один из пунктов заявки, то он становится
«серым» (неактивным).
Порядок подтверждения маклерской стоп-заявки, настройки параметров ее ввода, доступные
функции и способ быстрого ввода такие же, как и при вводе заявки. Описание см. п. 5.2 Раздела
5 «Торговые операции клиента».
7.13.3
Снятие, замена и активация маклерской стоп-заявки
Операции снятия, замены и активации маклерской стоп-заявки выполняются из Таблицы стоп-
заявок и аналогичны действиям над обычными стоп-заявками.
7.14 Участие в аукционах по размещению ценных
бумаг
Система QUIK поддерживает возможность участия в первичном размещении ценных бумаг.
Режим размещения ценных бумаг предусматривает два этапа:
1. Ввод участниками торгов заявок на покупку размещаемого инструмента.
Используемые таблицы:
- «Таблица текущих торгов» - информация о состоянии сессии, допускающем ввод
заявок.
- «Таблица заявок» или «Таблица заявок на внебиржевые сделки» - собственные
заявки на покупку ценных бумаг.
2. Исполнение заявок клиентов андеррайтером.
- «Таблица текущих торгов» - параметры состоявшегося размещения: объем,
средневзвешенная, минимальная и максимальная цены сделок и т.п.
- «Таблица сделок» или «Таблица сделок для исполнения» - состояние исполнения
собственных заявок.
При размещении ценных бумаг Таблица котировок (очередей заявок), как
правило, не используется.
Размещение может проводиться двумя способами:
Руководство пользователя QUIK.
Раздел 7: Операции брокера
68
1. В форме аукциона, путем удовлетворения конкурентных и неконкурентных заявок.
- Конкурентная заявка - заявка с указанием цены. Ввод конкурентной заявки
на аукционе осуществляется путем формирования лимитированной заявки
на покупку (нажатием кнопки на панели инструментов или клавиши «F2»).
Если в заявке указан тип значения цены «Доходность» или
«Средневзвешенная цена», то при приеме заявки сервером QUIK проверка
достаточности средств клиента не может быть осуществлена корректно в силу
недостаточности информации из торговой системы.
- Неконкурентная заявка - заявка без указания цены, с условием исполнения
по средневзвешенной цене удовлетворенных конкурентных заявок. Ввод
неконкурентной заявки осуществляется Общим способом выполнения транзакций
(нажатием кнопки или клавиш «Ctrl»+«T») и выбором операции «Ввод
неконкурентной заявки на покупку при первичном размещении».
Данный тип транзакции недоступен для пользователей с правами Клиента.
В окне ввода заявки необходимо указать следующие параметры:
«Торговый счет» - код счета депо, в отношении которого совершается сделка,
«Инструмент» - наименование инструмента,
«Примечание» - текстовый комментарий к заявке, необязательное поле,
«Объем заявки» - объем заявки в денежном выражении.
2. Размещение путем удовлетворения адресных заявок в Режиме переговорных сделок (РПС).
Ввод заявки осуществляется путем формирования адресной заявки на покупку,
направленной участнику торгов - андеррайтеру размещения ценных бумаг с условиями,
указанными в проспекте эмиссии, и интересующим количеством ценных бумаг, выраженном
в лотах.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
69
7.15 Режим приема клиентских транзакций
с подтверждением брокером
Данный режим предназначен для обработки поручений клиентов, по которым недостаточно
автоматического контроля лимитов клиентов и требуется предварительная проверка условий
заявки сотрудником брокера.
Режим приема клиентских транзакций с подтверждением брокером устанавливается
Администратором системы QUIK и распространяется на все операции клиента по вводу и снятия
заявок, относящихся к определенному классу ценных бумаг.
Право на подтверждение заявок клиентов в данном режиме назначается Администратором
системы QUIK пользователю с полномочиями Менеджера фирмы либо Субадминистратора
(подробнее см. п. 7.3). Таким правом могут обладать несколько сотрудников брокера. В случае
принятия решения по одной заявке клиента несколькими сотрудниками брокера, принимается
подтверждение, введенное первым.
7.15.1
Подтверждение заявки клиента
При получении сервером новой заявки клиента, требующей подтверждения, на рабочем месте
пользователя QUIK с правом подтверждения клиентских заявок отображается окно,
содержащее запрос на подтверждение транзакции с перечисленными в нем параметрами.
Нажатие кнопки «Да» подтверждает заявку клиента. Нажатием кнопки «Нет» заявка отвергается.
Кнопка «Отмена» служит для закрытия окна без совершения действий с заявкой.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
70
7.15.2
Настройки режима подтверждений
Окно настроек открывается выбором пункта меню Система/Настройки/Основные настройки…,
раздел «Торговля» / «Заявки» / «Клиентские заявки» и имеет следующие параметры:
• «Запрашивать подтверждение при операциях с клиентскими заявками» - признак означает,
что при выборе действия «Подтвердить клиентскую транзакцию» или «Отклонить клиентскую
транзакцию» в контекстном меню «Таблицы запросов клиентов на исполнение клиентских
заявок» (меню Создать окно/Клиентские транзакции) на экране появится окно
с подтверждением/отклонением клиентской заявки.
• «Запрашивать подтверждение при операциях с группами клиентских заявок» - признак
означает, что при выборе действия «Подтвердить все кл. транзакции из таблицы» или
«Отклонить все кл. транзакции из таблицы» в контекстном меню «Таблицы запросов
клиентов на исполнение клиентских заявок» (меню Создать окно/Клиентские транзакции)
на экране появится окно с подтверждением/отклонением клиентских заявок.
• «Показывать текст с описанием клиентской заявки в стандартном окне сообщений
программы» - признак позволяет настроить получение оповещения о поступлении новой
заявки. Если он включен, описание клиентской заявки отображается в Окне сообщений, если
выключен - на экране появится диалог «Запрос на исполнение клиентской заявки»
с дополнительным подтверждением выбранного действия.
- «Активная кнопка в форме подтверждения клиентской заявки» - выбор кнопки
в окне подтверждения клиентской заявки, являющейся активной при появлении
окна на экране:
- «Да» - подтвердить заявку,
- «Нет» - отклонить заявку,
- «Отмена» - закрыть окно без подтверждения заявки (действие может быть
выполнено позднее или другим пользователем).
Свойство может применяться при частом подтверждении заявок, в этом случае достаточно
пользоваться клавиатурой - нажатием клавиши «Enter» выполняется нажатие активной
кнопки в окне.
7.16 Работа с неторговыми поручениями
7.16.1
Назначение
Система QUIK поддерживает работу с неторговыми поручениями, такими как ввод/вывод
средств, переводы между площадками. Принцип их использования описан в п. 9.1 Раздела 9
«Неторговые операции и отчеты».
Прием и обработка поручений от клиентов осуществляется сотрудником брокера через Рабочее
место QUIK с правами менеджера. Пользователь с правами менеджера имеет право на:
Руководство пользователя QUIK.
Раздел 7: Операции брокера
71
• Управление сессией - управление режимом приема поручений;
• Обработку поручений - подписание/отклонение поручений клиентов и взимание связанных
с этим платежей.
• Изменение кросс-курса валют - указание кросс-курса валют, используемого в поручениях
типа «Конвертация валют».
7.16.2
Управление сессией
меню Расширения / Неторговые поручения / Управление сессией
Неторговые поручения обрабатываются системой QUIK аналогично торговым транзакциям. Для
того, чтобы пользователи могли отправлять поручения брокеру, должна быть открыта сессия
по классу «Неторговые поручения». Состояние сессии отображается в колонке «Сессия»
Таблицы текущих торгов. Если необходимо временно остановить прием поручений (например,
по техническим причинам), брокер может приостановить сессию для всех типов поручений или
выбрать определенный тип поручения, для которого будет приостановлена сессия, выполнить
необходимые процедуры, а затем возобновить сессию.
Операции, доступные в окне «Управление сессией:
• «Открыть» - начать новую сессию,
• «Закрыть» - завершить текущую сессию,
• «Приостановить» - временно приостановить текущую сессию,
• «Возобновить» - продолжить приостановленную ранее сессию,
• «Загрузка справочников» - произвести обновление справочников из базы данных Модуля
неторговых поручений,
• «Загрузка поручений» - произвести обновление списка поручений из базы данных Модуля
неторговых поручений.
• «Снять активные поручения» - снять активные поручения всех видов. Если в настройках
Модуля задан список классов, по которым снимаются активные поручения в соответствии с
расписанием, то операция применяется к указанному списку классов.
• «Остановить клиентскую сессию» - переводит открытую сессию в состояние «Служебная»,
которое означает невозможность отправки клиентами новых поручений, однако обработка
поручений сотрудниками брокера не приостанавливается.
• «Возобновить клиентскую сессию» - переводит служебную сессию в состояние «Открыта».
Руководство пользователя QUIK.
Раздел 7: Операции брокера
72
7.16.3
Обработка поручений
Обработка поручений выполняется из «Таблицы поручений» (подробнее см. п. 9.2 Раздела 9
«Неторговые операции и отчеты»). В этой таблице отображаются поручения всех типов
и состояние их обработки специалистами брокера. Двойным нажатием правой кнопки мыши
на строке можно открыть поручение и посмотреть его параметры.
Состояние поручений в «Таблице поручений» выделено цветом шрифта:
• Активные - красным цветом,
• Исполненные - синим,
• Снятые - черным,
• Имеющие запрос на снятие - зеленым.
Для исполнения поручения необходимо подтверждение (подпись) уполномоченных
сотрудников брокера. Последовательность проверки и количество необходимых подписей
настраивается на сервере QUIK для каждого вида поручений.
Подписание поручения.
Чтобы подписать поручение, необходимо:
1. Открыть его двойным нажатием левой кнопки мыши на соответствующей строке в таблице.
2. В случае, если пользователь имеет право на требуемую подпись, кнопка подписи будет
активна и ее наименование будет соответствовать имени подписи на приведенном примере,
это кнопка «Бухгалтер». Также будут активны поля ввода налогов для соответствующей
подписи.
3. Указать, если необходимо, значения удерживаемых платежей в соответствующих полях
формы.
4. Нажать кнопку подписи (например, «Бухгалтер»).
Руководство пользователя QUIK.
Раздел 7: Операции брокера
73
В результате на соответствующей строке в «Таблице поручений» появится отметка «+»
в колонке с ролью данного сотрудника (например, «Риск-менеджер»), уведомляющая о наличии
подписи.
Групповая подпись поручений.
Для осуществления групповой подписи надо в таблице поручений выбрать пункт контекстного
меню «Подписать все поручения». Далее, в появившейся форме выбора подписей выбрать
нужную подпись и нажать кнопку «Подписать». После нажатия кнопки «Подписать» будет
осуществлен поиск поручений, которым требуется данная подпись. Найденные поручения
подписываются с проверкой доступности ресурсов, как и при одиночной подписи.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
74
Отклонение поручения.
Если поручение клиента не может быть исполнено, оно должно быть отклонено сотрудником
брокера с указанием причины. Для этого необходимо:
1. Открыть его двойным нажатием левой кнопки мыши на соответствующей строке в таблице,
либо выбрать пункт контекстного меню «Отменить».
2. В окне с поручением нажать кнопку «Снять».
В открывшемся окне «Комментарий к отмене поручения… » написать причину отказа,
которая будет сохранена в данном поручении в поле «Комментарий отмены». Возможно
заполнить причину отмены выбором шаблона из справочника «Причины отмены».
по умолчанию шаблон не выбран. Текст причины можно изменять в форме отмены
поручения.
В результате поручение в таблице примет состояние «Снято». При этом дальнейшая обработка
поручения прекращается.
Отмена подписи.
Подпись поручения можно отменить из контекстного меню таблицы поручений:
• «Отзыв последней подписи» - отзывает последнюю подпись в сделке для данной роли.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
75
• «Отзыв всех подписей» - отзывает подпись у всех сделок для данной подписи.
Также подпись можно отменить, открыв форму поручения и нажав кнопку «Отозвать».
Исполнение поручения.
Поручение, имеющее все необходимые подписи, меняет статус на «Исполнено». При этом
происходит изменение суммы заблокированных средств и доступных лимитов.
7.16.4
Изменение кросс-курса валют
меню Расширения / Неторговые поручения / Задать кросс-курс
Данное действие позволяет изменить кросс-курс валют, используемый в поручениях типа
«Конвертация валют». Настройки в данном окне:
• В поле слева из справочника валют выбирается код валюты для указания кросс-курса.
• В поле справа выбирается код парной валюты, в единицах которой выражен кросс-курс.
• В среднем поле отобразится кросс-курс для указанной пары валют, указанный
в справочнике Модуля неторговых поручений. Для изменения кросс-курса укажите в этом
поле требуемое значение и нажмите кнопку «OK».
Для закрытия окна без сохранения изменений нажмите кнопку «Cancel».
7.17 ПРИЛОЖЕНИЕ. Сообщения об ошибках при
работе с лимитами
1. «Неверный формат файла лимитов. Файл <имя файла>, строка <номер строки>».
2. При загрузке лимитов из файла обнаружена ошибка в синтаксисе. Проверьте правильность
описания лимитов в указанной строке.
3. «Не удалось открыть файл лимитов <имя файла>».
4. Невозможно открыть файл, указанный для загрузки лимитов.
5. «Ошибка записи в файл».
6. Сохранение лимитов в файл невозможно. Убедитесь, что файл не занят другим
приложением.
7. «Нельзя запустить динамическую коррекцию лимитов с учетом совершенных сделок».
8. Ошибка выполнения операции. Свяжитесь с разработчиком программы для разрешения
проблемы.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
76
9. «Невозможно открыть файл <имя файла>. Повторить попытку?»
10.Файл с коррекциями лимитов недоступен для чтения. Убедитесь, что он не занят другой
программой.
11.«Не указан <параметр> коррекции лимита».
12.Пропущен обязательный параметр в файле с коррекциями лимитов.
13.«Ошибка при открытии файла с журналом коррекций лимитов».
14.Файл с журналом коррекций лимитов занят другим приложением либо недостаточно прав
на создание/редактирование файла.
15.«Коррекция неправильно заполнена».
16.Данные в корректировке лимитов не соответствуют друг другу. Например, код инструмента
не соответствует счету депо.
17.«<параметр> превышает допустимый размер».
18.Превышен максимальный размер параметра. Убедитесь, что он указан правильно.
19.«Указанный <параметр> не найден».
20.Пропущен обязательный параметр корректировки лимитов.
21.«Неправильно указан <параметр> коррекции лимита».
22.Значение параметра не соответствует допустимым значениям.
23.«Нельзя начать отправку коррекций лимитов из файла».
24.Ошибка выполнения операции. Свяжитесь с разработчиком программы для разрешения
проблемы.
25.«Неверный формат файла коррекции лимитов».
26.Файл с коррекциями лимитов имеет ошибочный формат. Убедитесь, что параметры
разделены правильными разделителями и каждая корректировка лимитов описана
отдельной строкой.
27.«Не указан способ коррекции лимита».
28.Пропущен обязательный параметр «LIMIT_OPERATION».
29.«Неправильно указан способ коррекции лимита». Значение параметра «LIMIT_OPERATION»
не соответствует допустимым значениям.
Руководство пользователя QUIK.
Раздел 7: Операции брокера
77
Раздел 8. Алгоритмический язык QPILE
8.1 Общие положения
2
8.2 Работа с таблицами QPILE
4
8.3 Структура файла программы
10
8.4 Конструкции языка QPILE
14
8.5 Общие функции
24
8.6 Математические функции
26
8.7 Функции для работы с коллекциями объектов (COLLECTION)
28
8.8 Функции для работы с ассоциативными массивами (MAP)
30
8.9 Функции для обращения к строкам произвольных таблиц QUIK
32
8.10 Функции для обращения к спискам доступных параметров
55
8.11 Функции для работы с программируемой таблицей
57
8.12 Функции для получения значений Таблицы текущих торгов
60
8.13 Функции для получения значений Окна котировок
68
8.14 Функции для получения значений Таблицы лимитов по бумагам
69
8.15 Функции для получения значений Таблицы лимитов по денежным средствам. 72
8.16 Функции расчета маржинальных позиций
73
8.17 Функции получения значений таблиц «Клиентский портфель»
и «Купить/Продать»
75
8.18 Функции для работы с файлами
83
8.19 Функции для работы со строками
85
8.20 Функции для работы с графиками
86
8.21 Функции для работы с заявками
89
8.22 Функции для работы с метками
91
8.23 Сервисные функции
94
8.24 Отладка программ QPILE
97
ПРИЛОЖЕНИЕ 1. Синтаксис команд языка QPILE
99
ПРИЛОЖЕНИЕ 2. Рекомендации к составлению программ на QPILE
101
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
1
Раздел описывает применение алгоритмического языка QPILE, встроенного в Рабочее место
системы QUIK. В начале раздела рассматривается базовый функционал клиентского места,
предназначенный для работы с программируемыми таблицами. Для пользователей,
заинтересованных в разработке собственных программ в документации приводится описание
конструкций языка QPILE и встроенных функций языка, а также пример реализации - расчет
показателей маржинального кредитования по методике ФСФР.
8.1 Общие положения
8.1.1
Назначение
Язык QPILE (QUIK Programmable Interface and Logic Environment) представляет собой набор
команд, интерпретируемых рабочим местом QUIK.
Областью применения QPILE является создание новых таблиц для расчета в режиме реального
времени собственных показателей на основе информации из других таблиц.
Данный функционал удобен, прежде всего, для брокера, так как у каждого брокера существует
своя собственная стратегия расчета показателей клиентской позиции. Применение встроенного
языка позволяет реализовать практически любой алгоритм.
Примеры использования QPILE:
1. Динамический пересчет стоимости активов клиентов на рабочем месте брокера.
2. Динамический пересчет стоимости активов в портфеле клиента и его суммарной стоимости.
3. Вычисление показателей, отсутствующих в системе QUIK либо торговой системе биржи,
на основе собственных алгоритмов.
4. Расчет параметров маржинального кредитования в соответствии с принятыми нормативами.
5. Программирование торговой стратегии, генерирующей сигналы на изменение позиций
по инструментам.
Основной областью применения языка QPILE является расчет стоимости
портфелей ценных бумаг, поэтому в терминологии описания типов таблиц
часто используется определение «Портфели».
8.1.2
Как работает QPILE
1. Структура таблицы (назначение столбцов, строк, и формулы для вычисления параметров)
описывается в виде программы на языке QPILE. Для вычисления в формулах можно
использовать стандартные математические и логические операции, использовать переменные
и массивы данных, запрашивать информацию из других таблиц системы QUIK.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
2
2. Код программы может быть получен с сервера QUIK (серверный) или загружен с диска на
компьютере пользователя (локальный). Полученный код обрабатывается интерпретатором
языка QPILE на рабочем месте QUIK, который производит пересчет значений в формулах
с заданной периодичностью. Таким образом, формируется внутренний источник данных для
отображения полученных значений в таблицах. Несколько таблиц на основе одной и той
же программы используют общий источник данных, при этом вычисления не будут
дублироваться и снижать производительность системы.
3. На основе программы можно создавать таблицы, обладающие стандартными функциями
при работе с таблицами в системе QUIK.
4. Рабочее место QUIK имеет встроенный отладчик кода программ на QPILE, позволяющий
вести пошаговую отладку и контролировать текущие значения переменных. Подробнее
см. п. 8.24.
Нумерация строк в таблицах QPILE начинается с единицы, а нумерация
символов в строках языка QPILE начинается с нуля.
8.1.3
Основные возможности
Основные функции языка QPILE:
1. Описание новых таблиц произвольной структуры,
2. Вычисление полей таблиц на основе математических формул и логических выражений,
3. Выделение ячеек таблицы цветом в зависимости от значений какого-либо показателя,
4. Уведомление пользователя звуковым сигналом и текстовыми сообщениями.
Таблица на языке QPILE поддерживает основные действия с таблицами в системе QUIK:
• Редактирование, в том числе выбор параметров для отображения и настройку
их очередности,
• Управление «горячими клавишами»,
• Размещение на «экранных вкладках»,
• Поиск значения в ячейках таблицы,
• Печать таблицы с предварительным просмотром,
• Копирование данных в Буфер Обмена Windows (Clipboard),
• Экспорт данных в Excel,
• Экспорт данных по ODBC.
В качестве исходных данных для расчетов параметров таблиц может использоваться
информация из следующих типов таблиц QUIK, а также из графиков:
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
3
№ Таблица
№ Таблица
10 Таблица заявок на внебиржевые сделки
1
Таблица текущих торгов
11 Таблица сделок для исполнения
2
Таблица обезличенных сделок
12 Таблица заявок-отчетов на сделки РПС
3
Таблица заявок
4
Таблица стоп-заявок
13 Таблица «Клиентский портфель»
5
Таблица сделок
14 Таблица «Купить/Продать»
6
Таблица лимитов по бумагам
15 Таблица денежных позиций
16 Таблица текущих позиций по бумагам
7
Таблица лимитов по денежным средствам
17 Таблица текущих позиций по счетам
8
Позиции по клиентским счетам
18 Таблица, создаваемая при расчете программы
9
Ограничения по клиентским счетам
8.1.4
Функциональные ограничения
Текущая версия языка QPILE и созданные на его основе таблицы не поддерживают следующих
операций:
• Сортировку в таблицах;
• Применение фильтров;
• Использование таблицы в качестве источника данных для построения графиков;
• Сохранение данных из таблицы в текстовый файл через контекстное меню;
• Экспорт данных в системы технического анализа.
8.2 Работа с таблицами QPILE
8.2.1
Загрузка программы
Этот этап добавляет описания собственных таблиц в список доступных типов. Если
предполагается работа с описаниями таблиц на сервере, его можно пропустить.
Загрузка кода программы выполняется выбором пункта меню программы Сервисы/ QPILE
скрипты…, или нажатие клавиш «Ctrl»+«F11».
1. Нажмите кнопку «Добавить» и выберите файл, загружаемый с диска. Файлы имеют
стандартные расширения «.QPL». Название таблицы появится в списке «Доступные скрипты».
2. При чтении файла осуществляется проверка правильности программы. Если программа
содержит ошибки, система уведомит об этом в «Окне сообщений». В сообщении указывается
имя файла и номер строки, в которой обнаружена ошибка.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
4
3. Если файл прочитан успешно, то в полях отобразятся соответствующие параметры:
Поле
Назначение
Текущий скрипт
Название таблицы
Всего параметров
Число параметров (столбцов), описанных в структуре таблицы
Количество доступных кодов клиентов, из числа перечисленных в структуре
Всего клиентов
таблицы.
В новой версии языка параметр не актуален
Фирмы
Перечень идентификаторов фирмы в торговой системе (значения,
соответствующие полю «Дилер» в Таблице заявок или Таблице сделок)
Клиенты
Перечень идентификаторов клиентов для отображения в таблице
Параметры скрипта
Перечень описанных параметров и расширенные сведения по ним
Формула расчета
Исходный код программы на языке QPILE
4. Для загрузки прочитанной из файла таблицы нажмите кнопку «Загрузить локально».
5. Кнопка «Загрузить на сервер» позволяет загрузить программу на сервер, которая станет
доступна всем его пользователям. Право загрузки программ на сервер назначается
администратором системы QUIK.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
5
При локальной загрузке код исполняется на текущем рабочем месте и просмотр таблицы
на его основе доступен тоже только на этом месте.
Первую загрузку каждого нового описания настоятельно рекомендуется
производить локально, а уже после просмотра и проверки корректности
его работы и расчета параметров - загружать на сервер.
8.2.2
Настройка параметров программы
Этот этап определяет список обрабатываемых программ и определяет периодичность
вычислений. Если программы были загружены локально, то они автоматически помечаются
выбранными.
Выбор доступных программ с описаниями типов таблиц выполняется выбором пункта меню
программы Сервисы/QPILE скрипты…, или нажатием клавиш «Ctrl»+«F11».
1. В списке «Доступные скрипты» приведены все программы, доступные пользователю для
создания таблиц, как загруженные локально, так и серверные. Выберите программу из числа
доступных, установив на ней флажок. В полях диалога отобразятся параметры, относящиеся
к структуре программируемой таблицы.
2. Установите период расчета значений таблицы. Для исполнения программ с большим
количеством вычислений период расчета значений рекомендуется устанавливать не менее
5-10 секунд.
3. Нажмите кнопку «Сохранить как…» для сохранения настроек.
4. Нажатие кнопки «Удалить» приводит к удалению из списка выбранной строки. Серверные
типы таблиц удалить нельзя.
5. Нажатием кнопки «Формула» открывается окно с исходным кодом программы и описанием
таблицы (справочно).
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
6
6. Нажатие кнопки «Создать таблицу» открывается окно «Создать таблицу для просмотра
параметров скрипта» (см. п. 8.2.3).
7. Чтобы закрыть окно с сохранением настроек, нажмите кнопку «Применить». Нажатие кнопки
«Отмена» закрывает окно без сохранения изменений.
Настройки данного этапа распространяются и на ранее созданные
программируемые таблицы. Этот этап можно использовать для включения/
отключения вычислений в таблицах, а также для регулирования частоты
обновления данных в них.
Применение настроек к существующим таблицам:
• Как отключить пересчет значений в таблице?
- Выберите пункт контекстного меню «Приостановить расчет» либо нажмите «Ctrl»+
«F11» и снимите флажок с требуемого типа таблицы. При этом в таблице будут
отображены последние вычисленные значения.
- Если по одной программе было сформировано несколько таблиц, то расчет
приостановится во всех этих таблицах.
- Для отключения пересчета во всех таблицах нужно нажать «Ctrl»+«F11» и снять все
флажки.
• Как изменить период расчета в существующей таблице?
- Выберите пункт контекстного меню «Параметры скрипта» или нажмите «Ctrl»+«F11»,
затем измените значение параметра «Период расчета (сек)» и нажмите кнопку
«Применить».
8.2.3
Создание таблицы
Этот этап формирует таблицу на основании программы. На базе одной программы можно
создать несколько таблиц для удобства их расположения на экране.
Создание программируемой таблицы выполняется нажатием кнопки «Создать таблицу» в окне
«Работа со скриптами» (см. п. 8.2.2).
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
7
1. Выберите программу в списке «Доступные скрипты». В полях раздела «Текущий скрипт»
отобразятся данные по структуре таблицы.
2. Если необходимо, ограничьте количество отображаемых строк в таблице с помощью
фильтра «Фильтр клиентов».
3. Сформируйте список столбцов таблицы из числа доступных параметров
и последовательность их отображения в таблице. В поле «Описание параметра» справочно
приводится расширенное описание выделенного параметра.
4. Нажатием кнопки «Да» создается таблица.
Полученная таблица имеет такие же функции управления, как и другие
таблицы системы QUIK. Например, для редактирования таблицы можно
нажать кнопку на панели инструментов, или клавиши «Ctrl»+«E».
Расчет параметров таблицы ведется, в том числе на основе Таблицы текущих
торгов. Убедитесь, что необходимые для расчета параметров данные
принимаются с сервера (не отключены фильтром в списке принимаемых
параметров и бумаг).
8.2.4
Функции, доступные в таблице
Данные таблицы доступны для копирования, экспорта в Excel, экспорта через ODBC.
Функции, доступные из контекстного меню таблицы:
• «Приостановить расчет» - остановить вычисление параметров таблицы (при этом в таблице
отображаются последние вычисленные данные);
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
8
• «Возобновить расчет» - возобновляет вычисление параметров таблицы, если он был
остановлен;
• «Начать расчет заново» - сбросить все значения и начать расчет заново;
• «Начать расчет в режиме отладки» - сбрасывает все значения, запускает окно отладки
и начинает расчет заново;
• «Сохранить описание в файл» - сохранить в текстовый файл программу, описывающую
данную таблицу;
• «Посмотреть формулу» - показать в окне код программы данной таблицы;
• «Параметры скрипта» - открыть окно с параметрами программы, в том числе период
расчета в секундах.
Описание стандартных функций контекстного меню для таблиц см. п. 2.8.4 Раздела 2 «Основные
принципы работы с программой».
Описание применения пользовательских фильтров и условного форматирования таблиц
приведено соответственно в пп. 2.8.8 и 2.8.9 Раздела 2 «Основные принципы работы с
программой».
Полный список управляющих клавиш для всех типов таблиц приведен в Приложении
к Разделу 2.
ПРИМЕР: Локальная загрузка файла программы с расчетом показателей маржинального
кредитования по методике ФСФР.
Пример находится в одном архиве с этим Руководством пользователя, в папке «qpile».
Перед загрузкой файла, приведенного в примере, измените код участника
торгов в строках 4 и 60 на код фирмы Вашего брокера.
1. Нажатием клавиш «Ctrl»+«F11» открывается окно, в котором выбираем требуемый файл на
диске (в примере это fkcb.qpl) и нажимаем кнопку «Открыть».
2. Нажимаем кнопку «Загрузить локально». В окне сообщений появляется уведомление
о прочтении файла. Нажимаем кнопку «Выход».
3. Следующий этап пропускаем, потому что загруженные локально описания таблиц
автоматически отмечаются доступными для создания таблиц.
4. Нажатием кнопки «Создать таблицу» открывается окно создания таблицы. Формируем
список «Заголовки столбцов» выбором параметров из числа доступных.
5. Нажатием кнопки «Да» создается таблица, в строках которой перечислены доступные счета
клиентов, со следующими параметрами в столбцах:
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
9
Название поля
Значение
Задолженность брокеру Сумма задолженности клиента брокеру по деньгам и бумагам, в денежном
выражении
Только деньги клиента
Сумма всех текущих остатков клиента по деньгам
Оценка
Сумма всех текущих положительных остатков клиента по бумагам,
в денежном выражении
Средства в рублях
Доступные собственные средства клиента
Все средства
Текущая стоимость средств клиента, сумма параметров «Оценка»
и «Средства в рублях»
Уровень маржи
Текущий уровень маржи, рассчитанный по методике ФСФР
Состояние
Текстовый комментарий, поясняющий значение уровня маржи
В ячейках таблицы появятся данные, пересчитываемые с заданной регулярностью.
Если данные в таблице отсутствуют, то, скорее всего, в коде программы указаны недоступные
идентификатор фирмы, коды инструментов или коды клиентов.
При необходимости можно изменить периодичность расчета или сократить список кодов
клиентов с помощью фильтра, выбрав пункт контекстного меню «Параметры скрипта» или
нажав «Ctrl»+«F11».
8.3 Структура файла программы
Файл с кодом программы представляет собой текстовый файл в кодировке CP-1251 (Windows).
Один файл служит для описания одного типа таблицы. Используются стандартные расширения
имени файлов «.QPL».
Описание состоит из трех частей:
1. «Заголовок» - наименование таблицы и определение основных параметров,
2. «Тело программы» - собственно код программы,
3. «Описание столбцов таблицы» - определение названий столбцов и формата
соответствующих им ячеек таблицы,
Все разделы являются обязательными и должны следовать строго друг за другом. Файл всегда
начинается с заголовка и заканчивается строкой «END_PORTFOLIO» (в новой версии языка
должно применяться «END_PORTFOLIO_EX»).
Примеры файлов см. В папке QPILE, которая поставляется вместе с Руководством пользователя.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
10
8.3.1
Заголовок файла
Заголовок файла содержит основные параметры таблицы:
Параметр
Назначение
PORTFOLIO
Название таблицы - символьный идентификатор латинскими буквами без пробелов.
PORTFOLIO_EX
«PORTFOLIO» - параметр, применявшийся в первой версии языка, «PORTFOLIO_EX» -
обозначение программы на расширенной версии языка (начиная с версии QUIK 4.09)
DESCRIPTION
Текстовое описание таблицы
* CLIENTS_LIST
Список кодов клиентов через запятую, для которых вычисляются значения в таблице.
Значение «ALL_CLIENTS» соответствует выбору всех кодов клиентов.
Значения по каждому счету клиента формируют новую строку таблицы
FIRMS_LIST
Список идентификаторов фирм (участников торгов) через запятую, клиентам которых
будет доступна данная таблица
* - параметр предыдущей версии языка, в текущей версии является необязательным.
Каждый параметр должен быть описан на отдельной строке и заканчиваться символом «;».
Пример заголовка:
PORTFOLIO AVAILABLE_MONEY;
DESCRIPTION Доступные деньги клиента;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST MC0012300000;
Данная таблица будет отображаться в списке доступных с именем «AVAILABLE_MONEY».
При выборе доступных описаний таблиц в поле «Текущий скрипт» отобразится «Доступные
деньги клиента». Это же наименование будет являться заголовком таблицы, принимаемым
по умолчанию. Расчет параметров осуществляется по всем счетам клиентов, доступных
пользователю в таблицах лимитов и имеющих код фирмы «MC0012300000».
8.3.2
Тело программы
Раздел содержит код программы для расчета значений в ячейках таблицы. Начало раздела
обозначается строкой «PROGRAM», окончание - строкой «END_PROGRAM». Для выхода из тела
программы используется оператор «RETURN».
1. Регистр символов (верхний или нижний) в командах по умолчанию
игнорируется интерпретатором. Все строковые константы переводятся
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
11
автоматически в верхний регистр. Но в случае необходимости можно
отменить автоматический перевод символов в верхний регистр. Для этого
необходимо между заголовком и телом программы добавить следующую
строку:
USE_CASE_SENSITIVE_CONSTANTS
При добавлении указанного ключа значения строковых переменных не будут
переводиться в верхний регистр, а будут оставаться такими, какие они есть.
2. Множественные пробелы игнорируются интерпретатором, за исключением
пробелов внутри строковых переменных.
3. Для переноса длинных строк используется комбинация «<пробел>_»
в конце строки. Например:
CLIENTS_LIST 0001, 0002, 0003, 0004, 0005, 0006, 0007, 0008, 0009, 0010, _
0011, 0012, 0013, 0014, 0015;
4. Символ «’» является комментарием. Комментарий распространяется
до конца строки.
5. Разделителем операторов служит перевод строки, т.е. каждый оператор
описывается отдельной строкой.
6. Нумерация символов в строке начинается с нуля.
Пример программы:
PROGRAM
FirmCode = "MC0012300000"
CurrentBalance
= MONEY_CURRENT_BALANCE(ROWNAME, FirmCode, "EQTV", "SUR")
CurrentLimit
= MONEY_CURRENT_LIMIT(ROWNAME, FirmCode, "EQTV", "SUR")
Locked = MONEY_LIMIT_LOCKED(ROWNAME, FirmCode, "EQTV", "SUR")
AvailableMoney
= MoneyCurrentBalance + MoneyCurrentLimit - MoneyLocked
If AvailableMoney > 0
Status = "Заявки доступны"
Else
Status = "Заявки недоступны"
SET_ROW_COLOR(ROWNAME, "RGB(255,138,138)", "DEFAULT_COLOR")
End If
END_PROGRAM
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
12
Пример относится к формированию таблицы «Доступные деньги клиента». Создаваемая таблица
будет частично дублировать поля Таблицы лимитов по денежным средствам, а также содержать
два вычисляемых поля.
8.3.3
Определение столбцов таблицы
Для отображения в таблице вычисленных значений необходимо описать ее столбцы и формат
соответствующих им ячеек таблицы. Для этого предназначен данный раздел файла.
Каждый столбец таблицы описывается следующим набором параметров:
Параметр
Назначение
PARAMETER
Название переменной в программе (максимальная длина 31 символ), значение
которой будет отображаться в данном столбце
PARAMETER_TITLE
Название столбца (максимальная длина 31 символ), отображаемое в таблице
PARAMETER_DESCRIPTION Расширенное описание параметра (максимальная длина 127 символов)
PARAMETER_TYPE
Формат данных в ячейках таблицы, относящихся к столбцу. Возможны два типа
данных:
NUMERIC(<размер_числа_в_символах>,
<кол_во_знаков_после_запятой>) - двойные с плавающей точкой
(double),
STRING(<длина_строки>) - строковые (string)
Описание каждого параметра завершается строкой «END».
После описания параметров в конце файла обязательно должна быть строка «END_PORTFOLIO» для
первой версии языка, либо «END_PORTFOLIO_EX» для его новой версии.
Пример описания:
PARAMETER AvailableMoney;
PARAMETER_TITLE Доступно;
PARAMETER_DESCRIPTION Доступные деньги клиента;
PARAMETER_TYPE NUMERIC(10,2);
END
Значения переменной «AvailableMoney» будут отображаться в столбце таблицы «Доступно». При
настройке таблицы в поле «Описание параметра» отображается текст «Доступные деньги
клиента». Данные в столбце будут отображаться в виде числа с двумя знаками после запятой.
Этот же формат данных рекомендуется указывать при настройке экспорта из таблицы по ODBC.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
13
8.3.4
Подключение дополнительных файлов
Для подключения дополнительных файлов с функциями к программе используется раздел
INCLUDE. Данный раздел размещается между заголовком и телом программы и описывается
следующим образом:
INCLUDE file1, file2, …, fileN;
где file1, file2, …, fileN - относительные или полные пути файлов с описанием функций
(прописываются через запятую).
Пример описания:
INCLUDE C:/Program Files/ADDITION/object_1, C:/Program Files/ADDITION/object_2;
8.4 Конструкции языка QPILE
8.4.1
Типы данных
1. Различаются следующие типы данных:
- «STRING» - строковый,
«Суммарный спрос»
- «DOUBLE» - вещественный, или число с плавающей точкой. Точность - 15
десятичных разрядов, но не более 8 знаков после запятой.
1234567.89
- «COLLECTION» - коллекция,
- Коллекция является списком объектов, с индексацией по целочисленному ключу
(начиная с 0).
0
1
2
3
«HYDR»
12
7.890
«BUY»
- «MAP» - ассоциативный массив,
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
14
- Ассоциативный массив (MAP) является последовательностью пар (ключ, значение),
которая обеспечивает получение значения по ключу. Каждому ключу соответствует
максимум одно значение, иными словами, каждый ключ в ассоциативном массиве
уникален. В качестве ключа всегда выступает строковое значение.
«NUMBER»
«TIME»
«OPERATION»
67890
«12:34:56»
«BUY»
2. Типы данных «COLLECTION» и «MAP» являются структурными. Они могут:
- Быть неоднородными, т.е. содержать значения разных типов,
- Содержать в качестве значений элементы любых типов, в том числе и переменные
типов «COLLECTION» и «MAP».
3. Область видимости всех переменных, кроме формальных параметров, является глобальной
и определяется контекстом исполнения. Если в процессе исполнения переменная была
присвоена, то она считается определенной до конца исполнения программы.
Переменные, сохраняющие свои значения между периодами расчета программы,
именуются глобальными. Глобальные переменные описываются специальной функцией
«NEW_GLOBAL ()» (см. п. 8.5.1).
4. Количество используемых в программе переменных ограничено 1000.
8.4.2
Приведение типов
1. Переменные языка не типизированы и могут изменять тип данных в процессе исполнения
программы.
2. Применение операций «+», «-», «*», «/» к строковым переменным приводит их к
вещественным значениям. Если такое приведение не возможно, то вещественное значение
принимается равным «0.0». Для структурных переменных результат этих операций
не определен.
3. Операция сравнения вещественных и строковых переменных допустима только для
переменных со значениями одного типа. Для переменных структурных типов «COLLECTION»
и «MAP» результат сравнения не определен.
4. Применение операции конкатенации строк «&» к вещественным переменным приводит
их значения к строковым.
5. При вызове внешних функций всегда осуществляется приведение типов аргументов.
6. Изменение значений переменных структурных типов и обращение к их полям выполняется
специальными функциями, описанными в п. 8.7-8.8.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
15
8.4.3
Выражения
1.
Приоритет выполнения математических операций («+», «-», «*», «/», унарный «-») является
стандартным.
2.
Логические операции имеют одинаковый приоритет (за исключением «AND» и «OR»)
и исполняются слева направо. «AND» и «OR» исполняются в последнюю очередь, слева
направо. Например:
A < B or A = C равносильно (A < B) or (A = C)
3.
В выражениях и сравнениях возможно использование скобок.
Допустимые выражения:
Операция
Значение
Математические
+
Сложение
-
Вычитание
*
Умножение
/
Деление
Унарный «-»
Смена знака в значении на противоположный
D или E
Экспоненциальная форма записи числа, «3D2» равносильно 3*10^2
Логические
==
Равенство
=
Равенство, аналогично предыдущему
>
Больше
<
Меньше
>=
Больше или равно
<=
Меньше или равно
!=
Не равно
<>
Не равно, аналогично предыдущему
AND
Логическое «И»
OR
Логическое «ИЛИ»
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
16
Операция
Значение
Текстовые
&
Склейка (конкатенация) строк
При присвоении значения переменной необходимо использовать приведение
типов данных. Например, выражение A=«3E2»+0 даст результат 300,
в отличие от А=«5E3», которым переменной будет присвоено строковое
выражение «5E3».
8.4.4
Условия
Синтаксис оператора условия:
IF условие
последовательность инструкций
ELSE
последовательность инструкций
END IF
«Условием» является логическое выражение. Вложенность операторов условия не ограничена.
В операторе «END IF» допускается только один пробел.
Пример:
IF DealerMoney = 0
Margin = 100
ELSE
Margin=0
END IF
8.4.5
Циклы
Синтаксис оператора цикла:
1. выполняет «последовательность инструкций» для каждого значения «переменной»,
входящего в «список значений». «Список значений» определяется переменной типа
«STRING» со значениями, перечисленными через запятую.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
17
FOR переменная IN список значений
последовательность инструкций
END FOR
2. выполняет последовательность инструкций для каждого значения переменной в диапазоне
от «значение1» до «значение2» с шагом 1, в качестве которых могут выступать
математические выражения. Если «значение2» < «значение1», цикл не обрабатывается.
FOR переменная FROM значение1 TO значение2
последовательность инструкций
END FOR
Вложенность операторов цикла не ограничена. В операторе «END FOR» допускается только один
пробел.
Пример:
FkcbSecsList = "HYDR,SBER,MSNG,LKOH,YUKO,RTKM"
FOR Sec IN FkcbSecsList
DCPos = DEPO_CURRENT_BALANCE(ROWNAME, FirmList, Sec, DefDepoAcc)
DCLim = DEPO_CURRENT_LIMIT(ROWNAME, FirmList, Sec, DefDepoAcc)
DOLim = DEPO_OPEN_LIMIT(ROWNAME, FirmList, Sec, DefDepoAcc)
SecPos = DCPos + DCLim - DOLim
SecPos = SecPos * GET_PARAM(ClassCode, Sec, "LAST") * GET_PARAM(ClassCode, Sec,
"LOTSIZE")
DepoPos = DepoPos + ignore_negative(SecPos)
DealerMoney = DealerMoney + dealer(SecPos)
END FOR
Данный цикл перебирает все бумаги их списка бумаг «FkcbSecsList» и по каждой бумаге
обрабатывает лимит по этой бумаге для текущего рассчитываемого клиента.
Для прерывания цикла до его окончания служит оператор «BREAK». Он прерывает выполнение
оператора «FOR» и передает управление следующему за ним оператору.
Для передачи управления на следующую итерацию оператора «FOR» служит оператор
«CONTINUE». В операторе «FOR» следующая итерация начинается вычислением выражения
цикла оператора «FOR». После вычисления условного выражения в зависимости от его
результатов происходит либо прекращение выполнения оператора либо выполнение его тела.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
18
8.4.6
Функции
Общие положения:
1. Описания функций могут находиться в любом месте программы.
2. Все функции должны иметь различные имена - перегрузка по типу параметров
и их количеству не осуществляется.
3. Функции могут возвращать значение с помощью переменной с именем «RESULT».
4. Все параметры передаются в функции по значению.
5. Функция может являться процедурой. В этом случае в месте вызова такой функции
не используется возвращаемое значение, и присваивание переменной с именем «RESULT»
внутри такой функции не обязательно.
6. Для выхода из тела функции может использоваться оператор «RETURN».
1. В описании синтаксиса функций, возвращающих или принимающих
переменную любого типа, для обозначения применяется тип «ANY».
2. Таблица, создаваемая при расчете программы, обозначается «OWN».
Функции, определенные пользователем, имеют следующий синтаксис:
FUNC функция (список аргументов)
последовательность инструкций
END FUNC
В операторе «END FUNC» допускается только один пробел.
Пример:
FUNC ignore_negative(x)
If x > 0
RESULT = x
Else
RESULT = 0
End If
END FUNC
8.4.7
Функции языка QPILE
Стандартные функции языка QPILE предназначены для работы со структурными типами
переменных и получения значений из таблиц QUIK.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
19
Функция
Назначение
NEW_GLOBAL
Инициализация глобальной переменной
MESSAGE
Вывод текста в Окне сообщений
Математические функции
ABS
Модуль
ACOS
Арккосинус
ASIN
Арксинус
ATAN
Арктангенс
CEIL
Округление вверх
COS
Косинус
EXP
Экспонент
FLOOR
Округление вниз
LOG
Логарифм
POW
Возведение в степень
RAND
Случайное число
RANDOMIZE
Генерация случайных чисел
SIN
Синус
SQRT
Квадратный корень числа
TAN
Тангенс
Функции для работы с коллекциями объектов
CREATE_COLLECTION
Определение коллекции
GET_COLLECTION_COUNT
Количество элементов в коллекции
REMOVE_COLLECTION_ITEM
Удаление элемента коллекции
INSERT_COLLECTION_ITEM
Вставка элемента коллекции
SET_COLLECTION_ITEM
Замена значения элемента коллекции
GET_COLLECTION_ITEM
Чтение значения элемента коллекции
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
20
Функция
Назначение
Функции для работы с ассоциативными массивами
CREATE_MAP
Определение массива
SET_VALUE
Добавление нового элемента в массив
GET_VALUE
Чтение значения элемента из массива
Функции для обращения к строкам произвольных таблиц QUIK
GET_ITEM
Строка с указанным номером из таблицы QUIK
GET_NUMBER_OF
Количество записей в указанной таблице QUIK
Функции для обращения к спискам доступных параметров
GET_CLASSES_LIST
Список кодов классов, доступных в текущем сеансе связи
GET_CLASS_SECURITIES
Список кодов бумаг для заданного списка классов
GET_SECURITY_INFO
Информация по бумаге с определенным кодом из заданного
класса
Функции для работы с программируемой таблицей
ADD_ITEM
Добавление новой строки в таблицу
MODIFY_ITEM
Изменение указанной строки таблицы
DELETE_ITEM
Удаление указанной строки таблицы
DELETE_ALL_ITEMS
Очистка всех значений таблицы
SET_ROW_COLOR
Указание цвета подсветки для строки таблицы
SET_ROW_COLOR_EX
Указание цвета фона и шрифта для строки таблицы
Функции для получения значений Таблицы текущих торгов
GET_PARAM*
Получение значений из Таблицы текущих торгов
GET_PARAM_EX
Получение всех значений из Таблицы текущих торгов
Функции для получения значений Окна котировок
GET_QUOTES_II_LEVEL_DATA
Получение значений из Таблицы котировок
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
21
Функция
Назначение
Функции для получения значений Таблицы лимитов по бумагам*
DEPO_OPEN_BALANCE
Входящий остаток по бумагам
DEPO_OPEN_LIMIT
Входящий лимит по бумагам
DEPO_CURRENT_BALANCE
Текущий остаток по бумагам
DEPO_CURRENT_LIMIT
Текущий лимит по бумагам
DEPO_LIMIT_AVAILABLE
Доступное количество ценных бумаг
DEPO_LIMIT_LOCKED
Заблокированное Количество лотов ценных бумаг
DEPO_LIMIT_LOCKED_BUY
Количество лотов ценных бумаг, заблокированных на покупку
DEPO_LIMIT_LOCKED_BUY_VALUE
Стоимость ценных бумаг, заблокированных на покупку
Функции для получения значений Таблицы лимитов по денежным средствам*
MONEY_OPEN_BALANCE
Входящий остаток по денежным средствам
MONEY_OPEN_LIMIT
Входящий лимит по денежным средствам
MONEY_CURRENT_BALANCE
Текущий остаток по денежным средствам
MONEY_CURRENT_LIMIT
Текущий лимит по денежным средствам
MONEY_LIMIT_AVAILABLE
Доступное количество денежных средств
MONEY_LIMIT_LOCKED
Заблокированное в заявках на покупку количество денежных
средств
Функции расчета маржинальных позиций
SHORT_VALUE
Стоимость всех коротких значений
LONG_VALUE
Стоимость всех длинных позиций
Функции получения значений таблиц «Клиентский портфель» и «Купить/Продать»
GET_CLIENT_MARGINAL_PORTFOLIO_INFO
Значения параметров таблицы «Клиентский портфель»
GET_CLIENT_MARGINAL_BUY_SELL_INFO
Значение параметров таблицы «Купить/Продать»
Функции для работы с файлами
CLEAR_FILE
Очистить файл
WRITE
Записать строку в конец файла
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
22
Функция
Назначение
WRITELN
Записать строку с переводом строки в конец файла
GET_FILE_LEN
Количество строк в файле
READ_LINE
Прочитать из файла строку с заданным номером
Функции для работы со строками
LEN
Количество символов в строке
TRIM
Отсечение пробелов в конце строки
SUBSTR
Подстрока
FIND
Поиск в строке позиции подстроки
Функции для работы с графиками
GET_CANDLE
Значения цен и объемов (OHLCV) «свечи» на графике
и ее индикаторов
GET_CANDLE_EX
Значения цен и объемов (OHLCV) «свечи» на графике
и ее индикаторов, состоящих из нескольких линий
Функции для работы с заявками
SEND_TRANSACTION
Ввод новой заявки
Функции для работы с метками
ADD_LABEL
Добавить метку
DELETE_LABEL
Удалить метку
DELETE_ALL_LABELS
Удалить все метки
GET_LABEL_PARAMS
Получить параметры метки
SET_LABEL_PARAMS
Задать параметры метки
Сервисные функции
GET_TRADE_DATE
Дата текущей торговой сессии
GET_DATETIME
Текущие дата и время
APPLY_SCALE
Округление с заданной точностью
IS_CONNECTED
Определяет состояние подключения клиентского места к
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
23
Функция
Назначение
серверу
GET_INFO_PARAM
Позволяет получить параметры для информационного окна
(Связь/Информационное окно)
BREAKPOINT
Позволяет прервать выполнение программы и вызвать окно
«Отладка»
* - функции предыдущей версии языка QPILE, сохраненные для совместимости. Значения, возвращаемые
этими функциями, также могут быть получены чтением строки таблицы функцией «GET_ITEM»
и выборкой из нее значения функцией «GET_VALUE»
Функции предыдущих версий, поддержка которых прекращена:
• MONEY_LIMIT_LOCKED_NONMARGINAL_VALUE
8.5 Общие функции
8.5.1
NEW_GLOBAL
Функция предназначена для инициализации глобальной переменной. Глобальная переменная
сохраняет свое значение между итерациями вычислений значений таблицы. Инициализация
может быть выполнена переменной любого типа, при этом создается глобальная переменная
соответствующего типа.
NEW_GLOBAL (STRING Name, ANY InitValue)
Параметры:
№
Параметр
Тип
Описание
1
NAME
STRING
Строковое имя создаваемой переменной
2
INITVALUE
ANY
Значение для инициализации глобальной переменной
В качестве первого параметра может фигурировать строковая константа, либо же переменная,
имеющая строковое значение. В последнем случае создается глобальная переменная с тем же
именем, что и значение этой строковой переменной.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
24
Пример:
‘
NEW_GLOBAL("GLOBAL","MyFirstGlobal")
NEW_GLOBAL(Global,1)
‘
После выполнения этих двух строк будут созданы две глобальные переменные. Строковая
переменная с именем «GLOBAL» и значением «MyFirstGlobal», а также вещественная
переменная с именем «MyFirstGlobal» и значением 1.
8.5.2
MESSAGE
Открывает Окно сообщений с заданным текстом.
MESSAGE (STRING Text, DOUBLE Msg_type)
Параметры:
№ Параметр
Тип
Описание
1
TEXT
STRING
Текст сообщения
2
MSG_TYPE
DOUBLE
Тип сообщения, определяющий вид иконки в Окне и звуковой
сигнал. Возможные значения:
1 - «Информация»;
2 - «Внимание»;
3 - «Ошибка»
Пример:
‘
MESSAGE ("Hello!",1)
‘
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
25
8.6 Математические функции
8.6.1
ABS
Возвращает модуль числа.
DOUBLE
ABS (DOUBLE Value)
8.6.2
ACOS
Возвращает значение арккосинуса аргумента.
DOUBLE
ACOS (DOUBLE Value)
8.6.3
ASIN
Возвращает значение арксинуса аргумента.
DOUBLE
ASIN (DOUBLE Value)
8.6.4
ATAN
Возвращает значение арктангенса аргумента.
DOUBLE
ATAN (DOUBLE Value)
8.6.5
CEIL
Возвращает ближайшее целое число, большее аргумента.
DOUBLE
CEIL (DOUBLE Value)
8.6.6
COS
Возвращает значение косинуса аргумента.
DOUBLE
COS (DOUBLE Value)
8.6.7
EXP
Вычисление экспонента от аргумента.
DOUBLE
EXP (DOUBLE Value)
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
26
8.6.8
FLOOR
Возвращает ближайшее целое число, меньшее аргумента.
DOUBLE
FLOOR (DOUBLE Value)
8.6.9
LOG
Вычисление натурального логарифма от аргумента.
DOUBLE
LOG (DOUBLE Value)
8.6.10
POW
Возведение аргумента в степень.
DOUBLE
POW (DOUBLE Value, DOUBLE Power)
8.6.11
RAND
Возвращает случайное целочисленное значение в диапазоне от 0 до 32767.
DOUBLE
RAND ()
8.6.12
RANDOMIZE
Генерация случайных чисел.
DOUBLE
RANDOMIZE ()
Функция инициализирует генератор случайных чисел для определения случайной
последовательности генерируемых чисел. Функцию RANDOMIZE () необходимо вызвать до того,
как будет использоваться функция RAND().
8.6.13
SIN
Возвращает значение синуса аргумента.
DOUBLE
SIN (DOUBLE Value)
8.6.14
SQRT
Возвращает значение квадратного корня аргумента.
DOUBLE
SQRT (DOUBLE Value)
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
27
8.6.15
TAN
Возвращает значение тангенса аргумента.
DOUBLE
TAN (DOUBLE Value)
Пример:
'
MESSAGE ("ACOS 0.5 - " & acos(0.5),1)
MESSAGE ("ASIN 0.5 - " & asin(0.5),1)
MESSAGE ("ATAN 2 - " & atan(2),1)
MESSAGE ("CEIL 2.2 - " & ceil(2.2),1)
MESSAGE ("COS 0.5 - " &cos(0.5),1)
MESSAGE ("EXP 2 - " &exp(2),1)
MESSAGE ("FLOOR 4.5 - " &floor(4.5),1)
MESSAGE ("LOG 0.5 - " &log(0.5),1)
MESSAGE ("POW 2,3 - " &pow(2,3),1)
MESSAGE ("RAND - " &rand(),1)
MESSAGE ("SIN 0.5 - " &sin(0.5),1)
MESSAGE ("SQRT 2 - " &sqrt(2),1)
MESSAGE ("TAN 0.5 - " &tan(0.5),1)
'
При выполнении примера на экране будет появляться Окно сообщений с отображением
функции и результата вычисления ее значения.
8.7 Функции для работы с коллекциями объектов
(COLLECTION)
Функции из этой группы предназначены для оперирования переменными типа COLLECTION.
Коллекция является списком объектов, с индексацией по целочисленному ключу (начиная с 0).
Коллекция может содержать элементы любых типов, в том числе и переменные типа COLLECTION.
Коллекция может быть неоднородной, т.е. содержать объекты разных типов. В текущей
реализации доступ к элементу коллекции по индексу осуществляется за линейное время.
8.7.1
CREATE_COLLECTION
Первая функция создает пустую коллекцию, вторая является конструктором копирования.
COLLECTION CREATE_COLLECTION ()
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
28
COLLECTION CREATE_COLLECTION (COLLECTION IntValue)
8.7.2
GET_COLLECTION_COUNT
Функция возвращает количество элементов в коллекции.
DOUBLE
GET_COLLECTION_COUNT (COLLECTION Name)
8.7.3
REMOVE_COLLECTION_ITEM
Функция удаляет элемент с индексом «index» из коллекции «Name».
COLLECTION REMOVE_COLLECTION_ITEM (COLLECTION Name, DOUBLE index)
8.7.4
INSERT_COLLECTION_ITEM
Функция вставляет значение «value» в качестве элемента с индексом «index».
COLLECTION INSERT_COLLECTION_ITEM (COLLECTION Name, DOUBLE index, ANY value)
Выполняется вставка в коллекцию элемента с индексом «index», существующий элемент
коллекции с индексом «index» сдвигается на единицу в элемент с индексом «index+1», и т.д. для
всех существующих элементов, индекс которых равен или больше значения индекса вставки.
См. пример к п. 8.7.6.
8.7.5
SET_COLLECTION_ITEM
Функция заменяет значение элемента с индексом «index» на значение «value».
COLLECTION SET_COLLECTION_ITEM (COLLECTION Name, DOUBLE index, ANY value)
8.7.6
GET_COLLECTION_ITEM
Функция возвращает значение элемента с индексом «index».
ANY
GET_COLLECTION_ITEM (COLLECTION Name, DOUBLE index)
Параметры:
№ Параметр Тип
Описание
1
INTVALUE
COLLECTION Коллекция для инициализации вновь создаваемого объекта
2
NAME
STRING
Имя коллекции
3
INDEX
DOUBLE
Индекс для обращения к коллекции. Должен содержать целочисленное
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
29
№ Параметр Тип
Описание
значение
4
VALUE
ANY
Значение произвольного типа для включения в коллекцию
Пример:
‘
col=CREATE_COLLECTION()
FOR i FROM 0 TO 9
col=INSERT_COLLECTION_ITEM(col,0,0)
col=SET_COLLECTION_ITEM(col,0,i)
END FOR
s = GET_COLLECTION_ITEM(col,5)
len = GET_COLLECTION_COUNT(col)
‘
Создается пустая коллекция. Затем 10 раз в коллекцию вставляется нулевой элемент
со значением 0 и тут же его значение меняется на значение переменной цикла. В результате
получается коллекция из 10-ти элементов. После выполнения программы «s»=4, «len»=10, а «col»
имеет следующий вид:
0
1
2
3
4
5
6
7
8
9
9
8
7
6
5
4
3
2
1
0
8.8 Функции для работы с ассоциативными
массивами (MAP)
Функции из этой группы предназначены для оперирования переменными типа MAP.
Ассоциативный массив (MAP) является последовательностью пар (ключ, значение), которая
обеспечивает получение значения по ключу. Каждому ключу соответствует максимум одно
значение. Ассоциативный массив может содержать элементы любых типов, в том числе
и переменные структурных типов, разные элементы такого массива могут содержать объекты
разных типов в качестве значений. В качестве ключа всегда выступает строковое значение.
В текущей реализации доступ к элементу коллекции по ключу осуществляется за линейное
время.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
30
8.8.1
CREATE_MAP
Первая функция создает пустой массив, вторая является конструктором копирования.
MAP CREATE_MAP ()
MAP CREATE_MAP (MAP IntValue)
8.8.2
SET_VALUE
Функция добавляет в массив «Name» элемент со значением «Value» и ключом «Key».
Если массив уже содержал элемент с ключом «Key», то значение этого элемента заменяется
на «Value». Функция возвращает модифицированный массив.
MAP SET_VALUE(MAP Name, STRING Key, ANY Value)
8.8.3
GET_VALUE
Функция возвращает значение элемента с ключом «Key» из массива «Name». Если элемент
не найден, то возвращается пустая строка.
STRING
GET_VALUE(MAP Name, STRING Key)
Параметры:
№ Параметр
Тип
Описание
1
INTVALUE
MAP
Массив для инициализации вновь создаваемого объекта
2
NAME
STRING
Имя массива
3
KEY
STRING
Значение ключа для вставки или доступа к элементу массива
4
VALUE
ANY
Значение произвольного типа для добавления в массив
Пример:
‘
map=CREATE_MAP ()
FOR i FROM 0 TO 9
map=SET_VALUE(map, "key" & i, i)
END FOR
s = GET_VALUE(map, "key5")
‘
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
31
Создается пустой массив. Затем, в цикле, в массив вставляются элементы со значением равным
переменной цикла и ключом вида «"key" & i». После выполнения программы «s»=5.
Функция возвращает значение типа STRING, если оно не будет явно
преобразовано к типу DOUBLE.
Например:
RES=0+GET_VALUE
8.9 Функции для обращения к строкам
произвольных таблиц QUIK
Функции из этой группы предназначены для доступа к данным, содержащимся в таблицах
Рабочего места QUIK.
8.9.1
GET_ITEM
Функция возвращает ассоциативный массив (MAP), содержащий информацию о данных
из строки с номером «Index» из таблицы с именем «TableName».
MAP GET_ITEM(STRING TableName,DOUBLE Index)
Возвращаемый массив, в качестве своих элементов, содержит значения ячеек таблицы
клиентского места, ключами элементов являются названия колонок. Возможные значения поля
«TableName» и ключей приведены ниже в таблицах. Для программируемой таблицы «OWN»
значения ключей соответствуют названиям колонок, указанным в секции описания параметров.
8.9.2
GET_NUMBER_OF
Функция возвращает количество записей в таблице TableName.
DOUBLE
GET_NUMBER_OF(STRING TableName)
Параметры:
№ Параметр
Тип
Описание
1
TABLENAME
STRING
Имя таблицы QUIK
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
32
№ Параметр
Тип
Описание
2
INDEX
DOUBLE
Индекс для обращения к коллекции. Должен содержать
целочисленное значение.
Пример:
‘
n=GET_NUMBER_OF("ALL_TRADES")
value=0
FOR i FROM 1 to n
trade = GET_ITEM ("ALL_TRADES", i)
value = value + GET_VALUE (trade, "VALUE")
END FOR
‘
В данном примере сначала запрашивается количество записей в Таблице обезличенных
сделок, затем в цикле для каждой записи получается соответствующий MAP из которого
достается значение по ключу «VALUE». В итоге, переменная «value» содержит суммарный объем
обезличенных сделок на данный момент.
8.9.3
Описания таблиц и параметров
1. Таблицы, используемые в функциях «GET_NUMBER_OF» и «GET_ITEM»:
TableName
Таблица
ORDERS
Заявки
STOP_ORDERS
Стоп заявки
TRADES
Сделки
ALL_TRADES
Обезличенные сделки
MONEY_LIMITS
Лимиты по денежным средствам
DEPO_LIMITS
Лимиты по бумагам
FUTURES_CLIENT_HOLDINGS
Позиции по клиентским счетам (фьючерсы)
FUTURES_CLIENT_LIMITS
Ограничения по клиентским счетам (фьючерсы)
NEG_DEALS
Таблица заявок на внебиржевые сделки
NEGOTIATION_TRADES
Таблица сделок для исполнения
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
33
TableName
Таблица
NEG_DEAL_REPORTS
Таблица заявок-отчетов на сделки РПС
POSITIONS
Таблица денежных позиций
FIRM_HOLDING
Текущие позиции по бумагам
ACCOUNT_BALANCE
Текущие позиции по счетам
OWN
Таблица, создаваемая при расчете программы
2. Описание параметров Таблицы заявок, возвращаемое функцией «GET_ITEM»:
№
Параметр
Тип
Описание
Возможные значения
1
NUMBER
DOUBLE
Номер заявки в торговой
системе
2
EXCHANGE_CODE
STRING
Код биржи в торговой
системе
3
DATE
DOUBLE
Дата выставления
4
TIME
DOUBLE
Время выставления
5
ACTIVATION_TIME
DOUBLE
Время активации
6
WITHDRAW_TIME
DOUBLE
Время снятия заявки
7
SECURITY
STRING
Краткое наименование
бумаги
8
SECCODE
STRING
Код бумаги заявки
9
CLASS
STRING
Краткое название класса
заявки
10
CLASSCODE
STRING
Код класса заявки
11
OPERATION
STRING
Операция
«SELL» или «BUY»
12
ACCOUNT
STRING
Торговый счет
13
PRICE
DOUBLE
Цена
14
QUANTITY
DOUBLE
Количество в лотах
15
BALANCE
DOUBLE
Остаток
16
VALUE
DOUBLE
Объем в денежных
средствах
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
34
№
Параметр
Тип
Описание
Возможные значения
17
TRADE_CURRENCY
STRING
Валюта заявки
18
YIELD
DOUBLE
Доходность
19
ACCRUEDINT
DOUBLE
Накопленный купонный
доход
20
USERID
STRING
Идентификатор трейдера
21
FIRMID
STRING
Идентификатор фирмы
22
CLIENTCODE
STRING
Код клиента
23
COMMENT
STRING
Комментарий
24
STATUS
STRING
Статус заявки
«ACTIVE» или «KILLED»
или «FILLED»
25
TYPE
STRING
Тип заявки
Последовательность трех
символов:
1-й: «L» - лимитированная,
«M» - рыночная;
2-й: «S» - разрешить
исполнение по разным ценам,
«O» - по одной цене;
3-й: «N» - немедленно или
отклонить, «W» - снять остаток,
« » - нет условия
26
TRANS_ID
DOUBLE
Идентификатор
транзакции
27
SETTLECODE
STRING
Код расчетов
28
PRICE2
DOUBLE
Цена выкупа
29
IS_MARKET_MAKER_O
STRING
Заявка Маркет-мейкера
«YES» или « »
RDER
30
SESSION_DATE
DOUBLE
Дата текущей торговой
сессии
31
TIME_MICROSEC
DOUBLE
Количество микросекунд
во времени выставления
32
WITHDRAW_DATE
DOUBLE
Дата снятия заявки
33
WITHDRAW_TIME_MIC
DOUBLE
Количество микросекунд
ROSEC
во времени снятия
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
35
№ Параметр
Тип
Описание
Возможные значения
34
PERIOD
DOUBLE Период торговой сессии
«0» - открытие,
«1» - нормальный,
«2» - закрытие
35
VISIBLE_QUANTITY
DOUBLE Видимое количество.
Параметр заявок типа
«Айсберг»
36
LINKED_ORDER
DOUBLE Номер заявки в торговой
системе
37
SEC_CURRENCY
STRING
Валюта расчетов
38
EXPIRE_DATE
DOUBLE Срок
39
UID
DOUBLE UID
3. Описание параметров Таблицы сделок, возвращаемое функцией «GET_ITEM»:
№ Параметр
Тип
Описание
Возможные значения
1
NUMBER
DOUBLE Номер сделки в торговой
системе
2
EXCHANGE_CODE
STRING
Код биржи в торговой
системе
3
DATE
DOUBLE Дата совершения
4
TIME
DOUBLE Время совершения
5
ORDER_NUMBER
DOUBLE Номер заявки в торговой
системе
6
SECURITY
STRING
Краткое название бумаги
7
SECCODE
STRING
Код бумаги заявки
8
CLASS
STRING
Краткое название класса
9
CLASSCODE
STRING
Код класса
10
OPERATION
STRING
Операция
«SELL» или «BUY»
11
TYPE
STRING
Тип сделки
«MARGIN», если сделка
маржинальная
12
ACCOUNT
STRING
Торговый счет
13
PRICE
DOUBLE Цена
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
36
№
Параметр
Тип
Описание
Возможные значения
14
QUANTITY
DOUBLE
Количество в лотах
15
VALUE
DOUBLE
Объем в денежных
средствах
16
TRADE_CURRENCY
STRING
Валюта
17
SETTLE_CURRENCY
STRING
Валюта расчетов
18
SETTLE_CODE
STRING
Код расчетов
19
YIELD
DOUBLE
Доходность
20
ACCRUEDINT
DOUBLE
Накопленный купонный
доход
21
USERID
STRING
Идентификатор трейдера
22
STATION_ID
STRING
Идентификатор рабочей
станции
23
FIRMID
STRING
Идентификатор дилера
24
FIRMNAME
STRING
Идентификатор
организации трейдера
25
CLIENTCODE
STRING
Код клиента
26
COMMENT
STRING
Комментарий
27
PARTNER_FIRMID
STRING
Идентификатор фирмы
партнера
28
PARTNER_FIRM_NAME
STRING
Название фирмы
партнера
29
PRICE2
DOUBLE
Цена выкупа
30
REPORATE
DOUBLE
Ставка РЕПО(%)
31
TS_COMISSION
DOUBLE
Комиссия торговой
системы
32
CLEARING_
DOUBLE
Клиринговая комиссия
COMISSION
(Московской Биржи)
33
EXCHANGE_
DOUBLE
Комиссия Фондовой
COMISSION
биржи (Московской
Биржи)
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
37
№ Параметр
Тип
Описание
Возможные значения
34
TECH_CENTER_
DOUBLE Комиссия Технического
COMISSION
центра (Московской
Биржи)
35
ACCRUED2
DOUBLE Доход(%) на дату выкупа
36
REPOVALUE
DOUBLE Сумма РЕПО
37
REPO2VALUE
DOUBLE Объем выкупа РЕПО
38
REPOTERM
DOUBLE Срок РЕПО
39
START_DISCOUNT
DOUBLE Начальный дисконт(%)
40
LOWER_DISCOUNT
DOUBLE Нижний дисконт(%)
41
UPPER_DISCOUNT
DOUBLE Верхний дисконт(%)
42
BLOCK_SECURITIES
STRING
Блокировка обеспечения «Да» или «Нет»
43
SESSION_DATE
DOUBLE Дата текущей торговой
сессии
44
TIME_MICROSEC
DOUBLE Количество микросекунд
во времени совершения
45
PERIOD
DOUBLE Период торговой сессии
«0» - открытие;
«1» - нормальный;
«2» - закрытие
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
38
№ Параметр
Тип
Описание
Возможные значения
46
KIND
DOUBLE Вид сделки
«1» - обычная;
«2» - адресная;
«3» - первичное размещение;
«4» - перевод денег / бумаг;
«5» - адресная сделка первой
части РЕПО;
«6» - расчетная по операции
своп;
«7» - расчетная
по внебиржевой операции
своп;
«8» - расчетная сделка
бивалютной корзины;
«9» - расчетная внебиржевая
сделка бивалютной корзины;
«10» - сделка по операции
РЕПО с ЦК;
«11» - первая часть сделки по
операции РЕПО с ЦК;
«12» - вторая часть сделки по
операции РЕПО с ЦК;
«13» - адресная сделка по
операции РЕПО с ЦК;
«14» - первая часть адресной
сделки по операции РЕПО с
ЦК;
«15» - вторая часть адресной
сделки по операции РЕПО с
ЦК;
«16» - техническая сделка по
возврату активов РЕПО с ЦК
4. Описание параметров Таблицы обезличенных сделок, возвращаемое функцией «GET_ITEM»:
№
Параметр
Тип
Описание
Возможные значения
1
NUMBER
DOUBLE Номер сделки в торговой
системе
2
DATE
DOUBLE Дата выставления
3
TIME
DOUBLE Время выставления
4
SECURITY
STRING
Краткое наименование
бумаги
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
39
№
Параметр
Тип
Описание
Возможные значения
5
SECCODE
STRING
Код бумаги заявки
6
CLASS
STRING
Краткое название класса
7
CLASSCODE
STRING
Код класса
8
PRICE
DOUBLE
Цена
9
QUANTITY
DOUBLE
Количество в лотах
10
VALUE
DOUBLE
Объем в денежных
средствах
11
OPERATION
STRING
Направление операции
«SELL» или «BUY»
12
ACCRUEDINT
DOUBLE
Накопленный купонный
доход
13
YIELD
DOUBLE
Доходность
14
SETTLE_CODE
STRING
Код расчетов
15
REPORATE
DOUBLE
Ставка РЕПО(%)
16
REPOVALUE
DOUBLE
Сумма РЕПО
17
REPO2VALUE
DOUBLE
Объем выкупа РЕПО
18
REPOTERM
DOUBLE
Срок РЕПО
19
SESSION_DATE
DOUBLE
Дата текущей торговой
сессии
20
TIME_MICROSEC
DOUBLE
Количество микросекунд
во времени совершения
21
PERIOD
DOUBLE
Период торговой сессии
«0» - открытие;
«1» - нормальный;
«2» - закрытие
5. Описание параметров Таблицы стоп-заявок, возвращаемое функцией «GET_ITEM»:
№ Параметр
Тип
Описание
Возможные значения
1
NUMBER
DOUBLE
Регистрационный
номер стоп-заявки на
сервере QUIK
2
DATE
DOUBLE
Дата выставления
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
40
№
Параметр
Тип
Описание
Возможные значения
3
TIME
DOUBLE
Время выставления
4
WITHDRAW_TIME
DOUBLE
Время снятия заявки
5
STOP_ORDER_TYPE
DOUBLE
Вид стоп заявки
«1» - стоп-лимит;
«2» - условие по другому
инструменту;
«3» - со связанной заявкой;
«6» - тейк-профит;
«7» - стоп-лимит
по исполнению активной
заявки;
«8» - тейк-профит
по исполнению активной
заявки;
«9» - тэйк-профит и стоп-
лимит
6
TYPE
STRING
Тип заявки
Последовательность трех
символов:
1-й: «L» - лимитированная,
«M» - рыночная;
2-й: «S» - разрешить
исполнение по разным ценам,
«O» - по одной цене;
3-й: «N» - немедленно или
отклонить, «W» - снять
остаток, « » - нет условия
7
SECURITY
STRING
Краткое название
бумаги
8
SECCODE
STRING
Код бумаги заявки
9
CLASS
STRING
Краткое название
класса заявки
10
CLASSCODE
STRING
Код класса заявки
11
OPERATION
STRING
Операция
«SELL» или «BUY»
12
ACCOUNT
STRING
Торговый счет
13
CONDITION_SECURITY
STRING
Бумага стоп-цены
14
CONDITION_SECCODE
STRING
Код бумаги стоп-цены
15
CONDITION_CLASS
STRING
Класс стоп-цены
16
CONDITION_
STRING
Код класса стоп-цены
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
41
№
Параметр
Тип
Описание
Возможные значения
CLASSCODE
17
CONDITION
STRING
Направленность стоп-
«LESS_OR_EQUAL_VALUE» или
цены
«GREATER_OR_EQUAL_VALUE»
18
CONDITION_PRICE
DOUBLE
Стоп-цена
19
CONDITION2
STRING
Направленность стоп-
«LESS_OR_EQUAL_VALUE» или
лимит цены (для
«GREATER_OR_EQUAL_VALUE»
заявок типа «Тэйк-
профит и стоп-лимит»)
20
CONDITION_PRICE2
DOUBLE
Стоп-лимит цена (для
заявок типа «Тэйк-
профит и стоп-лимит»)
21
PRICE
DOUBLE
Цена
22
MARKET_STOP_LIMIT
STRING
Признак исполнения
«Да» либо пусто
заявки «стоп-лимит»
по рыночной цене (для
заявок типа «Тэйк-
профит и стоп-лимит»)
23
QUANTITY
DOUBLE
Количество в лотах
24
BALANCE
DOUBLE
Активное количество
25
FILLED_VOLUME
DOUBLE
Исполненное
количество
26
FIRMID
STRING
Дилер
27
UID
DOUBLE
UID
28
CLIENTCODE
STRING
Код клиента
29
COMMENT
STRING
Комментарий
30
LINKED_ORDER
DOUBLE
Номер заявки
в торговой системе,
зарегистрированной
по наступлению
условия стоп-цены
31
ALL_TRADE_NUMBER
DOUBLE
Сделка условия
32
EXPIRE_DATE
DOUBLE
Срок
33
EXPIRY_DATE_IS_TODAY
STRING
Срок действия заявки
равен «Сегодня»
34
ACTIVE_IN_TIME_
STRING
Признак действия
«Да» либо пусто
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
42
№
Параметр
Тип
Описание
Возможные значения
INTERVAL
заявки типа «Тэйк-
профит и стоп-лимит»
в течение периода
времени
35
ACTIVE_FROM_TIME
DOUBLE
Время начала периода
действия заявки типа
«Тэйк-профит и стоп-
лимит»
36
ACTIVE_TO_TIME
DOUBLE
Время окончания
периода действия
заявки типа «Тэйк-
профит и стоп-лимит»
37
USE_BASE_ORDER_
STRING
Брать исполненный
«Да» либо пусто
BALANCE
объем в качестве
количества выстав-
ляемой стоп-заявки
(для заявок
«по исполнению»)
38
KILL_IF_LINKED_ORDER
STRING
При частичном
«Да» либо пусто
_PARTLY_FILLED
исполнении связанной
заявки снять стоп-
заявку (для заявок «по
исполнению»)
39
ACTIVATE_IF_BASE_
STRING
Частичное исполнение
«Да» либо пусто
ORDER_PARTLY_FILLED
учитывается (для
заявок «по
исполнению»)
40
TYPE_DESCRIPTION
STRING
Тип
41
STATUS
STRING
Статус заявки
«ACTIVE», «KILLED» или «FILLED»
42
RESULT_DESCRIPTION
STRING
Результат
«Отвергнута ТС»;
«Не прошла контроль
лимитов»;
«Связ. заявка снята»;
«Связ. заявка исполнена»;
«Рассчитывается min\max»;
«Ждет активации»;
«Рассчитывается min\max
и ждет активации»;
«Снята»;
«Выставлена заявка в ТС»
43
СO_ORDER_NUMBER
DOUBLE
Связанная заявка
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
43
№ Параметр
Тип
Описание
Возможные значения
44
CO_ORDER_PRICE
DOUBLE
Цена связанной заявки
45
TRANS_ID
DOUBLE
Идентификатор
транзакции
46
OFFSET
DOUBLE
Отступ от min/max
47
OFFSET_UNITS
STRING
Единицы отступа
«%» или «Д»
48
SPREAD
DOUBLE
Защитный спрэд
49
SOE_USE_SPREAD_AS_P
STRING
Значение «защитного
«Да» либо пусто
ERCENTS
спрэда» указано
в процентах
50
MARKET_TAKE_PROFIT STRING
Признак исполнения
«Да» либо пусто
заявки «тэйк-профит»
по рыночной цене (для
заявок типа «Тэйк-
профит и стоп-лимит»)
51
BASE_ORDER_NUM
DOUBLE
Заявка условия
52
OWNER_SERVER
STRING
Сервер
«Другой» или «Текущий»
6. Описание параметров Таблицы лимитов по денежным средствам, возвращаемое функцией
«GET_ITEM»:
№
Параметр
Тип
Описание
1
FIRMID
STRING
Идентификатор фирмы
2
CURRCODE
STRING
Код валюты
3
TAG
STRING
Тэг расчетов
4
CLIENT_CODE
STRING
Код клиента
5
OPEN_BALANCE
DOUBLE
Входящий остаток по деньгам
6
OPEN_LIMIT
DOUBLE
Входящий лимит по деньгам
7
CURRENT_BALANCE
DOUBLE
Текущий остаток по деньгам
8
CURRENT_LIMIT
DOUBLE
Текущий лимит по деньгам
9
LOCKED
DOUBLE
Заблокированное количество
10
AVAILABLE
DOUBLE
Доступное количество
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
44
№
Параметр
Тип
Описание
11
LOCKED_VALUE
DOUBLE
Количество денежных средств, заблокированное на
покупку немаржинальных ценных бумаг
12
LIMIT_KIND
DOUBLE
Вид лимита
7. Описание параметров Таблицы лимитов по бумагам, возвращаемое функцией «GET_ITEM»:
№ Параметр
Тип
Описание
1
FIRMID
STRING
Идентификатор фирмы
2
SECCODE
STRING
Код бумаги
3
TRDACCID
STRING
Счет депо
4
CLIENT_CODE
STRING
Код клиента
5
OPEN_BALANCE
DOUBLE
Входящий остаток по бумагам
6
OPEN_LIMIT
DOUBLE
Входящий лимит по бумагам
7
CURRENT_BALANCE
DOUBLE
Текущий остаток по бумагам
8
CURRENT_LIMIT
DOUBLE
Текущий лимит по бумагам
9
LOCKED_SELL
DOUBLE
Заблокировано
10
AVAILABLE
DOUBLE
Доступное количество
11
WA_POSITION_PRICE
DOUBLE
Цена приобретения
12
LIMIT_KIND
DOUBLE
Вид лимита
8. Описание параметров Таблицы ограничений по клиентским счетам, возвращаемое
функцией «GET_ITEM»:
№
Параметр
Тип
Описание
Возможные значения
1
FIRMID
STRING
Идентификатор фирмы
2
TRDACCID
STRING
Торговый счет
3
TYPE
STRING
Тип лимита
«Ден.средства» или «Залоговые
ден.средства» или «Всего»
4
LIQUIDITY_COEFF
DOUBLE
Коэффициент
ликвидности
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
45
№
Параметр
Тип
Описание
Возможные значения
5
CBP_PREV_LIMIT
DOUBLE
Предыдущий лимит
открытых позиций
6
CBPLIMIT
DOUBLE
Лимит открытых
позиций
7
CBPLUSED
DOUBLE
Текущие чистые
позиции
8
CBPLUSED_FOR_
DOUBLE
Текущие чистые
ORDERS
позиции (под заявки)
9
CBPLUSED_FOR_
DOUBLE
Текущие чистые
POSITIONS
позиции (под открытые
позиции)
10
CBPLPLANNED
DOUBLE
Планируемые чистые
позиции
11
VARMARGIN
DOUBLE
Вариационная маржа
12
ACCRUEDINT
DOUBLE
Накопленный доход
13
OPTIONS_PREMIUM
DOUBLE
Премия по опционам
14
TS_COMISSION
DOUBLE
Биржевые сборы
15
KGO
DOUBLE
Коэффициент
клиентского
гарантийного
обеспечения
9. Описание параметров Таблицы позиций по клиентским счетам, возвращаемое функцией
«GET_ITEM»:
№ Параметр
Тип
Описание
Возможные значения
1
FIRMID
STRING
Идентификатор фирмы
2
TRDACCID
STRING
Торговый счет
3
SECCODE
STRING
Код фьючерсного
контракта
4
SEC_SHORT_NAME
STRING
Краткое название
контракта
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
46
№
Параметр
Тип
Описание
Возможные значения
5
TYPE
STRING
Тип лимита
«Основной счет» или
«Клиентские и дополнительные
счета» или «Все счета торг.
членов» или <пусто>
6
START_BUY
DOUBLE
Входящие длинные
позиции
7
START_SELL
DOUBLE
Входящие короткие
позиции
8
START_NET
DOUBLE
Входящие чистые
позиции
9
TODAY_BUY
DOUBLE
Текущие длинные
позиции
10
TODAY_SELL
DOUBLE
Текущие короткие
позиции
11
TOTAL_NET
DOUBLE
Текущие чистые позиции
12
OPEN_BUYS
DOUBLE
Активные на покупку
13
OPEN_SELLS
DOUBLE
Активные на продажу
14
CBPLUSED
DOUBLE
Оценка текущих чистых
позиций
15
CBPLPLANNED
DOUBLE
Плановые чистые
позиции
16
VARMARGIN
DOUBLE
Вариационная маржа
17
AVRPOSNPRICE
DOUBLE
Эффективная цена
позиций
18
POSITIONVALUE
DOUBLE
Стоимость позиций
10.Описание параметров Таблицы заявок на внебиржевые сделки, возвращаемое функцией
«GET_ITEM»:
№
Параметр
Тип
Описание
Возможные значения
1
NUMBER
DOUBLE
Номер
2
QUOTENO
DOUBLE
Встречная безадресная
заявка
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
47
№
Параметр
Тип
Описание
Возможные значения
3
DATE
STRING
Дата выставления заявки
4
TIME
STRING
Время выставления заявки
5
ACTIVATION_DATE
DOUBLE
Дата активации заявки
6
ACTIVATION_TIME
DOUBLE
Время активации заявки
7
SECURITY
STRING
Краткое название бумаги
8
SECCODE
STRING
Код бумаги
9
CLASS
STRING
Класс
10
CLASSCODE
STRING
Код класса
11
OPERATION
STRING
Операция
«Купля» либо «Продажа»
12
ACCOUNT
STRING
Счет
13
PRICE
DOUBLE
Цена
14
QUANTITY
DOUBLE
Количество
15
USERID
STRING
Трейдер
16
FIRMID
STRING
Идентификатор дилера
17
FIRMNAME
STRING
Идентификатор
организации трейдера
18
UID
DOUBLE
UID
19
CPUSERID
STRING
Трейдер партнера
20
CPFIRMID
STRING
Идентификатор партнера
21
CPFIRMNAME
STRING
Организация партнёр
22
CLIENTCODE
STRING
Код клиента
23
COMMENT
STRING
Комментарий
24
MATCH_REFERENCE
STRING
Ссылка
25
STATUS
STRING
Состояние
«Активна», «Исполнена»
или «Снята»
26
SETTLE_CODE
STRING
Код расчетов
27
DIRECTION
STRING
Направленность
«Отправлена», «Получена» или
«Отправлена и получена»
28
YIELD
DOUBLE
Доходность
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
48
№
Параметр
Тип
Описание
Возможные значения
29
VALUE
DOUBLE
Объем
30
ACCRUEDINT
DOUBLE
Купонный процент
31
PRICE2
DOUBLE
Цена выкупа
32
REFUNDRATE
DOUBLE
Ставка возмещения (%)
33
REPORATE
DOUBLE
Ставка РЕПО (%)
34
TRANS_ID
DOUBLE
ID транзакции
35
REPOVALUE
DOUBLE
Сумма РЕПО
36
REPO2VALUE
DOUBLE
Объем выкупа РЕПО
37
REPOENTRY
STRING
Тип ввода заявки РЕПО
«Цена1+Ставка», «Ставка+
Цена2», «Цена1+Цена2»,
«Сумма РЕПО + Количество»,
«Сумма РЕПО + Дисконт»,
«Количество + Дисконт»,
«Сумма РЕПО», «Количество»
38
REPOTERM
DOUBLE
Срок РЕПО
39
START_DISCOUNT
DOUBLE
Начальный дисконт(%)
40
LOWER_DISCOUNT
DOUBLE
Нижний дисконт(%)
41
UPPER_DISCOUNT
DOUBLE
Верхний дисконт(%)
42
BLOCK_SECURITIES
STRING
Блокировка обеспечения
«Да» или «Нет»
43
ORIG_REPOVALUE
DOUBLE
Сумма РЕПО
первоначальная
44
ORIG_VOLUME
DOUBLE
Количество
первоначальное
45
ORIG_DISCOUNT
DOUBLE
Процент дисконта
первоначальный
46
WITHDRAW_TIME
DOUBLE
Время снятия заявки
47
BALANCE
DOUBLE
Остаток
48
SETTLE_CURRENCY
STRING
Валюта расчетов
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
49
11.Описание параметров Таблицы сделок для исполнения, возвращаемое функцией
«GET_ITEM»:
№
Параметр
Тип
Описание
Возможные значения
1
NUMBER
DOUBLE
Номер
2
ORDER_NUMBER
DOUBLE
Номер заявки
3
DATE
STRING
Дата торгов
4
SETTLEDATE
STRING
Дата расчетов
5
CLASS
STRING
Класс
6
CLASSCODE
STRING
Код класса
7
SECCODE
STRING
Код бумаги
8
SECURITY
STRING
Краткое наименование
бумаги
9
OPERATION
STRING
Операция
«Купля» либо «Продажа»
10
CLIENTCODE
STRING
Код клиента
11
COMMENT
STRING
Комментарий
12
FIRMID
STRING
Идентификатор дилера
13
FIRMNAME
STRING
Идентификатор
организации трейдера
14
ACCOUNT
STRING
Счет депо
15
CPFIRMNAME
STRING
Партнер
16
CPFIRMID
STRING
Идентификатор
партнера
17
CPACCOUNT
STRING
Счет депо партнера
18
PRICE
DOUBLE
Цена
19
QUANTITY
DOUBLE
Количество
20
VALUE
DOUBLE
Объем
21
STATUS
STRING
Состояние
«FILLED» - исполнена;
«NOT FILLED» -
не исполнена;
«INCLUDE IN REPORT» -
включена в отчет
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
50
№
Параметр
Тип
Описание
Возможные значения
22
ACCRUEDINT
DOUBLE
Купонный %
23
PRICE1
DOUBLE
Цена 1ой части РЕПО
24
PRICE2
DOUBLE
Цена выкупа
25
REPORTTRADENO
DOUBLE
Номер сделки 1ой части
РЕПО
26
REPORATE
DOUBLE
Ставка РЕПО(%)
27
SETTLE_CODE
STRING
Код расчетов
28
REPORT_NUM
DOUBLE
Отчет
29
CPREPORT_NUM
DOUBLE
Отчет партнера
30
TS_COMISSION
DOUBLE
Комиссия торговой
системы
31
BALANCE
DOUBLE
Остаток
32
SETTLETIME
STRING
Время исполнения
33
AMOUNT
DOUBLE
Сумма обязательства
34
REPOVALUE
DOUBLE
Сумма РЕПО
35
REPOTERM
DOUBLE
Срок РЕПО
36
REPO2VALUE
DOUBLE
Объем выкупа РЕПО
37
RETURN_VALUE
DOUBLE
Сумма возврата РЕПО
38
DISCOUNT
DOUBLE
Дисконт(%)
39
LOWER_DISCOUNT
DOUBLE
Нижний дисконт(%)
40
UPPER_DISCOUNT
DOUBLE
Верхний дисконт(%)
41
BLOCK_SECURITIES
STRING
Блокировать
«Да» либо «Нет»
обеспечение
42
URGENCY_FLAG
STRING
Исполнить
«Да» либо «Нет»
43
TRADE_TYPE
STRING
Тип
«Внесистемная сделка»;
«Первая часть сделки РЕПО»;
«Вторая часть сделки РЕПО»;
«Компенсационный взнос»
44
TRADE_OPERATION_
STRING
Направленность
«Зачислить» либо «Списать»
TYPE
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
51
№
Параметр
Тип
Описание
Возможные значения
45
EXPECTED_DISCOUNT
DOUBLE
Дисконт после
взноса(%)
46
EXPECTED_QUANTITY
DOUBLE
Количество после
взноса
47
EXPECTED_REPOVALUE
DOUBLE
Сумма РЕПО после
взноса
48
EXPECTED_
DOUBLE
Стоимость выкупа после
REPO2VALUE
взноса
49
EXPECTED_RETURN_
DOUBLE
Сумма возврата после
VALUE
взноса
50
REPORT_TRADE_DATE
DOUBLE
Дата заключения
51
STATE_OF_CLEARING
STRING
Состояние расчетов
«Processed»;
«Not processed»;
«Is processing»
52
TYPE_OF_CLEARING
STRING
Тип клиринга
«Not set»;
«Simple»;
«Multilateral»
53
REPORT_COMISSION
DOUBLE
Комиссия за отчет
54
COUPON_PAYMENT
DOUBLE
Купонная выплата
55
COUPON_PAYMENT_
DOUBLE
Дата купонной выплаты
DATE
56
PRINCIPAL_PAYMENT
DOUBLE
Выплата по основному
долгу
57
PRINCIPAL_PAYMENT_
DOUBLE
Дата выплаты
DATE
по основному долгу
58
SETTLE_CURRENCY
STRING
Валюта расчетов
12.Описание параметров Таблицы заявок-отчетов на сделки РПС, возвращаемое функцией
«GET_ITEM»:
№ Параметр
Тип
Описание
Возможные значения
1
NUMBER
DOUBLE
Номер
2
DATE
STRING
Дата
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
52
№
Параметр
Тип
Описание
Возможные значения
3
TIME
STRING
Время выставления
заявки
4
CLASS
STRING
Класс
5
SECCODE
STRING
Код бумаги
6
SECURITY
STRING
Краткое наименование
бумаги
7
USERID
STRING
Идентификатор трейдера
8
FIRMID
STRING
Идентификатор дилера
9
FIRMNAME
STRING
Идентификатор
организации трейдера
10
ACCOUNT
STRING
Счет депо
11
CPFIRMNAME
STRING
Партнер
12
CPFIRMID
STRING
Идентификатор партнера
13
CPACCOUNT
STRING
Счет депо партнера
14
QUANTITY
DOUBLE
Количество
15
VALUE
DOUBLE
Объем
16
COMISSION
DOUBLE
Комиссия
17
DIRECTION
STRING
Направленность
«Отправлен» или «Получен»
18
STATUS
STRING
Состояние
«Ждет исполнения», «Снят»
либо «Исполнен»
19
REPORT_TYPE
STRING
Тип отчета
«EXECUTION» или «CANCEL
EXECUTION»
20
REPORT_KIND
STRING
Вид отчета
13.Описание параметров Таблицы денежных позиций, возвращаемое функцией «GET_ITEM»:
№ Параметр
Тип
Описание
Возможные значения
1
FIRMID
STRING
Фирма
2
CURRCODE
STRING
Валюта
3
TAG
STRING
Группа
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
53
№ Параметр
Тип
Описание
Возможные значения
4
DESCRIPTION
STRING
Описание
5
OPENBAL
DOUBLE
Входящий
6
CURRENTPOS
DOUBLE
Текущий
7
PLANNEDPOS
DOUBLE
Плановый
8
LIMIT1
DOUBLE
Внешнее ограничение
9
ORDERBUY
DOUBLE
На покупку (в заявках)
10
ORDERSELL
DOUBLE
На продажу (в
заявках)
11
NETOBLIGATION
DOUBLE
Нетто
12
PLANNEDBAL
DOUBLE
Контрольная
13
BANK_ACC_ID
STRING
Идентификатор счета
14.Описание параметров Таблицы текущих позиций по бумагам, возвращаемое функцией
«GET_ITEM»:
№ Параметр
Тип
Описание
Возможные значения
1
FIRMID
STRING
Фирма
2
SEC_SHORT_NAME
STRING
Название бумаги
3
SECCODE
STRING
Код бумаги
4
OPENBAL
DOUBLE
Входящий
5
CURRENTPOS
DOUBLE
Текущий
6
PLANNEDPOSBUY
DOUBLE
Плановая покупка
7
PLANNEDPOSSELL
DOUBLE
Плановая продажа
8
USQTYB
DOUBLE
Куплено
9
USQTYS
DOUBLE
Продано
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
54
15.Описание параметров Таблицы текущих позиций по счетам, возвращаемое функцией
«GET_ITEM»:
№ Параметр
Тип
Описание
Возможные значения
1
SECCODE
STRING
Код бумаги
2
SEC_SHORT_NAME
STRING
Название бумаги
3
FIRMID
STRING
Идентификатор фирмы
4
TRDACCID
STRING
Торговый счет
5
DEPACCID
STRING
Счет депо
6
OPENBAL
DOUBLE
Входящий
7
CURRENTPOS
DOUBLE
Текущий
8
PLANNEDPOSBUY
DOUBLE
Плановая покупка
9
PLANNEDPOSSELL
DOUBLE
Плановая продажа
10
PLANBAL
DOUBLE
Контрольный
11
USQTYB
DOUBLE
Куплено
12
USQTYS
DOUBLE
Продано
13
PLANNED
DOUBLE
Плановый
8.10 Функции для обращения к спискам доступных
параметров
8.10.1
GET_CLASSES_LIST
Функция предназначена для получения списка кодов классов, полученных с сервера в ходе
текущего сеанса связи. Разделителем в списке кодов классов выступает запятая «,».
GET_CLASSES_LIST ()
Пример:
‘
ClassesList = GET_CLASSES_LIST ()
‘
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
55
Переменной «ClassesList» присваивается список доступных классов, например «TQBR, TQBS,
TQNL, TQOB, TQOS, TQNO».
8.10.2
GET_CLASS_SECURITIES
Функция предназначена для получения списка кодов бумаг для списка классов, заданного
списком кодов. Разделителем в списке кодов бумаг выступает запятая «,».
GET_CLASS_SECURITIES (STRING)
Пример:
‘
SecuritiesList = GET_CLASS_SECURITIES ("TQBR,GKO")
‘
Переменной «SecuritiesList» присваивается список кодов всех доступных бумаг для классов
«А1-Акции» и «ГКО».
8.10.3
GET_SECURITY_INFO
Функция возвращает информацию по бумаге с кодом «sec_code» из класса с кодом
«class_code». Если «class_code» равен «», то ищет по всем классам до первого нахождения.
MAP GET_SECURITY_INFO (STRING class_code, STRING sec_code)
Параметры:
№ Параметр
Тип
Описание
1
CODE
STRING
Код инструмента
2
NAME
STRING
Наименование инструмента
3
SHORT_NAME
STRING
Краткое наименование
4
CLASS_CODE
STRING
Код класса
5
CLASS_NAME
STRING
Наименование класса
6
FACE_VALUE
DOUBLE
Номинал
7
FACE_UNIT
STRING
Код валюты номинала
8
SCALE
DOUBLE
Количество значащих цифр после запятой
9
MAT_DATE
STRING
Дата погашения
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
56
№ Параметр
Тип
Описание
10
LOT_SIZE
DOUBLE
Размер лота
Пример:
‘
SecInfo = GET_SECURITY_INFO("","YUKO")
Lot = GET_VALUE (SecInfo, "LOT_SIZE")
‘
Переменной «SecInfo» присваиваются значения параметров бумаги «YUKO». Переменная «Lot»
содержит количество бумаг в одном лоте «YUKO».
8.11 Функции для работы с программируемой
таблицей
Следующий набор функций оперирует только с таблицей «OWN», создаваемой при расчете
программы. Данная таблица доступна не только для чтения с помощью стандартных функции
«GET_ITEM» и «GET_NUMBER_OF», но также и для модификации с помощью следующих функций.
8.11.1
ADD_ITEM
Данная функция вставляет строку с индексом «Index» в таблицу «OWN». Ассоциативный массив
«table_string» используется для инициализации колонок таблицы значениями. «Table_string»
должен содержать элементы с ключами равными названиям колонок.
ADD_ITEM (DOUBLE Index, MAP table_string)
8.11.2
MODIFY_ITEM
Функция модифицирует уже существующую строку с индексом «Index» с помощью массива
«table_string».
MODIFY_ITEM (DOUBLE Index, MAP table_string)
8.11.3
DELETE_ITEM
Функция предназначена для удаления строки с индексом «Index».
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
57
DELETE_ITEM (DOUBLE Index)
8.11.4
DELETE_ALL_ITEMS
Функция полностью очищает таблицу «OWN».
DELETE_ALL_ITEMS()
Параметры:
№ Параметр
Тип
Описание
1
INDEX
DOUBLE Индекс для обращения к коллекции. Должен содержать целочисленное
значение
2
TABLE_STRING MAP
Массив, содержащий значения для колонок модифицируемой строки
Пример:
‘
st=CREATE_MAP()
st=SET_VALUE(st, "Value",10)
ADD_ITEM(1,st)
st=GET_ITEM ("OWN",1)
value=GET_VALUE(st,"Value")
DELETE_ALL_ITEMS()
‘
Данный пример может работать только с таблицей, содержащей единственную колонку с именем
«Value». Сначала создается массив, содержащий элемент со значением «10» и ключом «Value».
Затем, в таблице создается строка с индексом «1» и значением колонки «Value» равным «10».
В дальнейшем строка с индексом «1» считывается обратно в массив и значение элемента
с ключом «Value» попадает в переменную «value». И, наконец, все строки таблицы удаляются
вызовом «DELETE_ALL_ITEMS()».
8.11.5
SET_ROW_COLOR
Функция назначения цвета фона указанной строки таблицы. Данная функция относится
к предыдущей версии языка и сохранена для совместимости.
SET_ROW_COLOR (STRING client_code, STRING backg2round_color,
STRING selected_backg2round_color)
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
58
Параметры:
№ Параметр
Тип
Описание
1
CLIENT_CODE
STRING Код клиента, при установке этого параметра в «ROWNAME»
цвет подсветки устанавливается на текущего
рассчитываемого клиента
2
BACKGROUND_COLOR
STRING Основной цвет подсветки строки
3
SELECTED_BACKGROUND_COLOR STRING Цвет подсветки строки, когда строка выделена
Цвет фона (подсветки) задается макросом «RGB(<red>, <green>, <blue>)». Например, если
в качестве параметра цвета передадите в функцию строку «RGB(255, 0, 0)», то цвет подсветки
установится в красный. Для использования системного цвета по умолчанию используйте строку
«DEFAULT_COLOR».
Пример:
‘
SET_ROW_COLOR (ROWNAME, "RGB(0,255,0)", "DEFAULT_COLOR")
‘
Основной цвет строки таблицы для текущего рассчитываемого клиента здесь устанавливается
в зеленый, цвет выделенной строки - по умолчанию.
8.11.6
SET_ROW_COLOR_EX
Функция назначения цвета фона и шрифта указанной строки таблицы.
SET_ROW_COLOR_EX (DOUBLE row_number, STRING backg2round_color, STRING
selected_backg2round_color, STRING font_color, STRING selected_font_color)
Параметры:
№ Параметр
Тип
Описание
1
ROW_NUMBER
DOUBLE
Номер строки для подсветки
2
BACKGROUND_COLOR
STRING
Основной цвет фона строки
3
SELECTED_BACKGROUND_COLOR STRING
Цвет фона строки, когда строка выделена
курсором
4
FONT_COLOR
STRING
Основной цвет шрифта строки
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
59
№ Параметр
Тип
Описание
5
SELECTED_FONT_COLOR
STRING
Цвет шрифта, когда строка выделена курсором
Цвет фона (подсветки) задается макросом «RGB(<red>, <green>, <blue>)». Например, если
в качестве параметра цвета передадите в функцию строку «RGB(255, 0, 0)», то цвет подсветки
установится в красный. Для использования системного цвета по умолчанию используйте строку
«DEFAULT_COLOR».
Пример:
‘
SET_ROW_COLOR_EX (10, "DEFAULT_COLOR", "DEFAULT_COLOR", "RGB(0,255,0)",
"RGB(0,0,255)")
‘
Основной цвет шрифта для 10-й строки таблицы устанавливается в зеленый. При выделении
её курсором цвет шрифта станет синим.
8.12 Функции для получения значений Таблицы
текущих торгов
8.12.1
GET_PARAM
Функция предназначена для получения значения параметров биржевой информации.
с помощью этой функции можно получить данные из Таблицы текущих торгов для заданных
кодов класса и бумаги.
GET_PARAM (STRING classcode_list, STRING seccode, STRING param_name)
Параметры:
№ Параметр
Тип
Описание
1
CLASSCODE_LIST STRING
Список кодов классов ценных бумаг, в которых будет искаться бумага
через запятую. Например, если в функцию передается строка
«TQBR,TQBS,TQNL», то бумага будет искаться в классах «А1-Акции», «А2-
Акции» и «Б-Акции»
2
SECCODE
STRING
Код бумаги
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
60
№ Параметр
Тип
Описание
3
PARAM_NAME
STRING
Идентификатор параметра
Пример:
‘
LastPrice = GET_PARAM ("TQBR", "HYDR", "last")
‘
Переменной «LastPrice» присваивается значение цены последней сделки для «РусГидро»
из класса «А1-Акции Московской Биржи».
8.12.2
GET_PARAM_EX
Функция предназначена для получения значений всех параметров биржевой информации
из Таблицы текущих торгов. С помощью этой функции можно получить любое из значений
Таблицы текущих торгов для заданных кодов класса и бумаги.
MAP GET_PARAM_EX (STRING classcode, STRING seccode, STRING param_name)
Если в коде программы используется команда USE_CASE_SENSITIVE_CONSTANTS (см. п. 8.3.2),
то значения параметров «classcode» и «seccode» должны быть указаны в регистре, которому
они соответствуют в Таблице текущих торгов, а значение параметра «param_name» должно быть
указано в верхнем регистре.
Параметры:
№ Параметр
Тип
Описание
1
CLASSCODE
STRING
Код класса
2
SECCODE
STRING
Код бумаги
3
PARAM_NAME
STRING
Идентификатор параметра
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
61
«MAP» имеет структуру:
№ Параметр Тип
Описание
1
RESULT
DOUBLE Результат выполнения операции. Возможные значения:
«0» - ошибка;
«1» - параметр найден
2
PARAM_TYPE DOUBLE Тип данных параметра, используемый в Таблице текущих торгов.
Возможные значения:
«1» - DOUBLE;
«2» - LONG;
«3» - CHAR;
«4» - перечислимый тип;
«5» - время;
«6» - дата
3
PARAM_VALUE DOUBLE Значение параметра. Для строк (param_type = 3) значение равно «0». Для
перечислимых типов значение равно порядковому значению перечисления
4
PARAM_IMAGE STRING Строковое значение параметра, аналогичное его представлению в таблице.
В строковом представлении учитываются разделители разрядов,
разделители целой и дробной части. Для перечислимых типов выводятся
соответствующие им строковые значения
Пример:
‘
PARMAP=GET_PARAM_EX("TQBR","RTKM","WAPRICE")
WAPRICE=GET_VALUE(PARMAP, "PARAM_VALUE")
‘
Переменной «WAPRICE» присваивается значение средневзвешенной цены по обыкновенным
акциям «Ростелекома» из класса «А1-Акции Московской Биржи».
8.12.3
Значения параметров функций
Список возможных кодов классов ценных бумаг «classcode_list»:
Код класса Название
Код класса Название
TQNL
МБ ФР: Т+ Б-Акции и паи
TQBR
МБ ФР: Т+ А1-Акции, паи и РДР
TQOB
МБ ФР: Т+ А1-Облигации
TQBS
МБ ФР: Т+ А2-Акции и паи
TQOS
МБ ФР: Т+ А2-Облигации
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
62
Код класса Название
Код класса
Название
TQNO
МБ ФР: Т+ Б-Облигации
GAZ
РТС: Акции Газпрома
PSEQ
МБ ФР: РПС: А1-Акции и паи
QUADRO
РТС-СГК (Торги в валюте)
PSES
МБ ФР: РПС: А2-Акции и паи
RTS10
РТС: Рынок «Десяти»
PSNL
МБ ФР: РПС: Б-Акции и паи
RTSIDX
Индексы РТС
PSOB
МБ ФР: РПС: А1-Облигации
RTSIND
РТС (Индексы)
PSNO
МБ ФР: РПС: Б-Облигации
SES2
ГЦБ: Крупные лоты
PSAU
МБ ФР: РПС: Первичное
SPBFUT
Фьючерсы FORTS
размещение (облигации)
SPBOPT
Опционы FORTS
AUCT
МБ ФР: Аукцион (Акции)
SPBSPT
Спот Санкт-Петербург
MAIN
МБ ГЦБ
SPBGKO
МКО
MAIC
ГЦБ: период закрытия
SPBCEX
ГГКО на Петербургской валютной
BOBR
МБ ГЦБ: Облигации ЦБ
бирже
FUOP
Фьючерсы ММВБ
SPCGKO
Тестовая система на СПВБ
GAZP
Облигации Газпром
EQBREMU
Акции 1-го уровня (Эмулятор)
INDX
МБ ФР: Индексы
USDRUB
Курс доллара на FORTS
GTS
РТС: СГК
Список возможных идентификаторов параметров:
№
Параметр
Тип
Описание
1
STATUS
STRING
Статус
2
LOTSIZE
NUMERIC Размер лота
3
BID
NUMERIC Лучшая цена спроса
4
BIDDEPTH
NUMERIC Спрос по лучшей цене
5
BIDDEPTHT
NUMERIC Суммарный спрос
6
NUMBIDS
NUMERIC Количество заявок на покупку
7
OFFER
NUMERIC Лучшая цена предложения
8
OFFERDEPTH
NUMERIC Предложение по лучшей цене
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
63
№
Параметр
Тип
Описание
9
OFFERDEPTHT
NUMERIC
Суммарное предложение
10
NUMOFFERS
NUMERIC
Количество заявок на продажу
11
OPEN
NUMERIC
Цена открытия
12
HIGH
NUMERIC
Максимальная цена сделки
13
LOW
NUMERIC
Минимальная цена сделки
14
LAST
NUMERIC
Цена последней сделки
15
CHANGE
NUMERIC
Разница цены последней к предыдущей сессии
16
QTY
NUMERIC
Количество бумаг в последней сделке
17
TIME
STRING
Время последней сделки
18
VOLTODAY
NUMERIC
Количество бумаг в обезличенных сделках
19
VALTODAY
NUMERIC
Оборот в деньгах
20
TRADINGSTATUS
STRING
Состояние сессии
21
VALUE
NUMERIC
Оборот в деньгах последней сделки
22
WAPRICE
NUMERIC
Средневзвешенная цена
23
HIGHBID
NUMERIC
Лучшая цена спроса сегодня
24
LOWOFFER
NUMERIC
Лучшая цена предложения сегодня
25
NUMTRADES
NUMERIC
Количество сделок за сегодня
26
PREVPRICE
NUMERIC
Цена закрытия
27
PREVWAPRICE
NUMERIC
Предыдущая оценка
28
CLOSEPRICE
NUMERIC
Цена периода закрытия
29
LASTCHANGE
NUMERIC
% изменения от закрытия
30
PRIMARYDIST
STRING
Размещение
31
ACCRUEDINT
NUMERIC
Накопленный купонный доход
32
YIELD
NUMERIC
Доходность последней сделки
33
COUPONVALUE
NUMERIC
Размер купона
34
YIELDATPREVWAPRI
NUMERIC
Доходность по предыдущей оценке
35
YIELDATWAPRICE
NUMERIC
Доходность по оценке
36
PRICEMINUSPREVWAPRICE NUMERIC
Разница цены последней к предыдущей оценке
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
64
№
Параметр
Тип
Описание
37
CLOSEYIELD
NUMERIC
Доходность закрытия
38
CURRENTVALUE
NUMERIC
Текущее значение индексов Московской Биржи
39
LASTVALUE
NUMERIC
Значение индексов Московской Биржи на закрытие
предыдущего дня
40
LASTTOPREVSTLPRC
NUMERIC
Разница цены последней к предыдущей сессии
41
PREVSETTLEPRICE
NUMERIC
Предыдущая расчетная цена
42
PRICEMVTLIMIT
NUMERIC
Лимит изменения цены
43
PRICEMVTLIMITT1
NUMERIC
Лимит изменения цены T1
44
MAXOUTVOLUME
NUMERIC
Лимит объема активных заявок (в контрактах)
45
PRICEMAX
NUMERIC
Максимально возможная цена
46
PRICEMIN
NUMERIC
Минимально возможная цена
47
NEGVALTODAY
NUMERIC
Оборот внесистемных в деньгах
48
NEGNUMTRADES
NUMERIC
Количество внесистемных сделок за сегодня
49
NUMCONTRACTS
NUMERIC
Количество открытых позиций
50
CLOSETIME
STRING
Время закрытия предыдущих торгов (для индексов РТС)
51
OPENVAL
NUMERIC
Значение индекса РТС на момент открытия торгов
52
CHNGOPEN
NUMERIC
Изменение текущего индекса РТС по сравнению
со значением открытия
53
CHNGCLOSE
NUMERIC
Изменение текущего индекса РТС по сравнению
со значением закрытия
54
BUYDEPO
NUMERIC
Гарантийное обеспечение продавца
55
SELLDEPO
NUMERIC
Гарантийное обеспечение покупателя
56
CHANGETIME
STRING
Время последнего изменения
57
SELLPROFIT
NUMERIC
Доходность продажи
58
BUYPROFIT
NUMERIC
Доходность покупки
59
TRADECHANGE
NUMERIC
Разница цены последней к предыдущей сделки (FORTS, ФБ
СПБ, СПВБ)
60
FACEVALUE
NUMERIC
Номинал (для бумаг СПВБ)
61
MARKETPRICE
NUMERIC
Рыночная цена вчера
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
65
№
Параметр
Тип
Описание
62
MARKETPRICETODAY
NUMERIC
Рыночная цена
63
NEXTCOUPON
NUMERIC
Дата выплаты купона
64
BUYBACKPRICE
NUMERIC
Цена оферты
65
BUYBACKDATE
NUMERIC
Дата оферты
66
ISSUESIZE
NUMERIC
Объем обращения
67
PREVDATE
NUMERIC
Дата предыдущего торгового дня
68
DURATION
NUMERIC
Дюрация
69
LOPENPRICE
NUMERIC
Официальная цена открытия
70
LCURRENTPRICE
NUMERIC
Официальная текущая цена
71
LCLOSEPRICE
NUMERIC
Официальная цена закрытия
72
QUOTEBASIS
STRING
Тип цены
73
PREVADMITTEDQUOT
NUMERIC
Признаваемая котировка предыдущего дня
74
LASTBID
NUMERIC
Лучшая цена спроса на момент завершения периода
торгов
75
LASTOFFER
NUMERIC
Лучшая цена предложения на момент завершения торгов
76
PREVLEGALCLOSEPR
NUMERIC
Цена закрытия предыдущего дня
77
COUPONPERIOD
NUMERIC
Длительность купона
78
MARKETPRICE2
NUMERIC
Рыночная цена 2
79
ADMITTEDQUOTE
NUMERIC
Признаваемая котировка
80
BGOP
NUMERIC
БГО по покрытым позициям
81
BGONP
NUMERIC
БГО по непокрытым позициям
82
STRIKE
NUMERIC
Цена страйк
83
STEPPRICET
NUMERIC
Стоимость шага цены
84
STEPPRICE
NUMERIC
Стоимость шага цены (для новых контрактов FORTS)
85
SETTLEPRICE
NUMERIC
Расчетная цена
86
OPTIONTYPE
STRING
Тип опциона
87
OPTIONBASE
STRING
Базовый актив
88
VOLATILITY
NUMERIC
Волатильность опциона
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
66
№
Параметр
Тип
Описание
89
THEORPRICE
NUMERIC
Теоретическая цена
90
PERCENTRATE
NUMERIC
Агрегированная ставка
91
ISPERCENT
STRING
Тип цены фьючерса
92
CLSTATE
STRING
Статус клиринга
93
CLPRICE
NUMERIC
Котировка последнего клиринга
94
STARTTIME
STRING
Начало основной сессии
95
ENDTIME
STRING
Окончание основной сессии
96
EVNSTARTTIME
STRING
Начало вечерней сессии
97
EVNENDTIME
STRING
Окончание вечерней сессии
98
MONSTARTTIME
STRING
Начало утренней сессии
99
MONENDTIME
STRING
Окончание утренней сессии
100
CURSTEPPRICE
STRING
Валюта шага цены
101
REALVMPRICE
NUMERIC
Текущая рыночная котировка
102
MARG
STRING
Маржируемый
103
EXPDATE
NUMERIC
Дата исполнения инструмента
104
CROSSRATE
NUMERIC
Курс
105
BASEPRICE
NUMERIC
Базовый курс
106
HIGHVAL
NUMERIC
Максимальное значение (RTSIND)
107
LOWVAL
NUMERIC
Минимальное значение (RTSIND)
108
ICHANGE
NUMERIC
Изменение (RTSIND)
109
IOPEN
NUMERIC
Значение на момент открытия (RTSIND)
110
PCHANGE
NUMERIC
Процент изменения (RTSIND)
111
OPENPERIODPRICE
NUMERIC
Цена предторгового периода
112
MIN_CURR_LAST
NUMERIC
Минимальная текущая цена
113
SETTLECODE
STRING
Код расчетов по умолчанию
114
STEPPRICECL
DOUBLE
Стоимость шага цены для клиринга
115
STEPPRICEPRCL
DOUBLE
Стоимость шага цены для промклиринга
116
MIN_CURR_LAST_TI
STRING
Время изменения минимальной текущей цены
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
67
№
Параметр
Тип
Описание
117
PREVLOTSIZE
NUMERIC Предыдущее значение размера лота
118
LOTSIZECHANGEDAT
NUMERIC Дата последнего изменения размера лота
119
AUCTPRICE
NUMERIC Цена послеторгового аукциона
120
CLOSING_AUCTION_VOLUME NUMERIC Количество в сделках послеторгового аукциона
Список идентификаторов дополнительных параметров, доступных для функции GET_PARAM_EX:
№
Параметр
Тип
Описание
1
LONGNAME
STRING
Полное название бумаги
2
SHORTNAME
STRING
Краткое название бумаги
3
CODE
STRING
Код бумаги
4
CLASSNAME
STRING
Название класса
5
CLASS_CODE
STRING
Код класса
6
TRADE_DATE_CODE DOUBLE
Дата торгов
7
MAT_DATE
DOUBLE
Дата погашения
8
DAYS_TO_MAT_DATE DOUBLE
Число дней до погашения
9
SEC_FACE_VALUE
DOUBLE
Номинал бумаги
10
SEC_FACE_UNIT
STRING
Валюта номинала
11
SEC_SCALE
DOUBLE
Точность цены
12
SEC_PRICE_STEP
DOUBLE
Минимальный шаг цены
13
SECTYPE
STRING
Тип инструмента
8.13 Функции для получения значений Окна
котировок
8.13.1
GET_QUOTES_II_LEVEL_DATA
Функция предназначена для получения значений котировок инструментов. с помощью этой
функции можно получить данные из Таблицы котировок для заданных кодов класса и бумаги.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
68
MAP GET_QUOTES_II_LEVEL_DATA (STRING ClassCode, STRING SecCode)
Возвращаемый «MAP» имеет следующую структуру:
№
Параметр
Тип
Описание
1
BID_COUNT
DOUBLE
Количество котировок покупки
2
OFFER_COUNT
DOUBLE
Количество котировок продажи
3
BID
COLLECTION
Котировки спроса (покупки)
4
OFFER
COLLECTION
Котировки предложений (продажи)
Коллекции «BID» и «OFFER» имеют следующую структуру:
№
Параметр
Тип
Описание
1
PRICE
DOUBLE
Цена покупки / продажи
2
QUANTITY
DOUBLE
Количество в лотах
8.14 Функции для получения значений Таблицы
лимитов по бумагам
Функции предназначены для получения значений таблицы для заданного кода клиента, кода
фирмы, кода бумаги и счета депо.
8.14.1
DEPO_OPEN_BALANCE
Возвращает значение «Входящего остатка по бумагам».
DEPO_OPEN_BALANCE (STRING client_code, STRING firmid, STRING seccode, STRING account)
8.14.2
DEPO_OPEN_LIMIT
Возвращает значение «Входящего лимита по бумагам».
DEPO_OPEN_LIMIT (STRING client_code, STRING firmid, STRING seccode, STRING account)
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
69
8.14.3
DEPO_CURRENT_BALANCE
Возвращает значение «Текущего остатка по бумагам».
DEPO_CURRENT_BALANCE (STRING client_code, STRING firmid, STRING seccode,
STRING account)
8.14.4
DEPO_CURRENT_LIMIT
Возвращает значение «Текущего лимита по бумагам».
DEPO_CURRENT_LIMIT (STRING client_code, STRING firmid, STRING seccode, STRING account)
8.14.5
DEPO_LIMIT_AVAILABLE
Возвращает значение доступного количества бумаг.
DEPO_LIMIT_AVAILABLE (STRING client_code, STRING firmid, STRING seccode, STRING
account)
8.14.6
DEPO_LIMIT_LOCKED
Возвращает значение «Заблокированного количества бумаг».
DEPO_LIMIT_LOCKED (STRING client_code, STRING firmid, STRING seccode, STRING account)
8.14.7
DEPO_LIMIT_LOCKED_BUY
Возвращает значение «Заблокированного на покупку количества лотов».
DEPO_LIMIT_LOCKED_BUY (STRING client_code, STRING firmid, STRING seccode, STRING
account)
8.14.8
DEPO_LIMIT_LOCKED_BUY_VALUE
Возвращает значение «Стоимости бумаг, заблокированных на покупку».
DEPO_LIMIT_LOCKED_BUY_VALUE (STRING client_code, STRING firmid, STRING seccode,
STRING account)
Параметры:
№
Параметр
Тип
Описание
1
CLIENT_CODE
STRING
Код клиента
2
FIRMID
STRING
Код фирмы
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
70
№
Параметр
Тип
Описание
3
SECCODE
STRING
Код бумаги
4
ACCOUNT
STRING
Счет депо
Параметр «account» должен указываться с соблюдением регистра символов
(верхнего/нижнего).
Пример:
‘
ClDepoOB = DEPO_OPEN_BALANCE ("1075", "NC0080000000", "HYDR", "L01-00000F00")
ClDepoOL = DEPO_OPEN_LIMIT ("1075", "NC0080000000", "HYDR", "L01-00000F00")
ClDepoСB = DEPO_CURRENT_BALANCE ("1075", "NC0080000000", "HYDR", "L01-00000F00")
ClDepoCL = DEPO_CURRENT_LIMIT ("1075", "NC0080000000", "HYDR", "L01-00000F00")
ClDepoAV = DEPO_LIMIT_AVAILABLE ("1075", "NC0080000000", "HYDR", "L01-00000F00")
ClDepoLCK = DEPO_LIMIT_LOCKED ("1075", "NC0080000000", "HYDR", "L01-00000F00")
ClDepoLCKBuy = DEPO_LIMIT_LOCKED_BUY ("1075", "NC0080000000", "HYDR", "L01-00000F00")
ClDepoLCKBuyValue = DEPO_LIMIT_LOCKED_BUY_VALUE ("1075", "NC0080000000", "HYDR",
"L01-00000F00")
‘
В примере показано присвоение переменным значений Таблицы лимитов по бумагам для
клиента с кодом «1075» по обыкновенным акциям «РусГидро»:
• переменной «ClDepoOB» присваивается значение входящего остатка;
• переменной «ClDepoOL» присваивается значение входящего лимита;
• переменной «ClDepoCB» присваивается значение текущего остатка;
• переменной «ClDepoCL» присваивается значение текущего лимита;
• переменной «ClDepoAV» присваивается значение доступного количества бумаг;
• переменной «ClDepoLCK» присваивается значение заблокированного количества бумаг;
• переменной «ClDepoLCKBuy» присваивается значение заблокированного на покупку
количества лотов;
• переменной «ClDepoLCKBuyValue» присваивается значение стоимости бумаг,
заблокированных на покупку.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
71
8.15 Функции для получения значений Таблицы
лимитов по денежным средствам
Функции предназначены для получения значений таблицы для заданного кода клиента, кода
фирмы, тэга расчетов и кода валюты.
8.15.1
MONEY_OPEN_BALANCE
Возвращает значение «Входящего остатка по денежным средствам».
MONEY_OPEN_BALANCE (STRING client_code, STRING firmid, STRING tag, STRING curr_code)
8.15.2
MONEY_OPEN_LIMIT
Возвращает значение «Входящего лимита по денежным средствам».
MONEY_OPEN_LIMIT (STRING client_code, STRING firmid, STRING tag, STRING curr_code)
8.15.3
MONEY_CURRENT_BALANCE
Возвращает значение «Текущего остатка по денежным средствам».
MONEY_CURRENT_BALANCE (STRING client_code, STRING firmid, STRING tag, STRING
curr_code)
8.15.4
MONEY_CURRENT_LIMIT
Возвращает значение «Текущего лимита по денежным средствам».
MONEY_CURRENT_LIMIT (STRING client_code, STRING firmid, STRING tag, STRING curr_code)
8.15.5
MONEY_LIMIT_AVAILABLE
Возвращает значение «Доступного количества денежных средств».
MONEY_LIMIT_AVAILABLE (STRING client_code, STRING firmid, STRING tag, STRING curr_code)
8.15.6
MONEY_LIMIT_LOCKED
Возвращает значение «Заблокированного количества денежных средств.
MONEY_LIMIT_LOCKED (STRING client_code, STRING firmid, STRING tag, STRING curr_code)
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
72
Пример:
‘
ClMoneyOB = MONEY_OPEN_BALANCE ("1075", "NC0080000000", "EQTV", "SUR")
ClMoneyOL = MONEY_OPEN_LIMIT ("1075", "NC0080000000", "EQTV", "SUR")
ClMoneyCB = MONEY_CURRENT_BALANCE ("1075", "NC0080000000", "EQTV", "SUR")
ClMoneyCL = MONEY_CURRENT_LIMIT ("1075", "NC0080000000", "EQTV", "SUR")
ClMoneyAV = MONEY_LIMIT_AVAILABLE ("1075", "NC0080000000", "EQTV", "SUR")
ClMoneyLCK = MONEY_LIMIT_LOCKED ("1075", "NC0080000000", "EQTV", "SUR")
‘
В примере показано присвоение переменным значений Таблицы лимитов по денежным
средствам на Фондовой Московской Бирже для клиента с кодом «1075»:
• переменной «ClMoneyOB» присваивается значение входящего остатка по денежным
средствам;
• переменной «ClMoneyOL» присваивается значение входящего лимита по денежным
средствам;
• переменной «ClMoneyCB» присваивается значение текущего остатка по денежным
средствам;
• переменной «ClMoneyCL» присваивается значение текущего лимита по денежным
средствам;
• переменной «ClMoneyAV» присваивается значение доступного количества денежных
средств;
• переменной «ClMoneyLCK» присваивается значение заблокированного количества
денежных средств.
8.16 Функции расчета маржинальных позиций
Функции предназначены для получения значений маржинальных позиций для заданного кода
клиента, кода фирмы, кода класса, счета депо и кода параметра цены, по которой идет расчет
стоимости (например «OPEN» - цена открытия, «LAST» - цена последней сделки и т.п.).
8.16.1
SHORT_VALUE
Возвращает значение «Стоимости всех коротких позиций».
SHORT_VALUE (STRING client_code, STRING firmid, STRING seccode, STRING class_code,
STRING account, STRING price_param_code)
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
73
8.16.2
LONG_VALUE
Возвращает значение «Стоимости всех длинных позиций».
LONG_VALUE (STRING client_code, STRING firmid, STRING seccode, STRING class_code,
STRING account, STRING price_param_code)
Параметры:
№
Параметр
Тип
Описание
1
CLIENT_CODE
STRING
Код клиента
2
FIRMID
STRING
Код фирмы
3
SECCODE
STRING
Код бумаги
4
CLASS_CODE
STRING
Код класса
5
ACCOUNT*
STRING
Счет депо
6
PRICE_PARAM_CODE
STRING
Код параметра цены
(*) параметр чувствителен к верхнему/нижнему регистру символов.
Пример:
‘
ClShortsValue = SHORT_VALUE ("1075", "NC0080000000", "HYDR", "TQBR", "L01-00000F00",
"LAST")
ClLongsValue = LONG_VALUE ("1075", "NC0080000000", "HYDRR", "TQBR", "L01-00000F00",
"OPEN")
‘
Переменной «ClShortsValue» присваивается значение стоимости всех коротких позиций для
клиента с кодом «1075» по инструменту «РусГидро» из класса «А1-Акции» по счету «L01-
00000F00», исходя из цены последней сделки.
Переменной ClLongsValue присваивается значение стоимости всех длинных позиций для клиента
с кодом «1075» по инструменту «РусГидро» из класса «А1-Акции» по счету «L01-00000F00»,
исходя из цены открытия.
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
74
8.17 Функции получения значений таблиц
«Клиентский портфель» и «Купить/Продать»
Функции предназначены для получения значений указанных таблиц. Значения этих таблиц
вычисляются на рабочем месте клиента QUIK с периодичностью, установленной в настройках
(пункт меню Система/Настройки/Основные настройки…, раздел «Торговля» / «Клиентский
портфель», флажок «Обновлять через каждые .. секунд»).
8.17.1
GET_CLIENT_MARGINAL_PORTFOLIO_INFO
Функция возвращает ассоциативный массив (MAP) с параметрами таблицы «Клиентский
портфель», соответствующих идентификатору участника торгов «firmid» и коду клиента
«client_code».
MAP GET_CLIENT_MARGINAL_PORTFOLIO_INFO (STRING firmid, STRING client_code)
Параметры:
№ Параметр
Тип
Описание
1
IS_LEVERAGE
STRING
Признак использования схемы кредитования
Тип клиента
(12)
с контролем текущей стоимости активов.
Возможные значения:
«МЛ» - используется схема ведения
позиции «по плечу», «плечо» рассчитано
по значению Входящего лимита;
«МП» - используется схема ведения
позиции «по плечу», «плечо» указано
явным образом;
«МОП» - используется схема ведения
позиции «лимит на открытую позицию»;
«МД» - используется схема ведения
позиции «по дисконтам»;
<пусто> - используется схема ведения
позиции «по лимитам»
2
IN_ASSETS
DOUBLE
Оценка собственных средств клиента
Вход. активы
до начала торгов
3
LEVERAGE
DOUBLE
Плечо. Если не было задано явно, то
Плечо
отношение Входящего лимита к Входящим
активам
4
OPEN_LIMIT
DOUBLE
Оценка максимальной величины заемных
Вход. лимит
средств до начала торгов
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
75
№ Параметр
Тип
Описание
5
VAL_SHORT
DOUBLE
Оценка стоимости коротких позиций. Значение
Шорты
всегда отрицательное
6
VAL_LONG
DOUBLE
Оценка стоимости длинных позиций
Лонги
7
VAL_LONG_MARGIN
DOUBLE
Оценка стоимости длинных позиций
Лонги МО
по маржинальным бумагам, принимаемым
в обеспечение
8
VAL_LONG_ASSET
DOUBLE
Оценка стоимости длинных позиций
Лонги О
по немаржинальным бумагам, принимаемым
в обеспечение
9
ASSETS
DOUBLE
Оценка собственных средств клиента
Стоимость
по текущим позициям и ценам
портфеля
10
CUR_LEVERAGE
DOUBLE
Текущее плечо
Тек.Плечо
11
MARGIN
DOUBLE
Уровень маржи, в процентах
Ур. Маржи
12
LIM_ALL
DOUBLE
Текущая оценка максимальной величины
Тек. Лимит
заемных средств
13
AV_LIM_ALL
DOUBLE
Оценка величины заемных средств, доступных
ДостТекЛимит
для дальнейшего открытия позиций
14
LOCKED_BUY
DOUBLE
Оценка стоимости активов в заявках на
Блок. покупка
покупку
15
LOCKED_BUY_MARGIN
DOUBLE
Оценка стоимости активов в заявках на
Блок. пок. маржин.
покупку маржинальных бумаг, принимаемых
в обеспечение
16
LOCKED_BUY_ASSET
DOUBLE
Оценка стоимости активов в заявках на
Блок.пок. обесп.
покупку немаржинальных бумаг, принимаемых
в обеспечение
17
LOCKED_SELL
DOUBLE
Оценка стоимости активов в заявках на
Блок. продажа
продажу маржинальных бумаг
18
LOCKED_VALUE_COEF
DOUBLE
Оценка стоимости активов в заявках на
Блок. пок. немарж.
покупку немаржинальных бумаг
19
IN_ALL_ASSETS
DOUBLE
Оценка стоимости всех позиций клиента
ВходСредства
в ценах закрытия предыдущей торговой
сессии, включая позиции по немаржинальным
бумагам
20
ALL_ASSETS
DOUBLE
Текущая оценка стоимости всех позиций
ТекСредства
клиента
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
76
№ Параметр
Тип
Описание
21
PROFIT_LOSS
DOUBLE
Абсолютная величина изменения стоимости
Прибыль/убытки
всех позиций клиента
22
RATE_CHANGE
DOUBLE
Относительная величина изменения стоимости
ПроцИзмен
всех позиций клиента
23
LIM_BUY
DOUBLE
Оценка денежных средств, доступных для
На покупку
покупки маржинальных бумаг
24
LIM_SELL
DOUBLE
Оценка стоимости маржинальных бумаг,
На продажу
доступных для продажи
25
LIM_NON_MARGIN
DOUBLE
Оценка денежных средств, доступных для
НаПокупНеМаржин
покупки немаржинальных бумаг
26
LIM_BUY_ASSET
DOUBLE
Оценка денежных средств, доступных для
НаПокупОбесп
покупки бумаг, принимаемых в обеспечение
27
VAL_SHORT_NET
DOUBLE
Оценка стоимости коротких позиций. При
Шорты (нетто)
расчете не используется коэффициент
дисконтирования*
28
VAL_LONG_NET
DOUBLE
Оценка стоимости длинных позиций. При
Лонги (нетто)
расчете не используется коэффициент
дисконтирования*
29
TOTAL_MONEY_BAL
DOUBLE
Сумма остатков по денежным средствам
Сумма ден.
по всем лимитам, без учета средств,
остатков
заблокированных под исполнение
обязательств, выраженная в выбранной
валюте расчета
30
TOTAL_LOCKED_MONEY
DOUBLE
Cумма заблокированных средств со всех
Суммарно заблок.
денежных лимитов клиента, пересчитанная
в валюту расчетов через кросс-курсы на
сервере
31
HAIRCUTS
DOUBLE
Сумма дисконтов стоимости длинных (только
Сумма дисконтов
по бумагам обеспечения) и коротких
бумажных позиций, дисконтов корреляции
между инструментами, а также дисконтов на
задолженности по валютам, не покрытые
бумажным обеспечением в этих же валютах
32
ASSETS_WITHOUT_HC
DOUBLE
Суммарная величина денежных остатков,
ТекАктБезДиск
стоимости длинных позиций по бумагам
обеспечения и стоимости коротких позиций,
без учета дисконтирующих коэффициентов,
без учета неттинга стоимости бумаг в рамках
объединенной бумажной позиции и без учета
корреляции между инструментами
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
77
№ Параметр
Тип
Описание
33
STATUS_COEF
DOUBLE
Отношение суммы дисконтов к текущим
Статус счета
активам без учета дисконтов
34
VARMARGIN
DOUBLE
Текущая вариационная маржа по позициям
Вариац. маржа
клиента, по всем инструментам
35
GO_FOR_POSITIONS
DOUBLE
Размер денежных средств, уплаченных под все
ГО поз.
открытые позиции на срочном рынке
36
GO_FOR_ORDERS
DOUBLE
Оценка стоимости активов в заявках на
ГО заяв.
срочном рынке
37
RATE_FUTURES
DOUBLE
Отношение ликвидационной стоимости
Активы/ГО
портфеля к ГО по срочному рынку
38
IS_QUAL_CLIENT
STRING
Признак «квалифицированного» клиента,
ПовышУрРиска
которому разрешено кредитование заемными
средствами с плечом 1:3. Возможные
значения: «ПовышУрРиска» -
квалифицированный, <пусто> - нет
39
IS_FUTURES
STRING
Счет клиента на FORTS, в случае наличия
Сроч. счет
объединенной позиции, иначе поле остается
пустым
40
CURR_TAG
STRING
Актуальные текущие параметры расчета для
Парам. расч.
данной строки в формате «<Валюта>-
<Идентификатор торговой сессии>». Пример:
«SUR-EQTV»
(*) Подробнее о коэффициентах дисконтирования см. п. 7 Руководства
по администрированию «Настройки Библиотеки расчета лимитов».
Пример:
‘
GET_CLIENT_MARGINAL_PORTFOLIO_INFO ("NC0080000000", "1")
‘
8.17.2
GET_CLIENT_MARGINAL_PORTFOLIO_INFO_EX
Функция возвращает ассоциативный массив (MAP) с параметрами таблицы «Клиентский
портфель», соответствующих идентификатору участника торгов «firmid», коду клиента
«client_code» и виду лимита «limit_kind».
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
78
MAP GET_CLIENT_MARGINAL_PORTFOLIO_INFO_EX (STRING firmid, STRING client_code,
DOUBLE limit_kind)
Возможные значения параметра «limit_kind»:
«0» - вид лимита «Т0»;
-
«1» - вид лимита «Т1»;
—
«2» - вид лимита «Т2»;
—
«365» - вид лимита «Тx».
—
Описание возвращаемых параметров см. в п. 8.17.1.
Дополнительно возвращаются следующие параметры:
№ Параметр
Тип
Описание
1
INIT_MARGIN
DOUBLE
Значение начальной маржи. Заполняется
Нач.маржа
для клиентов типа «МД»
2
MIN_MARGIN
DOUBLE
Значение минимальной маржи.
Мин.маржа
Заполняется для клиентов типа «МД»
3
CORRECTED_MARGIN
DOUBLE
Значение скорректированной маржи.
Скор.маржа
Заполняется для клиентов типа «МД»
4
CLIENT_TYPE
DOUBLE
Тип клиента
Тип клиента
5
PORTFOLIO_VALUE
DOUBLE
Стоимость портфеля.
Стоимость
Для клиентов типа «МД» возвращается
портфеля
значение для строк с максимальным
видом лимита limit_kind
Пример:
‘
GET_CLIENT_MARGINAL_PORTFOLIO_INFO_EX ("NC0080000000", "1", "0")
‘
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
79
8.17.3
GET_CLIENT_MARGINAL_BUY_SELL_INFO
Функция возвращает ассоциативный массив (MAP) с параметрами таблицы «Купить/Продать»,
означающими возможность купить либо продать указанный инструмент «sec_code» класса
«class_code», указанным клиентом «client_code» фирмы «firmid», по указанной цене «price». Если
цена равна «0», то используются лучшие значения спроса/предложения.
MAP GET_CLIENT_MARGINAL_BUY_SELL_INFO (STRING firmid, STRING client_code, STRING
class_code, STRING sec_code, DOUBLE price)
Параметры:
№
Параметр
Тип
Описание
1
IS_MARGIN_SEC
DOUBLE
Признак маржинальности инструмента. Возможные значения:
«1» - маржинальная, «0» - не маржинальная.
Не заполняется для клиентов типа «МД»
2
IS_ASSET_SEC
DOUBLE
Принадлежность инструмента к списку бумаг, принимаемых
в обеспечение. Возможные значения:
«1» - принимается в обеспечение, «0» - не принимается
в обеспечение.
Не заполняется для клиентов типа «МД»
3
BALANCE
DOUBLE
Текущая позиция по инструменту, в лотах
4
CAN_BUY
DOUBLE
Оценка количества лотов, доступных на покупку по указанной
цене *
5
CAN_SELL
DOUBLE
Оценка количества лотов, доступных на продажу по указанной
цене *
6
POSITION_VALUATION DOUBLE
Денежная оценка позиции по инструменту по ценам
спроса/предложения
7
VALUE
DOUBLE
Оценка стоимости позиции по цене последней сделки
8
OPEN_VALUE
DOUBLE
Оценка стоимости позиции клиента, рассчитанная по цене
закрытия предыдущей торговой сессии
9
LIM_LONG
DOUBLE
Предельный размер позиции по данному инструменту,
принимаемый в обеспечение длинных позиций
10
LONG_COEF
DOUBLE
Коэффициент дисконтирования, применяемый для длинных
позиций по данному инструменту
11
LIM_SHORT
DOUBLE
Предельный размер короткой позиции по данному инструменту
12
SHORT_COEF
DOUBLE
Коэффициент дисконтирования, применяемый для коротких
позиций по данному инструменту
Руководство пользователя QUIK.
Раздел 8: Алгоритмический язык QPILE
80
содержание .. 7 8 9 10 ..
|
||
|
|
|