uzluga.ru
добавить свой файл
Рынок срочных контрактов РТС

(FORTS)


Подключение внешних систем (Шлюз)

Руководство пользователя

Версия 1.07


2002


Содержание


Общие сведения


Описанный в данном документе шлюз в торговую систему FORTS находится в стадии постоянной модификации. Хранимые процедуры, порядок их вызова, входные и выходные параметры, а также структуры данных могут измениться. Работа компонентов шлюза может отличаться от варианта, описанного в документе.


Шлюз в торговую систему FORTS реализуется на базе компьютера с двумя сетевыми интерфейсами, один из которых должен быть подключен в корпоративную сеть FORTS, а второй - к связному компьютеру в сети пользователя.


В качестве сетевого протокола для связи с корпоративной сетью FORTS используется TCP/IP, а для связи между шлюзом и компьютером пользователя - IPX/SPX, что обеспечивает минимально необходимую безопасность за счет развязки по протоколам.


Таким образом, конфигурация технических средств на стыке корпоративной сети FORTS и сети участника торгов, использующего шлюз, показана на рис. 1.




Рис. 1

Где,

1 – шлюз,

2 – корпоративная сеть FORTS (сетевой протокол TCP/IP),

3 – сеть фирмы - участника торгов (владельца шлюза) с любыми сетевыми протоколами,

4 – связь между шлюзом и внутренней сетью фирмы (протокол IPX/SPX),

5 – связной компьютер фирмы-участника.


На шлюзе установлен мини-SQL Server на основе продукта Microsoft Data Engine 1.0 (MSDE), который содержит необходимые процедуры для получения данных из торговой системы FORTS и постановки/удаления заявок от имени пользователей.

Шлюз может работать в качестве средства связи с торговой системой FORTS для одного аккредитованного на рынке участника, то есть программное обеспечение шлюза содержит уникальные идентификаторы и привязку к своему владельцу, формируемые при инсталляции продукта.


Требования к компьютеру

Для использования в качестве шлюза компьютер должен иметь следующие параметры:

  • Процессор не хуже Pentium 300

  • Оперативная память не менее 64 Мб

  • Свободное место на жестком диске для установки MSDE (около 55 Мб) и специального ПО (5 Мб)

  • Две сетевые карты.



Канал связи с FORTS

Для обеспечения надежной и устойчивой связи с торговой системой FORTS канал связи с корпоративной сетью FORTS должен иметь пропускную способность не хуже 16 Кбит/сек.


Операционная система

В качестве операционной системы на шлюзе должна использоваться ОС MS Windows NT 4.0 Server или MS Windows NT 4.0 Workstation с Service Pack 5.


Специальное программное обеспечение

Microsoft Data Engine 1.0 (MSDE) в качестве основы для программ взаимодействия с торговой системой FORTS.


Процедуры для взаимодействия с рынком фьючерсов


Для работы с рынком фьючерсов база шлюза содержит следующие процедуры:


    1. FutGetSessionTime - получение времени торговой сессии или состояние сессии по торгуемым инструментам.


Параметры:

@Regime




int

0 – выдавать информацию по сессии;

1 – выдавать информацию о состоянии сессии по торгуемым инструментам. Если не указан, то 0.

@LastModifyTime

out

varchar (21)

Входной (дать список со временем, больше или равным этого). Выходной (время последнего изменения). Используется в случае @Regime = 1.

@LastModifyId

out

int

Идентификатор. Входной (дать список, в котором время больше или равно, чем значение первого параметра, а идентификатор больше, чем значение второго параметра). Выходной (значение идентификатора для последней полученной записи со временем, возвращенном в первом параметре). Используется в случае @Regime = 1.

Код возврата: количество строк в результате. Тип int.


Примечание:

а) вызов процедуры без параметров (exec FutGetSessionTime) или с параметром @Regime = 0 (exec FutGetSessionTime 0) эквивалентны.

б) вызов процедуры с параметром @Regime = 1, требует наличия остальных параметров.


Результирующее множество (значение входного параметра @Regime = 0):

sess_id

int

номер сессии

sost

int

состояние сессии

name

varchar (40)

наименование сессии

begin

varchar (21)

время начала

end

varchar (21)

время окончания

current

varchar (21)

текущее время сервера


Примечания:

а) sess_id – ключевое поле

б) формат времени в этой и в большинстве остальных процедур (при поле varchar (21)):

yyyymmdd hh:mm:ss:mls

в) состояние сессии может принимать значения:

0 - сессия назначена

1 - сессия идет

2 - приостановка торгов по всем инструментам

3 - сессия принудительно завершена

4 - сессия завершена по времени


Результирующее множество (значение входного параметра @Regime = 1):

sess_id

int

номер сессии

isin

varchar (25)

уникальный код инструмента

sost

int

состояние сессии по инструменту


Примечания:

а) sess_id, isin – ключевые поля

б) состояние сессии по инструменту может принимать значения:

0 - сессия по этому инструменту назначена

1 - сессия по этому инструменту идет

2 - приостановка торгов по этому инструменту

3 - сессия по этому инструменту принудительно завершена

4 - сессия по этому инструменту завершена по времени


    1. FutGetSessionVcb - получение списка торгуемых контрактов


Параметры: нет


Код возврата: количество строк в результате int


Результирующее множество:

kod_vcb - код контракта varchar (25)

name - наименование varchar (75)

exec_type - тип исполнения varchar (14)

valuta - валюта платежа varchar (50)

exch_pay - биржевой сбор numeric (16,2)

exch_pay_scalped - признак скальпирования биржевого сбора int

