Параметр | Тип | Описание |
---|---|---|
trade | TABLE | Таблица с параметрами сделки |
Параметр | Тип | Описание |
---|---|---|
trade_num | NUMBER | Номер сделки в торговой системе |
order_num | NUMBER | Номер заявки в торговой системе |
brokerref | STRING | Комментарий, обычно: <код клиента>/<номер поручения> |
userid | STRING | Идентификатор трейдера |
firmid | STRING | Идентификатор дилера |
canceled_uid | NUMBER | Идентификатор пользователя, отказавшегося от сделки |
account | STRING | Торговый счет |
price | NUMBER | Цена |
qty | NUMBER | Количество бумаг в последней сделке в лотах |
value | NUMBER | Объем в денежных средствах |
accruedint | NUMBER | Накопленный купонный доход |
yield | NUMBER | Доходность |
settlecode | STRING | Код расчетов |
cpfirmid | STRING | Код фирмы партнера |
flags | NUMBER | Набор битовых флагов |
price2 | NUMBER | Цена выкупа |
reporate | NUMBER | Ставка РЕПО (%) |
client_code | STRING | Код клиента |
accrued2 | NUMBER | Доход (%) на дату выкупа |
repoterm | NUMBER | Срок РЕПО, в календарных днях |
repovalue | NUMBER | Сумма РЕПО |
repo2value | NUMBER | Объем выкупа РЕПО |
start_discount | NUMBER | Начальный дисконт (%) |
lower_discount | NUMBER | Нижний дисконт (%) |
upper_discount | NUMBER | Верхний дисконт (%) |
block_securities | NUMBER | Блокировка обеспечения («Да»/«Нет») |
clearing_comission | NUMBER | Клиринговая комиссия биржи |
exchange_comission | NUMBER | Комиссия Фондовой биржи |
tech_center_comission | NUMBER | Комиссия Технического центра |
settle_date | NUMBER | Дата расчетов |
settle_currency | STRING | Валюта расчетов |
trade_currency | STRING | Валюта |
exchange_code | STRING | Код биржи в торговой системе |
station_id | STRING | Идентификатор рабочей станции |
sec_code | STRING | Код бумаги заявки |
class_code | STRING | Код класса |
datetime | TABLE | Дата и время |
bank_acc_id | STRING | Идентификатор расчетного счета/кода в клиринговой организации |
broker_comission | NUMBER | Комиссия брокера. Отображается с точностью до 2 двух знаков. Поле зарезервировано для будущего использования |
linked_trade | NUMBER | Номер витринной сделки в Торговой Системе для сделок РЕПО с ЦК и SWAP |
period | NUMBER | Период торговой сессии. Возможные значения: «0» – Открытие; «1» – Нормальный; «2» – Закрытие |
trans_id | NUMBER | Идентификатор транзакции |
kind | NUMBER | Тип сделки. Возможные значения: «1» – Обычная; «2» – Адресная; «3» – Первичное размещение; «4» – Перевод денег/бумаг; «5» – Адресная сделка первой части РЕПО; «6» – Расчетная по операции своп; «7» – Расчетная по внебиржевой операции своп; «8» – Расчетная сделка бивалютной корзины; «9» – Расчетная внебиржевая сделка бивалютной корзины; «10» – Сделка по операции РЕПО с ЦК; «11» – Первая часть сделки по операции РЕПО с ЦК; «12» – Вторая часть сделки по операции РЕПО с ЦК; «13» – Адресная сделка по операции РЕПО с ЦК; «14» – Первая часть адресной сделки по операции РЕПО с ЦК; «15» – Вторая часть адресной сделки по операции РЕПО с ЦК; «16» – Техническая сделка по возврату активов РЕПО с ЦК; «17» – Сделка по спреду между фьючерсами разных сроков на один актив; «18» – Техническая сделка первой части от спреда между фьючерсами; «19» – Техническая сделка второй части от спреда между фьючерсами; «20» – Адресная сделка первой части РЕПО с корзиной; «21» – Адресная сделка второй части РЕПО с корзиной; «22» – Перенос позиций срочного рынка |
clearing_bank_accid | STRING | Идентификатор счета в НКЦ (расчетный код) |
canceled_datetime | TABLE | Дата и время снятия сделки |
clearing_firmid | STRING | Идентификатор фирмы - участника клиринга |
system_ref | STRING | Дополнительная информация по сделке, передаваемая торговой системой |
uid | NUMBER | Идентификатор пользователя на сервере QUIK |
Параметр | Тип | Описание |
---|---|---|
бит 0 (0x1) | - | Заявка активна, иначе – не активна |
бит 1 (0x2) | - | Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то заявка исполнена |
бит 2 (0x4) | - | Заявка на продажу, иначе – на покупку. Данный флаг для сделок и сделок для исполнения определяет направление сделки (BUY/SELL) |
бит 3 (0x8) | - | Заявка лимитированная, иначе – рыночная |
бит 4 (0x10) | - | Разрешить / запретить сделки по разным ценам |
бит 5 (0x20) | - | Исполнить заявку немедленно или снять (FILL OR KILL) |
бит 6 (0x40) | - | Заявка маркет-мейкера. Для адресных заявок – заявка отправлена контрагенту |
бит 7 (0x80) | - | Для адресных заявок – заявка получена от контрагента |
бит 8 (0x100) | - | Снять остаток |
бит 9 (0x200) | - | Айсберг-заявка |
Параметр | Тип | Описание |
---|---|---|
mcs | NUMBER | Микросекунды |
ms | NUMBER | Миллисекунды |
sec | NUMBER | Секунды |
min | NUMBER | Минуты |
hour | NUMBER | Часы |
day | NUMBER | День |
week_day | NUMBER | Номер дня недели |
month | NUMBER | Месяц |
year | NUMBER | Год |
-- Пример сохраняет в файл все трейды по всем инструментам. При желании можно добавить условия и сохранять, -- например трейды только определенной бумаги или класса. -- Функция возвращает true, если бит с номером index флагов flags установлен в 1 function bit_set( flags, index ) local n=1; n=bit.lshift(1, index); if bit.band(flags, n) ~=0 then return true; else return false; end; end function OnTrade(trade) -- Если номер последнего трейда не не равен номеру текущего if last_trade_num < trade.trade_num then -- Запомним номер последнего трейда last_trade_num = trade.trade_num; -- Если заявка не активна и исполнена if bit_set(trade.flags, 0) == false and bit_set(trade.flags, 1) == false then -- Открываем файл для записи base_file = io.open(getScriptPath() .. "\\" .. os.date("trades.dat"), "a"); -- В строковую переменную собираем информацию о трейде local write_str = trade.trade_num .. ";" .. trade.order_num .. ";" .. trade.brokerref .. ";" .. trade.price .. ";" .. trade.qty .. ";" .. trade.value .. ";" .. trade.sec_code .. ";" .. trade.class_code .. ";" .. tostring(trade.datetime.year) .. "." .. tostring(trade.datetime.month) .. "." .. tostring(trade.datetime.day) .. " " .. tostring(trade.datetime.hour) .. ":" .. tostring(trade.datetime.min) .. ":" .. tostring(trade.datetime.sec) .. ";" .. tostring(bit_set(trade.flags, 1)) .. ";" .. "\n"; -- Пишем строку в файл base_file:write(write_str); -- Если файл существует, тогда закроем его if base_file ~= nil then base_file:close(); end; end; end; end