Рабочее место пользователя Программного комплекса QUIK–фронт–офисной системы прямого доступа. Руководство пользователя (Версия 12.2) - часть 9

 

  Главная      Книги - Разные     Рабочее место пользователя Программного комплекса QUIK–фронт–офисной системы прямого доступа. Руководство пользователя (Версия 12.2)

 

поиск по сайту            правообладателям  

 

   

 

   

 

содержание      ..     7      8      9      10     ..

 

 

 

Рабочее место пользователя Программного комплекса QUIK–фронт–офисной системы прямого доступа. Руководство пользователя (Версия 12.2) - часть 9

 

 

Функция
Назначение
*Функции для получения значений таблицы «Позиции по инструментам»
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
Записать строку в конец файла
WRITELN
Записать строку с переводом строки в конец файла
GET_FILE_LEN
Количество строк в файле
Руководство пользователя QUIK
20
Раздел 8: Алгоритмический язык QPILE
Функция
Назначение
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
Определяет состояние подключения клиентского места
к серверу
GET_INFO_PARAM
Позволяет получить параметры для информационного окна
(пункт меню Система/О
программе/Информационное окно)
BREAKPOINT
Позволяет прервать выполнение программы и вызвать окно
«Отладка»
Руководство пользователя QUIK
21
Раздел 8: Алгоритмический язык QPILE
* - функции предыдущей версии языка 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
Значение для инициализации глобальной переменной
В качестве первого параметра может фигурировать строковая константа, либо
же переменная, имеющая строковое значение. В последнем случае создается глобальная
переменная с тем же именем, что и значение этой строковой переменной.
Пример:
NEW_GLOBAL("GLOBAL","MyFirstGlobal")
NEW_GLOBAL(Global,1)
После выполнения этих двух строк будут созданы две глобальные переменные. Строковая
переменная с именем «GLOBAL» и значением «MyFirstGlobal», а также вещественная
переменная с именем «MyFirstGlobal» и значением 1.
Руководство пользователя QUIK
22
Раздел 8: Алгоритмический язык QPILE
8.5.2
MESSAGE
Открывает Окно сообщений с заданным текстом.
MESSAGE (STRING Text, DOUBLE Msg_type)
Параметры:
№ Параметр
Тип
Описание
1
TEXT
STRING
Текст сообщения
2
MSG_TYPE
DOUBLE
Тип сообщения, определяющий вид иконки в Окне и звуковой
сигнал. Возможные значения:
1 - «Информация»;
2 - «Внимание»;
3 - «Ошибка»
Пример:
MESSAGE ("Hello!",1)
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)
Руководство пользователя QUIK
23
Раздел 8: Алгоритмический язык QPILE
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)
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 ()
Руководство пользователя QUIK
24
Раздел 8: Алгоритмический язык QPILE
8.6.12
RANDOMIZE
Генерация случайных чисел.
DOUBLE
RANDOMIZE ()
Функция инициализирует генератор случайных чисел для определения случайной
последовательности генерируемых чисел. Функцию RANDOMIZE () необходимо вызвать
до того, как будет использоваться функция RAND().
8.6.13
SIN
Возвращает значение синуса аргумента.
DOUBLE
SIN (DOUBLE Value)
8.6.14
SQRT
Возвращает значение квадратного корня аргумента.
DOUBLE
SQRT (DOUBLE Value)
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)
'
Руководство пользователя QUIK
25
Раздел 8: Алгоритмический язык QPILE
При выполнении примера на экране будет появляться Окно сообщений с отображением
функции и результата вычисления ее значения.
8.7 Функции для работы с коллекциями объектов
(COLLECTION)
Функции из этой группы предназначены для оперирования переменными типа COLLECTION.
Коллекция является списком объектов, с индексацией по целочисленному ключу (начиная
с 0). Коллекция может содержать элементы любых типов, в том числе и переменные типа
COLLECTION. Коллекция может быть неоднородной, т.е. содержать объекты разных типов.
В текущей реализации доступ к элементу коллекции по индексу осуществляется за линейное
время.
8.7.1
CREATE_COLLECTION
Первая функция создает пустую коллекцию, вторая является конструктором копирования.
COLLECTION CREATE_COLLECTION ()
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.
Руководство пользователя QUIK
26
Раздел 8: Алгоритмический язык QPILE
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
Индекс для обращения к коллекции. Должен содержать
целочисленное значение
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
Руководство пользователя QUIK
27
Раздел 8: Алгоритмический язык QPILE
8.8 Функции для работы с ассоциативными
массивами (MAP)
Функции из этой группы предназначены для оперирования переменными типа MAP.
Ассоциативный массив (MAP) является последовательностью пар (ключ, значение),
которая обеспечивает получение значения по ключу. Каждому ключу соответствует
максимум одно значение. Ассоциативный массив может содержать элементы любых типов,
в том числе и переменные структурных типов, разные элементы такого массива могут
содержать объекты разных типов в качестве значений. В качестве ключа всегда выступает
строковое значение. В текущей реализации доступ к элементу коллекции по ключу
осуществляется за линейное время.
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
Значение произвольного типа для добавления в массив
Руководство пользователя QUIK
28
Раздел 8: Алгоритмический язык QPILE
Пример:
map=CREATE_MAP ()
FOR i FROM 0 TO 9
map=SET_VALUE(map, "key" & i, i)
END FOR
s = GET_VALUE(map, "key5")
Создается пустой массив. Затем, в цикле, в массив вставляются элементы со значением
равным переменной цикла и ключом вида «"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» значения ключей соответствуют названиям колонок, указанным в секции описания
параметров.
Руководство пользователя QUIK
29
Раздел 8: Алгоритмический язык QPILE
8.9.2
GET_NUMBER_OF
Функция возвращает количество записей в таблице TableName.
DOUBLE
GET_NUMBER_OF(STRING TableName)
Параметры:
№ Параметр
Тип
Описание
1
TABLENAME
STRING
Имя таблицы QUIK
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
Позиции по денежным средствам
Руководство пользователя QUIK
30
Раздел 8: Алгоритмический язык QPILE
TableName
Таблица
DEPO_LIMITS
Позиции по инструментам
FUTURES_CLIENT_HOLDINGS
Позиции по клиентским счетам (фьючерсы)
FUTURES_CLIENT_LIMITS
Ограничения по клиентским счетам (фьючерсы)
NEG_DEALS
Таблица заявок на внебиржевые сделки
NEGOTIATION_TRADES
Таблица сделок для исполнения
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
Количество в лотах
Руководство пользователя QUIK
31
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
15
BALANCE
DOUBLE
Остаток
16
VALUE
DOUBLE
Объем в денежных
средствах
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_
STRING
Заявка Маркет-мейкера
«YES» или « »
ORDER
30
SESSION_DATE
DOUBLE
Дата текущей торговой
сессии
31
TIME_MICROSEC
DOUBLE
Количество микросекунд
во времени выставления
32
WITHDRAW_DATE
DOUBLE
Дата снятия заявки
Руководство пользователя QUIK
32
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
Возможные значения
33 WITHDRAW_TIME_M
DOUBLE Количество микросекунд
ICROSEC
во времени снятия
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 Торговый счет
Руководство пользователя QUIK
33
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
13
PRICE
DOUBLE
Цена
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_NAM
STRING
Название фирмы
E
партнера
29
PRICE2
DOUBLE
Цена выкупа
30
REPORATE
DOUBLE
Ставка РЕПО (%)
31
TS_COMISSION
DOUBLE
Комиссия торговой
системы
32
CLEARING_
DOUBLE
Клиринговая комиссия
COMISSION
(Московской Биржи)
33
EXCHANGE_
DOUBLE
Комиссия Фондовой
COMISSION
биржи (Московской
Биржи)
Руководство пользователя QUIK
34
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
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» - закрытие
46
KIND
DOUBLE
Вид сделки
«1» - обычная;
«2» - адресная;
«3» - первичное
размещение;
«4» - перевод денег /
инструментов;
«5» - адресная сделка
первой части РЕПО;
«6» - расчетная по операции
своп;
«7» - расчетная
по внебиржевой операции
своп;
«8» - расчетная сделка
бивалютной корзины;
«9» - расчетная внебиржевая
сделка бивалютной корзины;
«10» - сделка по операции
РЕПО с ЦК;
«11» - первая часть сделки
по операции РЕПО с ЦК;
Руководство пользователя QUIK
35
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
Возможные значения
«12» - вторая часть сделки
по операции РЕПО с ЦК;
«13» - адресная сделка
по операции РЕПО с ЦК;
«14» - первая часть адресной
сделки по операции РЕПО
с ЦК;
«15» - вторая часть адресной
сделки по операции РЕПО
с ЦК;
«16» - техническая сделка по
возврату активов РЕПО с ЦК;
«17» - сделка по спреду
между фьючерсами разных
сроков на один актив;
«18» - техническая сделка
первой части от спреда
между фьючерсами;
«19» - техническая сделка
второй части от спреда между
фьючерсами;
«20» - адресная сделка
первой части РЕПО
с корзиной;
«21» - адресная сделка
второй части РЕПО
с корзиной;
«22» - перенос позиций
срочного рынка»;
«23» - Late correction -
XLON;
«24» - Not to mark - XLON;
«25» - Previous Day Contra;
«26» - Ordinary trade
immediate publication - XLON;
«27» - Inter Fund Transfer
delayed publication - XOFF;
«28» - Negotiated Trade
delayed publication - XLON;
«29» - Negotiated Trade
immediate publication - XLON;
«30» - OTC Late Correction -
XOFF;
«31» - Ordinary Trade delayed
publication - XLON;
«32» - Ordinary Trade
Immediate publication - XOFF;
«33» - SI Late Correction;
Руководство пользователя QUIK
36
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
Возможные значения
«34» - SI Trade immediate
publication;
«35» - SI Trade delayed
publication;
«36» - OTC Trade delayed
publication - XOFF;
«37» - OTC MTF TBA 1;
«38» - OTC trade - delayed
publication MTF TBA 1;
«39» - Inter fund cross -
delayed publication requested
MTF TBA 1;
«40» - Cancellation of OTC
trade after date of publication
MTF TBA 1;
«41» - OTC MTF TBA 2;
«42» - OTC trade - delayed
publication MTF TBA 2;
«43» - Inter fund cross -
delayed publication requested
MTF TBA 2;
«44» - Cancellation of OTC
trade after date of publication
MTF TBA 2;
«45» - OTC MTF TBA 3;
«46» - OTC trade - delayed
publication MTF TBA 3;
«47» - Inter fund cross -
delayed publication requested
MTF TBA 3;
«48» - Cancellation of OTC
trade after date of publication
MTF TBA 3;
«49» - OTC MTF TBA 4;
«50» - OTC trade - delayed
publication MTF TBA 4;
«51» - Inter fund cross -
delayed publication requested
MTF TBA 4;
«52» - Cancellation of OTC
trade after date of publication
MTF TBA 4;
«53» - Delayed Publication
Late Correction XLON;
«54» - No to Mark Late
Correction XLON;
«55» - Витринная сделка
по операции своп;
Руководство пользователя QUIK
37
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
Возможные значения
«58» - Витринная сделка
по адресной операции своп;
«59» - Витринная сделка
по Беспоставочному свопу;
«60» - Сделка FX SPOT;
«61» - Сделка по
Беспоставочному валютному
форвардному контракту;
«62» - Сделка FX DEPOSIT;
«63» - Сделка по Валютному
расчетному форвардному
контракту
4. Описание параметров Таблицы обезличенных сделок, возвращаемое функцией
«GET_ITEM»:
Параметр
Тип
Описание
Возможные значения
1
NUMBER
DOUBLE
Номер сделки в торговой
системе
2
DATE
DOUBLE
Дата выставления
3
TIME
DOUBLE
Время выставления
4
SECURITY
STRING
Краткое наименование
инструмента
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
Код расчетов
Руководство пользователя QUIK
38
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
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
Дата выставления
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» - разрешить
Руководство пользователя QUIK
39
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
исполнение по разным ценам,
«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_SECURIT
STRING
Инструмент стоп-цены
Y
14
CONDITION_SECCODE
STRING
Код инструмента стоп-
цены
15
CONDITION_CLASS
STRING
Класс стоп-цены
16
CONDITION_
STRING
Код класса стоп-цены
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
Признак исполнения
«Да» либо пусто
заявки «стоп-лимит»
по рыночной цене
(для заявок типа
«Тейк-профит и стоп-
Руководство пользователя QUIK
40
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
лимит»)
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_
STRING
Срок действия заявки
TODAY
равен «Сегодня»
34
ACTIVE_IN_TIME_
STRING
Признак действия
«Да» либо пусто
INTERVAL
заявки типа «Тейк-
профит и стоп-лимит»
в течение периода
времени
35
ACTIVE_FROM_TIME
DOUBLE
Время начала периода
действия заявки типа
«Тейк-профит и стоп-
лимит»
36
ACTIVE_TO_TIME
DOUBLE
Время окончания
периода действия
заявки типа «Тейк-
профит и стоп-лимит»
37
USE_BASE_ORDER_
STRING
Брать исполненный
«Да» либо пусто
BALANCE
объем в качестве
количества выстав-
ляемой стоп-заявки
(для заявок
«по исполнению»)
38
KILL_IF_LINKED_ORDE
STRING
При частичном
«Да» либо пусто
R_PARTLY_FILLED
исполнении связанной
Руководство пользователя QUIK
41
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
заявки снять стоп-
заявку (для заявок
«по исполнению»)
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
Связанная заявка
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
STRING
Значение «защитного
«Да» либо пусто
_PERCENTS
спреда» указано
в процентах
50
MARKET_TAKE_PROFI
STRING
Признак исполнения
«Да» либо пусто
T
заявки «тейк-профит»
по рыночной цене
(для заявок типа
«Тейк-профит и стоп-
лимит»)
51
BASE_ORDER_NUM
DOUBLE
Заявка условия
Руководство пользователя QUIK
42
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
Возможные значения
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
Доступное количество
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
Текущий остаток по инструментам
Руководство пользователя QUIK
43
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
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
CBP_PREV_LIMIT
DOUBLE
Предыдущий лимит
открытых позиций
5
CBPLIMIT
DOUBLE
Лимит открытых
позиций
6
CBPLUSED
DOUBLE
Текущие чистые
позиции
7
CBPLUSED_FOR_
DOUBLE
Текущие чистые
ORDERS
позиции (под заявки)
8
CBPLUSED_FOR_
DOUBLE
Текущие чистые
POSITIONS
позиции (под открытые
позиции)
9
CBPLPLANNED
DOUBLE
Планируемые чистые
позиции
10
VARMARGIN
DOUBLE
Вариационная маржа
11
ACCRUEDINT
DOUBLE
Накопленный доход
12
OPTIONS_PREMIUM
DOUBLE
Премия по опционам
13
TS_COMISSION
DOUBLE
Биржевые сборы
14
KGO
DOUBLE
Коэффициент
клиентского
гарантийного
обеспечения
Руководство пользователя QUIK
44
Раздел 8: Алгоритмический язык QPILE
9. Описание параметров Таблицы позиций по клиентским счетам, возвращаемое
функцией «GET_ITEM»:
Параметр
Тип
Описание
Возможные значения
1
FIRMID
STRING
Идентификатор фирмы
2
TRDACCID
STRING
Торговый счет
3
SECCODE
STRING
Код фьючерсного
контракта
4
SEC_SHORT_NAME
STRING
Краткое название
контракта
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
Эффективная цена
позиций
Руководство пользователя QUIK
45
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
Возможные значения
18 POSITIONVALUE
DOUBLE
Стоимость позиций
10.Описание параметров Таблицы заявок на внебиржевые сделки, возвращаемое
функцией «GET_ITEM»:
Параметр
Тип
Описание
Возможные значения
1
NUMBER
DOUBLE
Номер
2
QUOTENO
DOUBLE
Встречная безадресная
заявка
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
Организация партнер
Руководство пользователя QUIK
46
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
22
CLIENTCODE
STRING
Код клиента
23
COMMENT
STRING
Комментарий
24
MATCH_REFERENCE
STRING
Ссылка
25
STATUS
STRING
Состояние
«Активна», «Исполнена»
или «Снята»
26
SETTLE_CODE
STRING
Код расчетов
27
DIRECTION
STRING
Направленность
«Отправлена», «Получена»
или «Отправлена и получена»
28
YIELD
DOUBLE
Доходность
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
Количество
первоначальное
Руководство пользователя QUIK
47
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
45
ORIG_DISCOUNT
DOUBLE
Процент дисконта
первоначальный
46
WITHDRAW_TIME
DOUBLE
Время снятия заявки
47
BALANCE
DOUBLE
Остаток
48
SETTLE_CURRENCY STRING
Валюта расчетов
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
Цена
Руководство пользователя QUIK
48
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
19
QUANTITY
DOUBLE
Количество
20
VALUE
DOUBLE
Объем
21
STATUS
STRING
Состояние
«FILLED» - исполнена;
«NOT FILLED» -
не исполнена;
«INCLUDE IN REPORT» -
включена в отчет
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
Исполнить
«Да» либо «Нет»
Руководство пользователя QUIK
49
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
Возможные значения
43
TRADE_TYPE
STRING
Тип
«Внесистемная сделка»;
«Первая часть сделки
РЕПО»;
«Вторая часть сделки
РЕПО»;
«Компенсационный взнос»
44
TRADE_OPERATION_
STRING
Направленность
«Зачислить» либо «Списать»
TYPE
45
EXPECTED_DISCOUN
DOUBLE
Дисконт после взноса
T
(%)
46
EXPECTED_QUANTITY
DOUBLE
Количество после
взноса
47
EXPECTED_
DOUBLE
Сумма РЕПО после
REPOVALUE
взноса
48
EXPECTED_
DOUBLE
Стоимость выкупа
REPO2VALUE
после взноса
49
EXPECTED_RETURN_
DOUBLE
Сумма возврата после
VALUE
взноса
50
REPORT_TRADE_DAT
DOUBLE
Дата заключения
E
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
Валюта расчетов
Руководство пользователя QUIK
50
Раздел 8: Алгоритмический язык QPILE
12.Описание параметров Таблицы заявок-отчетов на сделки РПС, возвращаемое
функцией «GET_ITEM»:
Параметр
Тип
Описание
Возможные значения
1
NUMBER
DOUBLE
Номер
2
DATE
STRING
Дата
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
Вид отчета
Руководство пользователя QUIK
51
Раздел 8: Алгоритмический язык QPILE
13.Описание параметров таблицы «Позиции участника по деньгам», возвращаемое
функцией «GET_ITEM»:
№ Параметр
Тип
Описание
Возможные значения
1
FIRMID
STRING
Фирма
2
CURRCODE
STRING
Валюта
3
TAG
STRING
Код позиции
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
52
Раздел 8: Алгоритмический язык QPILE
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
53
Раздел 8: Алгоритмический язык QPILE
Переменной «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
Дата погашения
10 LOT_SIZE
DOUBLE
Размер лота
Руководство пользователя QUIK
54
Раздел 8: Алгоритмический язык QPILE
Пример:
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».
DELETE_ITEM (DOUBLE Index)
Руководство пользователя QUIK
55
Раздел 8: Алгоритмический язык QPILE
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 backg5round_color,
STRING selected_backg5round_color)
Руководство пользователя QUIK
56
Раздел 8: Алгоритмический язык QPILE
Параметры:
№ Параметр
Тип
Описание
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 backg5round_color, STRING
selected_backg5round_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
Основной цвет шрифта строки
5
SELECTED_FONT_COLOR
STRING
Цвет шрифта, когда строка выделена курсором
Руководство пользователя QUIK
57
Раздел 8: Алгоритмический язык QPILE
Цвет фона (подсветки) задается макросом «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 Код инструмента
3 PARAM_NAME
STRING Идентификатор параметра
Пример:
LastPrice = GET_PARAM ("TQBR", "HYDR", "last")
Руководство пользователя QUIK
58
Раздел 8: Алгоритмический язык QPILE
Переменной «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
Идентификатор параметра
«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 Строковое значение параметра, аналогичное его представлению
в таблице. В строковом представлении учитываются разделители
разрядов, разделители целой и дробной части. Для перечислимых типов
выводятся соответствующие им строковые значения
Руководство пользователя QUIK
59
Раздел 8: Алгоритмический язык QPILE
Пример:
PARMAP=GET_PARAM_EX("TQBR","RTKM","WAPRICE")
WAPRICE=GET_VALUE(PARMAP, "PARAM_VALUE")
Переменной «WAPRICE» присваивается значение средневзвешенной цены по обыкновенным
акциям «Ростелекома» из класса «А1-Акции Московской Биржи».
8.12.3
Значения параметров функций
Список возможных кодов классов инструментов «classcode_list»:
Код класса Название
Код класса Название
TQBR
МБ ФР: Т+ А1-Акции, паи и РДР
GAZP
Облигации Газпром
TQBS
МБ ФР: Т+ А2-Акции и паи
INDX
МБ ФР: Индексы
TQNL
МБ ФР: Т+ Б-Акции и паи
GTS
РТС: СГК
GAZ
РТС: Акции Газпрома
TQOB
МБ ФР: Т+ А1-Облигации
QUADRO
РТС-СГК (Торги в валюте)
TQOS
МБ ФР: Т+ А2-Облигации
TQNO
МБ ФР: Т+ Б-Облигации
RTS10
РТС: Рынок «Десяти»
PSEQ
МБ ФР: РПС: А1-Акции и паи
RTSIDX
Индексы РТС
RTSIND
РТС (Индексы)
PSES
МБ ФР: РПС: А2-Акции и паи
SES2
ГЦБ: Крупные лоты
PSNL
МБ ФР: РПС: Б-Акции и паи
PSOB
МБ ФР: РПС: А1-Облигации
SPBFUT
Фьючерсы FORTS
PSNO
МБ ФР: РПС: Б-Облигации
SPBOPT
Опционы FORTS
SPBSPT
Спот Санкт-Петербург
PSAU
МБ ФР: РПС: Первичное
размещение (облигации)
SPBGKO
МКО
AUCT
МБ ФР: Аукцион (Акции)
SPBCEX
ГГКО на Петербургской валютной
MAIN
МБ ГЦБ
бирже
MAIC
ГЦБ: период закрытия
SPCGKO
Тестовая система на СПВБ
EQBREMU
Акции 1-го уровня (Эмулятор)
BOBR
МБ ГЦБ: Облигации ЦБ
USDRUB
Курс доллара на FORTS
FUOP
Фьючерсы ММВБ
Руководство пользователя QUIK
60
Раздел 8: Алгоритмический язык QPILE
Список возможных идентификаторов параметров:
Параметр
Тип
Описание
1
STATUS
STRING
Статус
2
LOTSIZE
NUMERIC
Размер лота
3
BID
NUMERIC
Лучшая цена спроса
4
BIDDEPTH
NUMERIC
Спрос по лучшей цене
5
BIDDEPTHT
NUMERIC
Суммарный спрос
6
NUMBIDS
NUMERIC
Количество заявок на покупку
7
OFFER
NUMERIC
Лучшая цена предложения
8
OFFERDEPTH
NUMERIC
Предложение по лучшей цене
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
Цена закрытия
Руководство пользователя QUIK
61
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
27
PREVWAPRICE
NUMERIC
Предыдущая оценка
28
CLOSEPRICE
NUMERIC
Цена периода закрытия
29
LASTCHANGE
NUMERIC
% изменения от закрытия
30
DIVIDENDDATE
NUMERIC
Дата закрытия реестра
31
PRIMARYDIST
STRING
Размещение
32
ACCRUEDINT
NUMERIC
Накопленный купонный доход
33
YIELD
NUMERIC
Доходность последней сделки
34
COUPONVALUE
NUMERIC
Размер купона
35
YIELDATPREVWAPRI
NUMERIC
Доходность по предыдущей оценке
36
YIELDATWAPRICE
NUMERIC
Доходность по оценке
37
PRICEMINUSPREVWAPRICE
NUMERIC
Разница цены последней к предыдущей оценке
38
CLOSEYIELD
NUMERIC
Доходность закрытия
39
CURRENTVALUE
NUMERIC
Текущее значение индексов Московской Биржи
40
LASTVALUE
NUMERIC
Значение индексов Московской Биржи на закрытие
предыдущего дня
41
LASTTOPREVSTLPRC
NUMERIC
Разница цены последней к предыдущей сессии
42
PREVSETTLEPRICE
NUMERIC
Предыдущая расчетная цена
43
PRICEMVTLIMIT
NUMERIC
Лимит изменения цены
44
PRICEMVTLIMITT1
NUMERIC
Лимит изменения цены T1
45
MAXOUTVOLUME
NUMERIC
Лимит объема активных заявок (в контрактах)
46
PRICEMAX
NUMERIC
Максимально возможная цена
47
PRICEMIN
NUMERIC
Минимально возможная цена
48
NEGVALTODAY
NUMERIC
Оборот внесистемных в деньгах
49
NEGNUMTRADES
NUMERIC
Количество внесистемных сделок за сегодня
50
NUMCONTRACTS
NUMERIC
Количество открытых позиций
51
CLOSETIME
STRING
Время закрытия предыдущих торгов (для индексов
РТС)
52
OPENVAL
NUMERIC
Значение индекса РТС на момент открытия торгов
53
CHNGOPEN
NUMERIC
Изменение текущего индекса РТС по сравнению
со значением открытия
Руководство пользователя QUIK
62
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
54
CHNGCLOSE
NUMERIC
Изменение текущего индекса РТС по сравнению
со значением закрытия
55
BUYDEPO
NUMERIC
Гарантийное обеспечение продавца
56
SELLDEPO
NUMERIC
Гарантийное обеспечение покупателя
57
CHANGETIME
STRING
Время последнего изменения
58
SELLPROFIT
NUMERIC
Доходность продажи
59
BUYPROFIT
NUMERIC
Доходность покупки
60
TRADECHANGE
NUMERIC
Разница цены последней к предыдущей сделки (Срочный
рынок МБ, ФБ СПБ, СПВБ)
61
FACEVALUE
NUMERIC
Номинал (для инструментов СПВБ)
62
MARKETPRICE
NUMERIC
Рыночная цена вчера
63
MARKETPRICETODAY
NUMERIC
Рыночная цена
64
NEXTCOUPON
NUMERIC
Дата выплаты купона
65
BUYBACKPRICE
NUMERIC
Цена оферты
66
BUYBACKDATE
NUMERIC
Дата оферты
67
ISSUESIZE
NUMERIC
Объем обращения
68
PREVDATE
NUMERIC
Дата предыдущего торгового дня
69
DURATION
NUMERIC
Дюрация
70
LOPENPRICE
NUMERIC
Официальная цена открытия
71
LCURRENTPRICE
NUMERIC
Официальная текущая цена
72
LCLOSEPRICE
NUMERIC
Официальная цена закрытия
73
QUOTEBASIS
STRING
Тип цены
74
PREVADMITTEDQUOT
NUMERIC
Признаваемая котировка предыдущего дня
75
LASTBID
NUMERIC
Лучшая цена спроса на момент завершения периода
торгов
76
LASTOFFER
NUMERIC
Лучшая цена предложения на момент завершения
торгов
77
PREVLEGALCLOSEPR
NUMERIC
Цена закрытия предыдущего дня
78
COUPONPERIOD
NUMERIC
Длительность купона
79
MARKETPRICE2
NUMERIC
Рыночная цена 2
80
ADMITTEDQUOTE
NUMERIC
Признаваемая котировка
Руководство пользователя QUIK
63
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
81
BGOP
NUMERIC
БГО по покрытым позициям
82
BGONP
NUMERIC
БГО по непокрытым позициям
83
STRIKE
NUMERIC
Цена страйк
84
STEPPRICET
NUMERIC
Стоимость шага цены
85
STEPPRICE
NUMERIC
Стоимость шага цены (для новых контрактов срочного
рынка Московской Биржи)
86
SETTLEPRICE
NUMERIC
Расчетная цена
87
OPTIONTYPE
STRING
Тип опциона
88
OPTIONBASE
STRING
Базовый актив
89
VOLATILITY
NUMERIC
Волатильность опциона
90
THEORPRICE
NUMERIC
Теоретическая цена
91
PERCENTRATE
NUMERIC
Агрегированная ставка
92
ISPERCENT
STRING
Тип цены фьючерса
93
CLSTATE
STRING
Статус клиринга
94
CLPRICE
NUMERIC
Котировка последнего клиринга
95
STARTTIME
STRING
Начало основной сессии
96
ENDTIME
STRING
Окончание основной сессии
97
EVNSTARTTIME
STRING
Начало вечерней сессии
98
EVNENDTIME
STRING
Окончание вечерней сессии
99
MONSTARTTIME
STRING
Начало утренней сессии
100
MONENDTIME
STRING
Окончание утренней сессии
101
CURSTEPPRICE
STRING
Валюта шага цены
102
REALVMPRICE
NUMERIC
Текущая рыночная котировка
103
MARG
STRING
Маржируемый
104
EXPDATE
NUMERIC
Дата исполнения инструмента
105
CROSSRATE
NUMERIC
Курс
106
BASEPRICE
NUMERIC
Базовый курс
107
HIGHVAL
NUMERIC
Максимальное значение (RTSIND)
108
LOWVAL
NUMERIC
Минимальное значение (RTSIND)
Руководство пользователя QUIK
64
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
109 ICHANGE
NUMERIC Изменение (RTSIND)
110 IOPEN
NUMERIC Значение на момент открытия (RTSIND)
111 PCHANGE
NUMERIC Процент изменения (RTSIND)
112 OPENPERIODPRICE
NUMERIC Цена предторгового периода
113 MIN_CURR_LAST
NUMERIC Минимальная текущая цена
114 SETTLECODE
STRING
Код расчетов по умолчанию
115 STEPPRICECL
DOUBLE
Стоимость шага цены для клиринга
116 STEPPRICEPRCL
DOUBLE
Стоимость шага цены для промклиринга
117 MIN_CURR_LAST_TI
STRING
Время изменения минимальной текущей цены
118 PREVLOTSIZE
NUMERIC Предыдущее значение размера лота
119 LOTSIZECHANGEDAT
NUMERIC Дата последнего изменения размера лота
120 AUCTPRICE
NUMERIC Цена послеторгового аукциона
121 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
Минимальный шаг цены
Руководство пользователя QUIK
65
Раздел 8: Алгоритмический язык QPILE
Параметр
Тип
Описание
13
SECTYPE
STRING
Тип инструмента
8.13 Функции для получения значений Окна
котировок
8.13.1
GET_QUOTES_II_LEVEL_DATA
Функция предназначена для получения значений котировок инструментов. С помощью этой
функции можно получить данные из Таблицы котировок для заданных кодов класса
и инструмента.
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 Функции для получения значений таблицы
«Позиции по инструментам»
Функции предназначены для получения значений таблицы для заданного кода клиента, кода
фирмы, кода инструмента и счета депо.
Руководство пользователя QUIK
66
Раздел 8: Алгоритмический язык QPILE
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)
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
Возвращает значение «Заблокированного на покупку количества лотов».
Руководство пользователя QUIK
67
Раздел 8: Алгоритмический язык QPILE
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
Код фирмы
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» присваивается значение текущего остатка;
Руководство пользователя QUIK
68
Раздел 8: Алгоритмический язык QPILE
переменной «ClDepoCL» присваивается значение текущего лимита;
переменной «ClDepoAV» присваивается значение доступного количества инструментов;
переменной «ClDepoLCK» присваивается значение заблокированного количества
инструментов;
переменной «ClDepoLCKBuy» присваивается значение заблокированного на покупку
количества лотов;
переменной «ClDepoLCKBuyValue» присваивается значение стоимости инструментов,
заблокированных на покупку.
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)
Руководство пользователя QUIK
69
Раздел 8: Алгоритмический язык QPILE
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)
Пример:
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» присваивается значение заблокированного количества
денежных средств.
Руководство пользователя QUIK
70
Раздел 8: Алгоритмический язык QPILE
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)
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
STRING
Счет депо
*ACCOUNT
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")
Руководство пользователя QUIK
71
Раздел 8: Алгоритмический язык QPILE
Переменной «ClShortsValue» присваивается значение стоимости всех коротких позиций
для клиента с кодом «1075» по инструменту «РусГидро» из класса «А1-Акции» по счету
«L01-00000F00», исходя из цены последней сделки.
Переменной ClLongsValue присваивается значение стоимости всех длинных позиций для
клиента с кодом «1075» по инструменту «РусГидро» из класса «А1-Акции» по счету «L01-
00000F00», исходя из цены открытия.
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)
Параметры:
№ Параметр
Тип
Описание
Руководство пользователя QUIK
72
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
1
IS_LEVERAGE
STRING
Признак использования схемы
Тип клиента
(12)
кредитования с контролем текущей
стоимости активов. Возможные значения:
«МЛ» - используется схема ведения
позиции «по плечу», «плечо»
рассчитано по значению Входящего
лимита;
«МП» - используется схема ведения
позиции «по плечу», «плечо» указано
явным образом;
«МОП» - используется схема ведения
позиции «лимит на открытую
позицию»;
«МД» - используется схема ведения
позиции «по дисконтам»;
<пусто> - используется схема ведения
позиции «по лимитам»
2
IN_ASSETS
DOUBLE
Оценка собственных средств клиента
Вход. активы
до начала торгов
3
LEVERAGE
DOUBLE
Плечо. Если не было задано явно,
Плечо
то отношение Входящего лимита к
Входящим активам
4
OPEN_LIMIT
DOUBLE
Оценка максимальной величины заемных
Вход. лимит
средств до начала торгов
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
Текущая оценка максимальной величины
Тек. Лимит
заемных средств
Руководство пользователя QUIK
73
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
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
Текущая оценка стоимости всех позиций
ТекСредства
клиента
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
Оценка стоимости коротких позиций.
Шорты (нетто)
При расчете не используется коэффициент
дисконтирования*
Руководство пользователя QUIK
74
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
28
VAL_LONG_NET
DOUBLE
Оценка стоимости длинных позиций.
Лонги (нетто)
При расчете не используется коэффициент
дисконтирования*
29
TOTAL_MONEY_BAL
DOUBLE
Сумма остатков по денежным средствам
Сумма ден.
по всем позициям, без учета средств,
остатков
заблокированных под исполнение
обязательств, выраженная в выбранной
валюте расчета
30
TOTAL_LOCKED_MONEY
DOUBLE
Cумма заблокированных средств со всех
Суммарно заблок.
денежных позиций клиента, пересчитанная
в валюту расчетов через кросс-курсы
на сервере
31
HAIRCUTS
DOUBLE
Сумма дисконтов стоимости длинных
Сумма дисконтов
(только по инструментам обеспечения)
и коротких позиций по инструментам,
дисконтов корреляции между
инструментами, а также дисконтов
на задолженности по валютам,
не покрытые обеспечением по
инструментам в этих же валютах
32
ASSETS_WITHOUT_HC
DOUBLE
Суммарная величина денежных остатков,
ТекАктБезДиск
стоимости длинных позиций
по инструментам обеспечения и стоимости
коротких позиций, без учета
дисконтирующих коэффициентов,
без учета неттинга стоимости инструментов
в рамках объединенной позиции по
инструментам и без учета корреляции
между инструментами
33
STATUS_COEF
DOUBLE
Отношение суммы дисконтов к текущим
Статус счета
активам без учета дисконтов
34
VARMARGIN
DOUBLE
Текущая вариационная маржа по позициям
Вариац. маржа
клиента, по всем инструментам
35
GO_FOR_POSITIONS
DOUBLE
Размер денежных средств, уплаченных
ГО поз.
под все открытые позиции на срочном
рынке
36
GO_FOR_ORDERS
DOUBLE
Оценка стоимости активов в заявках
ГО заяв.
на срочном рынке
37
RATE_FUTURES
DOUBLE
Отношение ликвидационной стоимости
Активы/ГО
портфеля к ГО по срочному рынку
Руководство пользователя QUIK
75
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
38 IS_QUAL_CLIENT
STRING Признак «квалифицированного» клиента,
ПовышУрРиска
которому разрешено кредитование
заемными средствами с плечом 1:3.
Возможные значения: «ПовышУрРиска» -
квалифицированный, <пусто> - нет
39 IS_FUTURES
STRING Счет клиента на срочном рынке Московкой
Сроч. счет
Биржи, в случае наличия объединенной
позиции, иначе поле остается пустым
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».
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.
Руководство пользователя QUIK
76
Раздел 8: Алгоритмический язык QPILE
Дополнительно возвращаются следующие параметры:
№ Параметр
Тип
Описание
1
INIT_MARGIN
DOUBLE
Значение начальной маржи.
Нач.маржа
Заполняется для клиентов типа «МД»
2
MIN_MARGIN
DOUBLE
Значение минимальной маржи.
Мин.маржа
Заполняется для клиентов типа «МД»
3
CORRECTED_MARGIN
DOUBLE
Значение скорректированной маржи.
Скор.маржа
Заполняется для клиентов типа «МД»
4
CLIENT_TYPE
DOUBLE
Тип клиента
Тип клиента
5
PORTFOLIO_VALUE
DOUBLE
Стоимость портфеля.
Стоимость
Для клиентов типа «МД» возвращается
портфеля
значение для строк с максимальным
сроком расчетов limit_kind
6
RCV1
DOUBLE
Норматив покрытия риска 1.
НПР1
Рассчитывается как разница
параметров «Стоимость портфеля»
и «Начальная маржа». Для клиентов
типа «МД» и «МД+»
7
RCV2
DOUBLE
Норматив покрытия риска 2.
НПР2
Рассчитывается как разница
параметров «Стоимость портфеля»
и «Минимальная маржа». Для клиентов
типа «МД» и «МД+»
Пример:
GET_CLIENT_MARGINAL_PORTFOLIO_INFO_EX ("NC0080000000", "1", "0")
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)
Руководство пользователя QUIK
77
Раздел 8: Алгоритмический язык QPILE
Параметры:
Параметр
Тип
Описание
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
Коэффициент дисконтирования, применяемый для коротких
позиций по данному инструменту
13
VALUE_COEF
DOUBLE
Оценка стоимости позиции по цене последней сделки, с учетом
дисконтирующих коэффициентов
14
OPEN_VALUE_COEF
DOUBLE
Оценка стоимости позиции клиента, рассчитанная по цене
закрытия предыдущей торговой сессии с учетом
дисконтирующих коэффициентов
15
SHARE
DOUBLE
Процентное отношение стоимости позиции по данному
инструменту к стоимости всех активов клиента, рассчитанное
по текущим ценам
16
SHORT_WA_PRICE
DOUBLE
Средневзвешенная стоимость коротких позиций
по инструментам
Руководство пользователя QUIK
78
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
17 LONG_WA_PRICE
DOUBLE Средневзвешенная стоимость длинных позиций
по инструментам
18 PROFIT_LOSS
DOUBLE Разница между средневзвешенной ценой приобретения
инструментов и их рыночной оценки
19 SPREAD_HC
DOUBLE Коэффициент корреляции между инструментами
20 CAN_BUY_OWN
DOUBLE Максимально возможное количество инструментов в заявке
на покупку этого инструмента на этом классе на собственные
средства клиента, исходя из лучшей цены предложения
21 CAN_SELL_OWN
DOUBLE Максимально возможное количество инструментов в заявке
на продажу этого инструмента на этом классе из собственных
активов клиента, исходя из лучшей цены спроса
22 IS_REST_SHORT_SEC DOUBLE Признак того, является ли инструмент разрешенным
для продажи на заемные средства. Возможные значения:
«1» - разрешена, «0» - не разрешена.
Не заполняется для клиентов типа «МД»
(*) В зависимости от настроек сервера QUIK, величина может выражаться
в лотах, либо в штуках. Уточните единицу измерения у обслуживающего
брокера.
Пример:
GET_CLIENT_MARGINAL_BUY_SELL_INFO ("NC0080000000", "1", "TQBR", "HYDR", 0)
8.17.4
GET_CLIENT_MARGINAL_BUY_SELL_INFO_EX
Функция возвращает ассоциативный массив (MAP) с параметрами таблицы
«Купить/Продать», означающими возможность купить либо продать указанный инструмент
«sec_code» класса «class_code», указанным клиентом «client_code» фирмы «firmid»,
по указанной цене «price». Если цена равна «0», то используются лучшие значения
спроса/предложения.
MAP GET_CLIENT_MARGINAL_BUY_SELL_INFO_EX (STRING firmid,
STRING client_code, STRING class_code, STRING sec_code, DOUBLE price)
Описание возвращаемых параметров см. в п. 8.17.3.
Руководство пользователя QUIK
79
Раздел 8: Алгоритмический язык QPILE
Дополнительно возвращаются следующие параметры:
№ Параметр
Тип
Описание
1
LIMIT_KIND
DOUBLE
Срок расчетов. Возможные значения:
«0» - «Т0»;
«1» - «Т1»;
«2» - «Т2»
2
D_LONG
DOUBLE
Эффективный начальный дисконт для длинной позиции.
Заполняется для клиентов типа «МД»
3
D_MIN_LONG
DOUBLE
Эффективный минимальный дисконт для длинной позиции.
Заполняется для клиентов типа «МД»
4
D_SHORT
DOUBLE
Эффективный начальный дисконт для короткой позиции.
Заполняется для клиентов типа «МД»
5
D_MIN_SHORT
DOUBLE
Эффективный минимальный дисконт для короткой позиции.
Заполняется для клиентов типа «МД»
6
CLIENT_TYPE
DOUBLE
Тип клиента
7
IS_LONG_ALLOWED
DOUBLE
Признак того, является ли инструмент разрешенным
для покупки на заемные средства. Возможные значения:
«1» - разрешена, «0» - не разрешена.
Заполняется для клиентов типа «МД»
8
IS_SHORT_ALLOWED
DOUBLE
Признак того, является ли инструмент разрешенным
для продажи на заемные средства. Возможные значения:
«1» - разрешена, «0» - не разрешена.
Заполняется для клиентов типа «МД»
Пример:
GET_CLIENT_MARGINAL_BUY_SELL_INFO_EX ("NC0080000000", "1", "TQBR", "HYDR", 0)
8.18 Функции для работы с файлами
Функции предназначены для работы с текстовыми файлами и могут использоваться,
например, для ведения журнала (log-файла) действий программы. Названия файлов могут
содержать пути к ним, например «C:/QUIK/log/new.log».
8.18.1
CLEAR_FILE
Очищает указанный файл.
Руководство пользователя QUIK
80
Раздел 8: Алгоритмический язык QPILE
MAP CLEAR_FILE (STRING target_file)
Функция возвращает ассоциативный массив (MAP), содержащий параметры:
№ Параметр
Тип
Описание
1
RESULT
DOUBLE Результат выполнения операции. Возможные значения:
«1» - выполнено успешно, «0» - произошла ошибка
2
DESCRIPTION STRING Диагностика операционной системы в случае ошибки
8.18.2
WRITE
Записывает в конец файла «target_file» строку «string_to_write».
MAP WRITE (STRING target_file, STRING string_to_write)
Функция возвращает ассоциативный массив (MAP), содержащий параметры:
№ Параметр
Тип
Описание
1
RESULT
DOUBLE Результат выполнения операции. Возможные значения:
«1» - выполнено успешно, «0» - произошла ошибка
2
DESCRIPTION STRING Диагностика операционной системы в случае ошибки
8.18.3
WRITELN
Записывает в конец файла «target_file» строку «string_to_write» с последующим переводом
строки.
MAP WRITELN (STRING target_file, STRING string_to_write)
Функция возвращает ассоциативный массив (MAP), содержащий параметры:
№ Параметр
Тип
Описание
1
RESULT
DOUBLE Результат выполнения операции. Возможные значения:
«1» - выполнено успешно, «0» - произошла ошибка
2
DESCRIPTION STRING Диагностика операционной системы в случае ошибки
Пример:
Руководство пользователя QUIK
81
Раздел 8: Алгоритмический язык QPILE
CLEAR_FILE ("new.log")
WRITE ("new.log","Hello, ")
WRITELN ("new.log","world")
8.18.4
GET_FILE_LEN
Возвращает количество строк в файле «target_file». Если такого файла не существует,
возвращает «-1».
DOUBLE
GET_FILE_LEN (STRING target_file)
8.18.5
READ_LINE
Функция считывает из файла «target_file» и возвращает строку под номером «line». Длина
строки не должна превышать 1000 символов, строки большей длины при считывании будут
обрезаны.
STRING
READ_LINE (STRING target_file, DOUBLE line, DOUBLE error)
«error» - возвращаемый результат выполнения операции. Если значение равно «0»,
то чтение прошло успешно; «1» - произошла ошибка, «2» - достигнут конец файла.
Пример:
WRITELN ("new.log","Hello, world")
msg = READ_LINE ("new.log", GET_FILE_LEN("new.log"), error)
MESSAGE (msg,1)
8.19 Функции для работы со строками
8.19.1
LEN
Возвращает длину строковой переменной «value».
DOUBLE
LEN (STRING value)
8.19.2
TRIM
Обрезает пробелы в начале и в конце строки.
Руководство пользователя QUIK
82
Раздел 8: Алгоритмический язык QPILE
STRING
TRIM (STRING value)
Функция возвращает строку без пустых символов в начале и в конце строки.
8.19.3
SUBSTR
Возвращает подстроку из строки «value», начиная с символа с номером «start» и длиной
«len».
STRING
SUBSTR (STRING value, DOUBLE start, DOUBLE len)
8.19.4
FIND
Ищет вхождение подстроки в заданную строку.
DOUBLE
FIND (STRING value, DOUBLE start, STRING sub)
Функция возвращает позицию первого вхождения подстроки «sub» в строке «value»,
начиная с позиции «start». Если подстрока не найдена, функция возвращает результат «-1».
Пример:
stroka="anymessage"
stroka2=SUBSTR(stroka, FIND(stroka, 1, "message"), LEN("message"))
MESSAGE (stroka2,2)
8.20 Функции для работы с графиками
8.20.1
GET_CANDLE
Функция для обращения к данным «свечек» на графике, а также к значениям индикаторов
технического анализа.
MAP GET_CANDLE (STRING class_code, STRING sec_code, STRING parameter_name,
STRING interval, STRING graph_type, DOUBLE Date, DOUBLE Time)
Функция возвращает ассоциативный массив (MAP), содержащий информацию о ценах
в момент времени «Date»«Time», для графика, построенного по инструменту с кодом
«sec_code» из класса с кодом «class_code» с временным интервалом «interval». Если
«class_code» равен «», то функция ищет «sec_code» по всем классам до первого
нахождения.
Тип графика указывается следующим кодом:
Руководство пользователя QUIK
83
Раздел 8: Алгоритмический язык QPILE
Тип графика
Код
Тип графика
Код
Тип графика
Код
PARABOLIC SAR
10
CUM AD
21
PRICE
1
SROC
11
CHAIKIN OSCILLATOR
22
VOLUME
2
MOVING AVERAGE
3
MOM
12
CUM WAD
23
PRICE OSCILLATOR
4
ROC
13
ELDER FI
24
MACD
5
MFI
16
ELDER RAY
25
WILLIAMS %R
17
VERTICAL HORIZONTAL
26
STANDARD DEV
6
FILTER
ENVELOPS
18
BOLLINGER LINES
7
CHAIKIN VOLATILITY
27
STOCHASTIC
8
VOLUME OSCILLATOR
19
RSI
9
BALANCE VOLUME
20
Значение временного интервала «interval» можно задавать следующими числовыми
величинами:
Величина
Величина
Величина
интервала
Значение
интервала
Значение
интервала
Значение
Месячный
month
1 минута
1
15 минут
15
-3
2 минуты
2
20 минут
20
3 минуты
3
30 минут
30
Недельный
week
4 минуты
4
60 минут
60
-2
5 минут
5
2 часа
120
Дневной
day
-1
6 минут
6
4 часа
240
Тиковый
0
10 минут
10
Значение «parameter_name» должно соответствовать одному из значений имени параметра
из Таблицы текущих торгов, перечень см. в п. 8.12. Если «parameter_name» указан как «»,
то поиск осуществляется по данным Таблицы обезличенных сделок.
Значение даты «Date» нужно указывать в формате «ГГГГММДД». Например, «20050527»
означает 27 мая 2005 г. Значение времени «Time» нужно указывать в формате «ЧЧММСС».
Например, «163500» означает 16 ч. 35 мин.
Функция возвращает ассоциативный массив (MAP), содержащий параметры:
Руководство пользователя QUIK
84
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
1
OPEN
DOUBLE Цена открытия (первой сделки) в данном интервале времени
2
CLOSE
DOUBLE Цена закрытия (последней сделки) в интервале
3
HIGH
DOUBLE Наибольшая цена сделки в интервале
4
LOW
DOUBLE Наименьшая цена сделки в интервале
5
VOLUME
DOUBLE Суммарный объем сделок в интервале
Пример:
msg = GET_CANDLE("TQBR", "HYDR", "", "5", "PRICE", 20101130, 103500)
MESSAGE(msg, 2)
8.20.2
GET_CANDLE_EX
В некоторых случаях, например, когда индикатор технического анализа состоит
из нескольких линий, применение функции GET_CANDLE невозможно. Для доступа к таким
индикаторам средствами языка QPILE применяется функция GET_CANDLE_EX.
MAP GET_CANDLE_EX (STRING Tag, DOUBLE Date, DOUBLE Time)
Функция возвращает ассоциативный массив (MAP) с данными для графика со строковым
идентификатором Tag в момент времени «Date» и «Time». Таким образом, для того чтобы
обратиться к данным на графике, необходимо его предварительно построить и присвоить
ему уникальный строковый идентификатор Tag. Идентификатор Tag задается в диалоге
«Редактирование настроек графика» на вкладке «Дополнительно» (см. п. 4.2.3 Раздела 4
«Работа с графиками»).
При вызове функции значение даты «Date» нужно указывать в формате «ГГГГММДД».
Например, «20050527» означает 27 мая 2005 г. Значение времени «Time» нужно указывать
в формате «ЧЧММСС». Например, «163500» означает 16 ч. 35 мин. Функция округляет
параметр «Time» до ближайшего меньшего значения времени, соответствующего интервалу
графика. Например, если интервал графика - «5 минут», а значение параметра «Time» -
«163700», то функция округлит значения параметр «Time» до «163500», а если интервал
графика - «60 минут», то «163700» округлиться до «160000».
Возвращаемый функцией ассоциативный массив содержит следующие поля:
Руководство пользователя QUIK
85
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
1
COUNT
DOUBLE Количество линий, образующих индикатор
2
TIME
DOUBLE Точное время свечки
3
LINES
DOUBLE Коллекция линий, в которой каждый элемент коллекции содержит
ассоциативный массив (MAP)
Каждый элемент коллекции линий содержит ассоциативный массив (MAP) со следующими
параметрами:
№ Параметр
Тип
Описание
1
NAME
STRING Название линии (из легенды)
2
OPEN
DOUBLE Цена открытия в интервале времени
3
CLOSE
DOUBLE Цена закрытия в интервале времени
4
HIGH
DOUBLE Наибольшее значение цены в интервале времени
5
LOW
DOUBLE Наименьшее значение цены в интервале времени
6
VOLUME
DOUBLE Суммарный объем сделок в интервале
Пример:
slice = Get_Candle_Ex ("all", 20070511, 170000)
LineCount = Get_Value (slice,"COUNT")
time = Get_Value (slice,"TIME")
lines = Get_Value (slice,"LINES")
FOR lineID FROM 0 TO LineCount-1
line = Get_Collection_Item (lines, lineID)
open = Get_Value (line,"OPEN")
line_name = Get_Value (line,"NAME")
volume = Get_Value (line,"VOLUME")
END FOR
8.21 Функции для работы с заявками
Функции предназначены для создания заявок и отправки их в торговую систему.
Руководство пользователя QUIK
86
Раздел 8: Алгоритмический язык QPILE
8.21.1
SEND_TRANSACTION
Отправляет заявку с параметрами, указанными в массиве «trans_params» и ожидает ответа
торговой системы в течение «wait_timeout_for_replay» (в секундах, не менее 5). Элементы
массива «trans_params» заполняются по правилам создания строки для импорта транзакций
из файла (подробнее см. п.6.11 Раздела 6 «Совместная работа с другими приложениями»).
MAP SEND_TRANSACTION (DOUBLE wait_timeout_for_replay, MAP trans_params)
Транзакции, выполняющие групповое снятие заявок, не поддерживаются:
«KILL_ALL_ORDERS» - снять все заявки из торговой системы,
«KILL_ALL_STOP_ORDERS» - снять все стоп-заявки,
«KILL_ALL_NEG_DEALS» - снять все заявки на внебиржевые сделки и заявки на сделки
РЕПО.
Функция возвращает ассоциативный массив (MAP), содержащий результат обработки
заявки:
№ Параметр
Тип
Описание
1 RESULT
DOUBLE Результат выполнения операции. Возможные значения:
«1» - выполнено успешно, «0» - произошла ошибка
2 RESULT_EX
STRING Расширенная диагностика выполнения операции. Может
принимать значения, соответствующие полю «STATUS»
в «.tro»-файле при импорте транзакций (см. п. 6.11.4
Раздела 6 «Совместная работа с другими приложениями»)
3 ORDER_NUMBER DOUBLE Регистрационный номер заявки в торговой системе
4 DESCRIPTION
STRING Текстовый комментарий с ответом сервера QUIK
или торговой системы
Пример:
new_global("trans_params", "")
new_global("trans_result", "")
trans_params = CREATE_MAP ()
trans_params = set_value (trans_params, "TRANS_ID", "333")
trans_params = set_value (trans_params, "ACTION", "NEW_ORDER")
trans_params = set_value (trans_params, "CLASSCODE", "TQBR")
trans_params = set_value (trans_params, "SECCODE", "HYDR")
trans_params = set_value (trans_params, "ACCOUNT", "L01-00000F00")
trans_params = set_value (trans_params, "OPERATION", "B")
trans_params = set_value (trans_params, "PRICE", "7.561")
Руководство пользователя QUIK
87
Раздел 8: Алгоритмический язык QPILE
trans_params = set_value (trans_params, "QUANTITY", "1")
trans_params = set_value (trans_params, "CLIENT_CODE", "")
trans_params = set_value (trans_params, "TYPE", "L")
trans_result = SEND_TRANSACTION (30, trans_params)
WRITELN ("qpile_trans.log", get_value (curr_datetime, "DATETIME") & ": " & "Result: "
& get_value (trans_result, "RESULT") & ", Result_ex: " & get_value (trans_result,
"RESULT_EX") & ", OrderNum: " & get_value (trans_result, "ORDER_NUMBER") & ",
Description: " & get_value (trans_result, "DESCRIPTION"))
8.22 Функции для работы с метками
Функции предназначены для построения меток и установки их на график.
8.22.1
ADD_LABEL
Добавляет метку с заданными параметрами.
DOUBLE
ADD_LABEL (STRING tag, MAP label params)
В окно, где отображен график с идентификатором «tag» добавляется метка. В случае
успешного добавления функция возвращает идентификатор метки или (-1), если добавить
метку не удалось.
Формат массива MAP содержит следующие параметры метки:
№ Параметр
Тип
Описание
1 TEXT
STRING Подпись метки (если подпись не требуется, то пустая
строка)
2 IMAGE_PATH
STRING Путь к картинке, которая будет отображаться в качестве
метки (пустая строка, если картинка не требуется)
3 ALIGNMENT
STRING Расположение картинки относительно текста (возможно 4
варианта: LEFT, RIGHT, TOP, BOTTOM)
4 YVALUE
DOUBLE Значение параметра на оси Y, к которому будет привязана
метка
5 DATE
DOUBLE Дата в формате «ГГГГММДД», к которой привязана метка
6 TIME
DOUBLE Время в формате «ЧЧММСС», к которому будет привязана
метка
7 R
DOUBLE Красная компонента цвета в формате RGB. Число
в интервале [0;255]
Руководство пользователя QUIK
88
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
8 G
DOUBLE Зеленая компонента цвета в формате RGB. Число
в интервале [0;255]
9 B
DOUBLE Синяя компонента цвета в формате RGB. Число
в интервале [0;255]
10 TRANSPARENCY
DOUBLE Прозрачность метки в процентах. Значение должно быть
в промежутке [0; 100]
11 TRANSPARENT_BACKGROUND DOUBLE Прозрачность метки. Возможные значения: «0» -
прозрачность отключена, «1» - прозрачность включена
12 FONT_FACE_NAME
STRING Название шрифта (например «Arial»)
13 FONT_HEIGHT
DOUBLE Размер шрифта
14 HINT
STRING Текст всплывающей подсказки
Пример:
label_params=create_map()
label_params=set_value(label_params,"TEXT", "Текст метки")
label_params=set_value(label_params,"IMAGE_PATH", "image.bmp")
label_params=set_value(label_params,"ALIGNMENT", "LEFT")
label_params=set_value(label_params,"YVALUE", 2000)
label_params=set_value(label_params,"DATE", 20080616)
label_params=set_value(label_params,"TIME", 220000)
label_params=set_value(label_params,"R", 0)
label_params=set_value(label_params,"G", 0)
label_params=set_value(label_params,"B", 200)
label_params=set_value(label_params,"TRANSPARENCY", 10)
label_params=set_value(label_params,"FONT_FACE_NAME", "Tahoma")
label_params=set_value(label_params,"FONT_HEIGHT", 12)
label_params=set_value(label_params,"HINT", "Подсказка")
id=ADD_LABEL("ALL", label_params)
Результат представляется следующим образом: на графике с идентификатором "ALL" будет
добавлена метка с параметрами, указанными в массиве label_params.
8.22.2
DELETE_LABEL
Удаляет метку с заданными параметрами.
Руководство пользователя QUIK
89
Раздел 8: Алгоритмический язык QPILE
DOUBLE
DELETE_LABEL(STRING tag, DOUBLE id)
Удаляет метку с графика с текстовым идентификатором «tag» по заданному идентификатору
id. В случае успешного удаления возвращает 1, в случае неудачи 0.
Пример:
err=DELETE_LABEL("ALL", id)
Результат действия функции будет удаление метки на графике с идентификатором «ALL».
8.22.3
DELETE_ALL_LABELS
Команда удаляет все метки на диаграмме с указанным графиком.
DOUBLE
DELETE_ALL_LABELS(STRING tag)
Удаляет все нанесенные метки с диаграммы, содержащей график с идентификатором tag.
Если на этой диаграмме отображаются графики с разными идентификаторами, то этой
командой будут удалены метки со всех графиков, а не только с указанного графика.
Пример:
err=DELETE_ALL_LABELS("ALL")
Результатом действия функции будет удаление всех меток на графике.
8.22.4
GET_LABEL_PARAMS
Команда позволяет получить параметры меток.
MAP GET_LABEL_PARAMS(STRING tag, DOUBLE id)
Возвращает параметры метки с указанным идентификатором; если метка с указанным
идентификатором не существует - возвращается пустой MAP.
«tag» - идентификатор любого индикатора на графике, в котором расположена метка,
«id» - индекс или порядковый номер метки. Начинается с единицы.
Руководство пользователя QUIK
90
Раздел 8: Алгоритмический язык QPILE
Пример:
new_params=GET_LABEL_PARAMS("ALL", id)
Результатом действия является получение данных метки. Если такой метки не существует,
то возвратившиеся значения будут пустыми.
8.22.5
SET_LABEL_PARAMS
Функция задает параметры для метки с указанным идентификатором.
DOUBLE
SET_LABEL_PARAMS(STRING tag, DOUBLE id, MAP new label params)
Она позволяет задать новые параметры для метки. В случае успешного обновления
параметров функция возвращает 1, в случае неудачи 0.
Пример:
err=SET_LABEL_PARAMS("ALL", id, label_params)
Результатом действия функции будет изменение существующих параметров на заданные
функцией.
8.23 Сервисные функции
8.23.1
GET_TRADE_DATE
Возвращает дату текущей торговой сессии.
MAP GET_TRADE_DATE ()
Функция возвращает ассоциативный массив (MAP), содержащий параметры:
№ Параметр
Тип
Описание
1
DATE
STRING
Торговая дата в виде строки «ДД.ММ.ГГГГ»
2
YEAR
DOUBLE
Год
Руководство пользователя QUIK
91
Раздел 8: Алгоритмический язык QPILE
№ Параметр
Тип
Описание
3
MONTH
DOUBLE
Месяц
4
DAY
DOUBLE
День
Пример:
writeln(log_file_name, get_value(GET_TRADE_DATE(), "Date"))
Записывает в файл строку вида:
02.06.2004
8.23.2
GET_DATETIME
Возвращает текущие дату и время.
MAP GET_DATETIME ()
Функция возвращает ассоциативный массив (MAP), содержащий параметры:
№ Параметр
Тип
Описание
1
DATETIME
STRING Торговая дата в виде строки «ДД.ММ.ГГГГ ЧЧ:ММ:СС.ссс», где «ссс» -
миллисекунды
2
YEAR
DOUBLE Год
3
MONTH
DOUBLE Месяц
4
DAY
DOUBLE День
5
DAYOFWEEK
DOUBLE Порядковый номер дня недели (воскресенье - 0, понедельник - 1,
вторник - 2, среда - 3, четверг - 4, пятница -5, суббота - 6)
6
HOUR
DOUBLE Час
7
MIN
DOUBLE Минута
8
SEC
DOUBLE Секунда
9
MILLISEC
DOUBLE Миллисекунда
Руководство пользователя QUIK
92
Раздел 8: Алгоритмический язык QPILE
Пример:
writeln(log_file_name, get_value(GET_DATETIME(), "Datetime"))
Записывает в файл строку вида:
02.06.2004 16:57:34.460
8.23.3
APPLY_SCALE
Возвращает строку с числом, полученным округлением числа «without_scale» до разрядности
«scale».
STRING
APPLY_SCALE (DOUBLE without_scale, DOUBLE scale)
8.23.4
IS_CONNECTED
Функция предназначена для определения состояния подключения клиентского места
к серверу. Возвращает 1, если клиентское место подключено и 0, если не подключено.
IS_CONNECTED ()
8.23.5
GET_INFO_PARAM
Функция возвращает значения параметров информационного окна (пункт меню
Система/О программе/Информационное окно…).
STRING
GET_INFO_PARAM (STRING param_name)
Параметр «param_name» может принимать значения, представленные в таблице.
Значение
Значение
параметра
Описание
параметра
Описание
VERSION
Версия программы
LATERECORD
Отставшая запись
CONNECTION
Соединение
TRADEDATE
Дата торгов
IPADDRESS
IP-адрес сервера
SERVERTIME
Время сервера
LASTRECORDTIME
Время последней записи
IPPORT
Порт сервера
NUMRECORDS
Число записей
IPCOMMENT
Описание соединения
SERVER
Описание сервера
LASTRECORD
Последняя запись
Руководство пользователя QUIK
93
Раздел 8: Алгоритмический язык QPILE
Значение
Значение
параметра
Описание
параметра
Описание
SESSIONID
Идентификатор сессии
ALLRECV
Принято всего байт
USER
Пользователь
BYTESPERSECRECV
Принято за секунду
USERID
ID пользователя
AVGSENT
Средняя скорость
передачи
ORG
Организация
AVGRECV
Средняя скорость
MEMORY
Занято памяти
приема
LOCALTIME
Текущее время
LASTPINGTIME
Время последней
проверки связи
CONNECTIONTIME
Время на связи
LASTPINGDURATION
Задержка данных при
MESSAGESSENT
Передано сообщений
обмене с сервером
ALLSENT
Передано всего байт
AVGPINGDURATION
Средняя задержка
BYTESSENT
Передано полезных байт
данных
BYTESPERSECSENT
Передано за секунду
MAXPINGTIME
Время максимальной
задержки
MESSAGESRECV
Принято сообщений
MAXPINGDURATION
Максимальная задержка
BYTESRECV
Принято полезных байт
данных
8.23.6
BREAKPOINT
Функция предназначена для прерывания режима расчета и вывода окна «Отладка»,
в котором пользователь сможет наблюдать за дальнейшей работой программы.
BREAKPOINT ()
Команда не содержит никаких параметров и результатом ее действия является остановка
выполнения программы, выделение красным маркером следующей за ней функции и вызов
окна «Отладка», в котором пользователь сможет отслеживать выполнение кода скрипта.
При необходимости, команда может содержаться в коде произвольное количество раз.
8.24 Отладка программ QPILE
Окно «Отладка» предназначено для пошагового контроля за исполнением кода скриптов.
Оно позволяет отслеживать выполнение кода программ, написанных на языке QPILE.
Окно может быть вызвано следующим образом:
из таблицы QPILE, выбрав команду контекстного меню «Начать расчет в режиме
отладки»;
Руководство пользователя QUIK
94
Раздел 8: Алгоритмический язык QPILE
из кода программы функцией breakpoint().
Окно содержит два больших поля:
«Код программы» - выводит код языка QPILE;
«Значения переменных» - выводятся переменные и их значения в виде двух столбцов.
При вызове окна с помощью оператора breakpoint() следующая за ним строка программы
будет отмечена красным цветом.
Окно «Отладка» содержит следующие кнопки:
«Следующий шаг» - выполняет один оператор в коде.
«Продолжить выполнение» - продолжает выполнение программы, пока не будет нажата
кнопка «Остановить расчет», найден еще один оператор breakpoint() или не будет
достигнут конец программы.
«Остановить расчет» - останавливает расчет на последнем выполненном операторе.
Доступные функции:
«F5» - продолжить выполнение программы;
«Shift»+«F5» - прекратить отладку программы и закрыть данное окно;
«F10» - перейти к следующей строке.
Руководство пользователя QUIK
95
Раздел 8: Алгоритмический язык QPILE
ПРИЛОЖЕНИЕ 1. Синтаксис команд языка QPILE
Program:
Statement_List
Statement_List:
Statement "\n"
Statement_List "\n" Statement
Statement:
NAME=Expression
IFOperator
FOROperator
FUNCDescr
CONTINUE
//пропускает выполнение операторов до конца текущего Statement_List
BREAK
//начинает выполнение оператора следующего за текущим Statement_List
RETURN //выход из текущего управляющего блока - из тела функции или из всей программы
IFOperator:
"IF" Condition "\n"
Statement_List
"ELSE" "\n"
Statement_List
"END IF"
Condition
Condition "OR" Condition
Condition "AND" Condition
"("Condition") "
PrimaryCondition
PrimaryCondition
Expression "==" Expression
Expression "=" Expression
//c той же семантикой, что и "=="
Expression ">=" Expression
Expression "<=" Expression
Expression ">"Expression
Expression "<"Expression
Expression "!=" Expression
Expression "<>" Expression //c той же семантикой, что и "!="
FOROperator:
"FOR" NAME "IN" ArgList "\n"
Statement_List
"END FOR"
Руководство пользователя QUIK
96
Раздел 8: Алгоритмический язык QPILE
"FOR" NAME "FROM" Expression "TO" Expression "\n"
Statement_List
"END FOR"
ArgList
NAME
// в этом случае переменная с именем NAME должна содержать значение вида
ArgList1
ArgList1
ArgList1:
Expression
ArgList "," Expression
FUNCDescr
"FUNC" NAME "(" FargList ")" "\n"
Statement_List
"END FUNC"
FArgList
NAME
FArgList "," NAME
Expression:
Expression "+" Term
Expression "-" Term
Expression "&" Term //конкатенация строк
Term
Term:
Term "/" Primary
Term "*" Primary
Primary
Primary:
NUMBER
STRINGNAME
//значение переменной с именем NAME
"-" Primary
"(" Expression ")"
FunctionCall
FunctionCall
FNAME "(" ArgList1 ")"
NUMBER:
Digits
Digits "." DigitsSTRING:
//определяется стандартно
Руководство пользователя QUIK
97
Раздел 8: Алгоритмический язык QPILE
NAME:
//определяется стандартно
Ключевые слова = {IF, ELSE, FOR, IN, TO, FROM, AND, OR, RESULT, FUNC, END FUNC, END
FOR, END IF, CONTINUE, BREAK, RETURN}
ПРИЛОЖЕНИЕ 2. Рекомендации к составлению
программ на QPILE
1.
Функции для работы со структурными переменными, такие как «SET_VALUE»,
«ADD_COLLECTION_ITEM», «REMOVE_COLLECTION_ITEM» возвращают измененное
значение коллекции или массива. Поскольку все параметры передаются в функцию
по значению, то использование данных функций в качестве процедур приводит к потере
сделанных в них изменений.
Например:
clientscol=INSERT_COLLECTION_ITEM(clientscol,0,initmap)
‘правильно
INSERT_COLLECTION_ITEM(clientscol,0,initmap)
‘неправильно, в этом случае после вызова функции clientscol будет содержать то же
значение, что и до ее вызова
2.
Возвращаемые функциями значения могут оказаться строковыми, хотя и представлять
вещественное число. В этих случаях нужно использовать сложение с «0» для
преобразования результата к численному значению. Например, для корректной
инициализации переменной в операторе присваивания вида «v=GET_VALUE()» стоит
написать «v=0+GET_VALUE()». В последнем случае гарантированно достигается
вещественное значение переменной.
Аналогичным образом, для приведения вещественного значения к строковому может
использоваться операция склейки с пустой строкой «v=""&GET_VALUE()».
3.
Произвольные пользовательские типы могут быть сформированы путем комбинации
коллекций и ассоциативных массивов. Например, если нужен список структур типа:
c=strruct{
openbal:double
closebal:double
clientcode:string}
Руководство пользователя QUIK
98
Раздел 8: Алгоритмический язык QPILE
то его можно представить как коллекцию ассоциативных массивов, в каждом из которых
будет три ключа - «OPENBAL», «CLOSEBAL», «CLIENTCODE». Код для инициализации
такой структуры:
initmap=CREATE_MAP()
initmap=SET_VALUE(initmap,"OPENBAL",0)
initmap=SET_VALUE(initmap,"CLOSEBAL",0)
initmap=SET_VALUE(initmap,"CLIENTCODE","")
clientscol=CREATE_COLLECTION()
FOR i FROM 0 TO 10
clientscol=INSERT_COLLECTION_ITEM(clientscol,0,initmap)
END FOR
После чего, для доступа к полю «OPENBAL» 5-го клиента надо написать:
openbal = GET_VALUE(GET_COLLECTION_ITEM(clientscol,5),"OPENBAL")
Если вместо коллекции таких записей использовать массив с ключом, представляющим
из себя код клиента, то можно будет обращаться к значениям структуры клиента без
указания его индекса в массиве, а зная только клиентский код:
clientsmap=CREATE_MAP()
FOR i FROM 0 TO 10
clientsmap=SET_VALUE(clientsmap,"Q" & i, initmap)
END FOR
и последующее обращение к значению поля «OPENBAL» для клиента с кодом «Q5»:
openbal = GET_VALUE(GET_VALUE(clientsmap,"Q5"),"OPENBAL")
4. «MODIFY_ITEM» не выполняет действий, если указанной строки в таблице «OWN»
еще нет. Поэтому надо предварительно проверять ее наличие.
При построении пользовательской таблицы на каждой итерации, изменяющей в себе
строку полезным будет код:
new_global("first_time_flag",0)
if first_time_flag==0
add_item(1, SAMPLE)
first_time_flag=1
else
Руководство пользователя QUIK
99
Раздел 8: Алгоритмический язык QPILE
modify_item(1, SAMPLE)
end if
При первом запуске создается строка номер 1 со значениями полей из переменной
«SAMPLE» насчитанной ранее, а на последующих итерациях строка номер 1
модифицируется.
Руководство пользователя QUIK
100
Раздел 8: Алгоритмический язык QPILE
Раздел 9. Дополнительные возможности
9.1 Неторговые поручения
1
9.2 Отчеты
57
9.3 Инвестиционные идеи
70
Раздел описывает возможности системы QUIK по проведению неторговых операций
(по приему и обработке поручений на ввод/вывод и перевод средств клиента), запросу
отчетов по проведенным операциям на сервере брокера, а также работы с инвестиционными
идеями.
9.1 Неторговые поручения
Введение
Неторговые поручения представляют собой поручения брокеру на перемещение средств
клиента между счетами - ввод средств в торговую систему, вывод обратно на счет клиента,
перевод между разными счетами либо торговыми системами.
Применение неторговых поручений является дополнительной возможностью системы QUIK,
которая появляется при наличии на сервере специального Модуля неторговых поручений.
Для использования неторговых поручений на Рабочем месте клиента необходимо, чтобы:
данному пользователю был открыт доступ к неторговым поручениям на сервере QUIK;
в папке с программами QUIK находился файл INSTRCLIENT.DLL;
в список принимаемых классов был включен класс «Неторговые поручения».
При соблюдении этих условий в меню программы появится пункт «Неторговые поручения».
Для возможности подтверждения неторговых поручений и принятых файлов (отчетов)
одноразовыми паролями необходимо в программе QUIK Administrator (вкладка «Общие
права», поле «для SMS» на форме редактирования пользователя) указать номер телефона
(один или несколько) для получения одноразовых паролей.
Принцип работы
1. Работа с неторговыми поручениями напоминает работу с заявками. Для того чтобы
видеть список отправленных поручений и их текущее состояние, нужно создать «Таблицу
поручений», используя пункт меню программы Расширения/Неторговые
поручения/Таблица поручений. В этой таблице отображаются поручения всех типов
и состояние их обработки специалистами брокера. Двойным нажатием левой кнопки
мыши на строке можно открыть поручение и посмотреть его параметры.
Руководство пользователя QUIK
1
Раздел 9: Дополнительные возможности
2.
Новые поручения создаются выбором соответствующего вида поручения из пункта меню
Расширения/Неторговые поручения/[вид поручения]. На экране появится форма
с полями для заполнения. Для минимизации возможных ошибок при заполнении,
реквизиты клиента выбираются из справочника, заполняемого на сервере брокера.
3.
Заполненное поручение отправляется на сервер брокерской системы QUIK, где
последовательно проходит проверку и подтверждение сотрудниками брокера. После того,
как все необходимые подтверждения получены, происходит исполнение поручения -
изменяются позиции по указанному инструменту (или денежным средствам).
4.
При подтверждении поручения сотрудниками брокера могут быть начислены
дополнительные платежи за исполнение поручения, указываемые в стандартных полях:
- «Налог» - сумма налогов и сборов, взимаемых при исполнении поручения,
указывается сотрудником брокера.
- «Комиссия депозитария» - сумма платежа, удерживаемая в пользу депозитария.
Если с клиента взимается задолженность по депозитарным сборам, то она
указывается брокером в этом поле.
- «Комиссия за выдачу наличных» - сумма платежа, удерживаемая при расчетах
через кассу.
5.
Поручение может быть отклонено одним из специалистов брокера. В этом случае оно
получает статус «Снято», который отображается в «Таблице поручений». Чтобы увидеть
причину отклонения, указанную данным специалистом, нужно выбрать поручение
в Таблице и открыть его двойным нажатием левой кнопки мыши. В поле «Комментарий
отмены» будет указано основание для отклонения.
6.
Отправленное поручение, имеющее статус «Активно», пользователь может отменить. Для
этого нужно сформировать запрос на отмену поручения, выбрав из контекстного меню
на поручении пункт «Запрос на отмену поручения» и ввести текст-пояснение
в открывшемся окне. Этот запрос так же проходит подтверждение сотрудниками брокера.
7.
Поручение может требовать подтверждения одноразовым паролем. Отправка SMS-
сообщений с одноразовым паролем производится на номера для SMS, заданные
в программе QUIK Administrator.
Виды поручений
Поддерживаются следующие виды поручений, доступные через пункт меню
Расширения/Неторговые поручения/[вид поручения]:
1. «Вывод ДС» - поручение на вывод денежных средств с брокерского счета на расчетный
счет клиента в банке, либо на получение их в наличной форме.
2. «Вывод ЦБ» - поручение на вывод ценных бумаг из депозитария торговой системы (НРД,
ДКК) в реестр эмитента либо на другой счет внутри данного депозитария.
3. «Ввод ДС» - поручение на перевод денежных средств, зачисленных клиентом
на брокерский счет, в торговую систему биржи.
4. «Ввод ЦБ» - поручение на перевод ценных бумаг в депозитарий торговой системы (НРД,
ДКК) из реестра или другого счета в этом депозитарии.
5. «Перевод ДС» - поручение на перевод денежных средств между счетами и торговыми
системами.
Руководство пользователя QUIK
2
Раздел 9: Дополнительные возможности
6. «Перевод ЦБ» - поручение на перевод ценных бумаг между счетами.
7. «Конвертация валют» - поручение на конвертацию одной валюты, хранящейся на счете
клиента, в другую.
8. «Свободная форма» - поручение любого вида, представленное в виде текстового
описания.
9. «Конвертация ЦБ» - поручения на конвертацию одной ценной бумаги, хранящейся
на счете клиента, в другую.
10.«Размещение ЦБ» - поручение на участие в размещении ценных бумаг.
Настройка
меню Расширения / Неторговые поручения / Настройки
«Неполное исполнение поручений» - разрешить исполнение поручений на неполную
сумму, если остатка средств на счете клиента недостаточно для покрытия расходов
по сделке.
«Запрос при подписи поручения» - запрашивать подтверждение операции при
подписании поручения.
«Запрос при снятии поручения» - запрашивать подтверждение операции при снятии
поручения.
«Модальные формы поручений» - включить режим модальных форм поручений, при
котором невозможно открыть новую форму подачи или подписи поручения, пока не
закрыта предыдущая форма.
Руководство пользователя QUIK
3
Раздел 9: Дополнительные возможности

 

 

 

 

 

 

 

содержание      ..     7      8      9      10     ..