clear_pay - клиринговый сбор numeric (16,2)

clear_pay_scalped - признак скальпирования клирингового сбора int

komis_sell - комиссия с продавца numeric (16,2)

komis_buy - комиссия с покупателя numeric (16,2)

trd_scheme - форма торгов varchar (21)


Примечания.

а) kod_vcb – ключевое поле

б) Признаки скальпирования сборов: 0 - не стоит признак, 1 - стоит.

в) Комиссии – пока зарезервированные поля и они не используются.


    1. FutGetSessionIsin - получение списка торгуемых инструментов


Параметры: нет


Код возврата: количество строк в результате int


Результирующее множество:

sess_id - номер сессии int

position - порядковый N на экране торговой системы int

isin - уникальный код инструмента varchar (25)

short_isin - описатель инструмента varchar (25)

name - наименование инструмента varchar (75)

inst_term - смещение от спота int

kod_vcb - код контракта varchar (25)

is_limited - признак наличия лимитов в торгах int

limit_up - верхний лимит цены numeric (16,5)

limit_down - нижний лимит цены numeric (16,5)

old_kotir - котировка предыдущей сессии numeric (16,5)

buy_deposit - ГО покупателя numeric (16,2)

sell_deposit - ГО продавца numeric (16,2)

roundto - к-во знаков после запятой в цене int

min_step - минимальный шаг цены numeric (16,5)

lot_volume - к-во единиц базового актива в инструменте int

step_price - стоимость шага цены numeric (16,5)

d_pg - дата окончания обращения инструмента varchar (8)


Примечания.

а) isin – ключевое поле, уникальное для всех сессий

б) Лимиты используются, если is_limited = 1 и не используются, если is_limited = 0. Значения лимитов задаются относительно котировки (old_kotir).

Доступный диапазон цен: от (old_kotir - limit_down) до (old_kotir + limit_up).

в) d_pg - дата в виде yyyymmdd


    1. FutGetPositionIsin - получение открытых позиций по текущим инструментам


Параметры: нет

Код возврата: количество строк в результате int

Результирующее множество:

isin - уникальный код инструмента varchar (25)

kod - последние 3 символа кода клиента varchar (3)

oldpos - кол-во позиций на начало сессии int

sells - текущее кол-во позиций на продажу (за сессию) int

buys - текущее кол-во позиций на покупку (за сессию) int

pos - текущее кол-во позиций (на конец сессии) int


Примечания:

а) isin + kod – ключевые поля.

б) выдаются только активные позиции (отличные от 0 или те, по которым сегодня осуществлялись операции).


    1. FutGetMoney - получение состояния денежных средств


Параметры: нет

Код возврата: количество строк в результате int

Результирующее множество:

share - код счета (0 – рубли, 1 - залоги) int

begin - на начало сессии numeric (16,2)

current - текущие numeric (16,2)

rezerv - зарезервировано в позициях numeric (16,2)

orders - зарезервировано в заявках numeric (16,2)

var_marga - отрицательная вариационная маржа numeric (16,2)

free - свободные numeric (16,2)



    1. FutGetDeal - получение списка сделок по текущей сессии


Параметры:

@LastDealTime

out

varchar (21)

Входной (дать список со временем, больше или равным этого). Выходной (время последнего изменения)

@LastModifyId

out

int

Идентификатор. Входной (дать список, в котором время больше или равно, чем значение первого параметра, а идентификатор больше, чем значение второго параметра). Выходной (значение идентификатора для последней полученной записи со временем, возвращенном в первом параметре).


Код возврата: количество строк в результате


Результирующее множество:

id_deal - номер сделки int

isin - уникальный код инструмента varchar (25)

price - цена numeric (16,2)

amount - объем, кол-во единиц инструмента int

kod_sell - код продавца varchar (3)

id_ord_sell - номер заявки продавца int

kod_buy - код varchar (3)

id_ord_buy - номер заявки покупателя int

time - время заключения сделки varchar (8)


Примечания:

а) id_deal - ключевое поле, по крайней мере, в данной сессии

б) коды продавца и покупателя заполняются только для своих сделок.

в) time - время в виде hh:mm:ss


    1. FutGetCommon - получение общей информации по текущей сессии


Параметры:

@LastModifyTime

out

varchar (21)

Входной (дать список со временем, больше или равным этого). Выходной (время последнего изменения)

@LastModifyId

out

int

Идентификатор. Входной (дать список, в котором время больше или равно, чем значение первого параметра, а идентификатор больше, чем значение второго параметра). Выходной (значение идентификатора для последней полученной записи со временем, возвращенном в первом параметре).


Код возврата: количество строк в результате int


Результирующее множество:

isin - уникальный код инструмента varchar (25)

best_sell - лучшая заявка на продажу numeric (16,5)

amount_sell - объем продажи по лучшей цене int

best_buy - лучшая заявка на покупку numeric (16,5)

amount_buy - объем покупки по лучшей цене int

price - цена последней сделки numeric (16,5)

trend - изменение цены numeric (16,5)

amount - объем последней сделки int

deal_time - время последней сделки varchar (8)

min_price - минимальная цена за сессию numeric (16,5)

max_price - максимальная цена за сессию numeric (16,5)

avr_price - средневзвешенная цена за сессию numeric (16,5)

old_kotir - предыдущая котировка numeric (16,5)

deal_count - число сделок за сессию int

contr_count - число заключенных контрактов int

capital - оборот в рублях numeric (16,2)

pos - кол-во открытых позиций int

mod_time - время изменения записи varchar (8)


Примечания.

а) isin – ключевое поле

б) mod_time - время в виде hh:mm:ss