·  Count – количество элементов в списке

·  Item – доступ по индексу к элементу в списке, элемент описан интерфейсом IOleRisk.

3.19.  Интерфейс IOleClientGO

IOleClientGO интерфейс описывает ГО Клиента, свойства и методы его исполнения.

Для клиентской и полной версий библиотеки этот интерфейс Read Only.

Свойство

Описание

repl_id

Идентификатор записи

repl_rev

Служебный идентификатор записи.

repl_act

Служебный идентификатор записи.

ClientID

идентификатор записи о клиенте (содержит значение поля repl_id таблицы Part для клиента к которому привязана данная запись с обеспечением)

Instr

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

GO

Сумма обеспечения

3.20.  Интерфейс IOleClientGOCol

IOleOptionCol интерфейс описывает список интерфейсов IOleOption. Это список Опционов. В интерфейсе IOleOptionCol два метода:

·  Count – количество элементов в списке

·  Item – доступ по индексу к элементу в списке, элемент описан интерфейсом IOleOption.

3.21.  Интерфейс IOleGroupGO

IOleGroupGO интерфейс описывает ГО группы клиентов (в настоящее время под группой понимается брокерская фирма FORTS), свойства и методы его исполнения.

В клиетнской версии библиотеки интерфейс НЕ реализован.

В полной версии библиотеки интерфейс Read Only.

Свойство

Описание

repl_id

Идентификатор записи

repl_rev

Служебный идентификатор записи.

repl_act

Служебный идентификатор записи.

PartID

идентификатор записи о группе (содержит значение поля repl_id таблицы Part для группы клиентов к которой привязана данная запись с обеспечением)

Instr

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

GO

Сумма обеспечения

3.22.  Интерфейс IOleGroupGOCol

IOleOptionCol интерфейс описывает список интерфейсов IOleOption. Это список Опционов. В интерфейсе IOleOptionCol два метода:

НЕ нашли? Не то? Что вы ищете?

·  Count – количество элементов в списке

·  Item – доступ по индексу к элементу в списке, элемент описан интерфейсом IOleOption.

3.23.  Интерфейс IOlePart

IOlePart интерфейс описывает Участника, свойства и методы его исполнения.

Доступ на запись:

Свойство

Описание

Client

Full

repl_id

Идентификатор записи

repl_rev

Служебный идентификатор записи.

repl_act

Служебный идентификатор записи.

Firm

торговый код расчетной фирмы

Group

торговый код группы

Code

торговый код

Kod

код клиента в системе ФОРТС 1 (для обеспечения взаимодействия систем)

Name

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

Address

адрес

Phone

телефон

Email

E-mail

Account

счет в расчетной организации

RtsID

код в РТС

Inn

ИНН

3.24.  Интерфейс IOlePartCol

IOlePartCol интерфейс описывает список интерфейсов IOlePart. Это список участников. В интерфейсе IOlePartCol два метода:

·  Count – количество элементов в списке;

·  Item – доступ по индексу к элементу в списке, элемент описан интерфейсом IOlePart.

3.25.  Интерфейс IOleClientAsset

IOleClientAsset интерфейс описывает Деньги Клиента, свойства и методы его исполнения.

В этой версии библиотеки интерфейс НЕ реализован.

3.26.  Интерфейс IOleGroupAsset

IOleGroupAsset интерфейс описывает Деньги Группы, свойства и методы его исполнения.

В этой версии библиотеки интерфейс НЕ реализован.

3.27.  Интерфейс IOleFirmAsset

IOleFirmAsset интерфейс описывает Деньги Фирмы, свойства и методы его исполнения.

В этой версии библиотеки интерфейс НЕ реализован.

3.28.  Интерфейс IOlePosition

IOlePosition интерфейс описывает Позицию, свойства и методы его исполнения.

Доступ на запись:

Свойство

Описание

Client

Full

repl_id

Идентификатор записи

repl_rev

Служебный идентификатор записи.

repl_act

Служебный идентификатор записи.

Kod

код клиента в системе ФОРТС 1 (для обеспечения взаимодействия систем)

ClientID

идентификатор клиента

GroupID

идентификатор группы

FirmID

идентификатор расчетной фирмы

Instr

идентификатор инструмента

BCID

идентификатор базового контракта

FID

идентификатор фьючерса

VFID

идентификатор виртуального фьючерса

Quantity

Кол-во купленных контрактов минус кол-во проданных контрактов

BuyingOrdNum

кол-во контрактов в заявках на покупку

SellingOrdNum

кол-во контрактов в заявках на продажу

WAPrice

(weighted average price) средневзвешенная цена (используется для фьючерсной позиции)

3.29.  Интерфейс IOlePositionCol

IOlePositionCol интерфейс описывает список интерфейсов IOlePosition. Это список позиций. В интерфейсе IOlePositionCol два метода:

·  Count – количество элементов в списке;

·  Item – доступ по индексу к элементу в списке, элемент описан интерфейсом IOlePosition.

4.  Использование библиотеки

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

Даны примеры кода на языке Visual Basic.

Для упрощения примеров, обработка ошибок не приведена.

4.1.  Инициализация необходимых объектов

Необходимо создать новый объект СOleForts, получить список инструментов и вызвать функцию предварительного расчета параметров.

Dim app As New COleForts

app. Init inifile:= ".\go. ini", UserName:=”vasja”, Password:=”pass-word” ‘инициализируем

app. GetInstrumentParameters ‘запрашиваем инструменты

app. BeginTransaction

app. PreCalcBCAll ‘предварительно рассчитываем предвычисляемые параметры

mit

Обратите внимание, что функция Init устанавливает соединение с сервисом FORTSGoRouter, который должен быть установлен и запущен; а функция GetInstrumentParameters посылает запрос по сети на сервер расчета обеспечения, т. е. сервер должен быть доступен в момент вызова функции.

Функция PreCalcBCAll должна вызываться внутри транзакции.

4.2.  Вставка участников, позиций, заявок

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

У каждого участника есть идентификационные поля:

-  код фирмы (firm)

-  код группы клиентов - опционально (group)

-  код участника (code)

-  код в системе FORTS (Kod)

Фирма вводится как участник, у которого код участника и код фирмы совпадают. Группа клиентов – по аналогии – код группы и код участника совпадают.

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

Dim firm As New COlePart, cl As New ColePart

firm. firm = “9999”

firm. code = “9999”

firm. kod = “9999”

app. InsertPart firm

cl. firm = “9999”

cl. code = “9999001”

cl. kod = “9999001”

app. InsertPart cl

Вставка заявок и позиций не отличается от участников. Важно отметить, что в позиции присутствуют поля BuyingOrdNum и SellingOrdNum, в которых содержится инфрмация о суммарном количестве инструментов в заявках на покупку по этой позиции и в заявках на продажу по этой позиции. Поддержание правильности значений этих полей возлагается на вызывающую сторону.

Dim Order as COleOrder

Dim Pos as COlePosition

Order. client = “9999001”

Order. firm = firm. Code

Order. Instr = “EERU-6.07”

Order. Quantity = 5

Order. Direction = 1

Order. Price = “34000”

Order. OrdNum = 1

app. InsertOrder Order

‘ в текущей версии библиотеки необходимо заполнять и поле Kod и поле ClientID

Pos. Kod = “9999001”

Pos. ClientID_AsString = app. GetClientId_AsString(Pos. Kod)

Pos. Instr = “EERU-6.07”

Pos. Quantity = 0

Pos. BuyingOrdNum = 5

app. InsertPosition Pos

4.3.  Расчет обеспечения, получение результатов

Для собственно, расчета обеспечения существует две функции.

CalcBC пересчитывает обеспечение по всем позициям и заявкам по указанному базовому контракту.

CalcGO позволяет «следовать за торгами» и пересчитывать обеспечение по каждой торговой транзакции. Эта функция реализована так, чтобы выполняться минимальное время.

Для работы обеих функций важно правильно организовать транзакции в библиотеке.

Функции CalcBC должны вызываться строго в транзакции:

Dim bc_list As COleBaseContractCol

Set bc_list = app. GetBaseContracts

For i = 0 To bc_list. get_Count - 1

app. BeginTrans

app. CalcBC bc_list. get_Item(i).Code

mit

Next I

Для вызова CalcGO требуется, чтобы все изменения данных по заявкам и сделкам проходили в одной транзакции с вызовом CalcGO. После вызова CalcGO можно получить обеспечение по клиенту, для которого производился расчет и фирмы, к которой он привязан:

Dim Order as COleOrder

Dim Pos as COlePosition

‘ добавляем заявку и считаем ГО

app. BeginTransaction

Order. client = “9999001”

Order. firm = firm. Code

Order. Instr = “EERU-6.07”

Order. Quantity = 5

Order. Direction = 1

Order. Price = “34000”

app. InsertOrder Order

‘ в текущей версии библиотеки необходимо заполнять и поле Kod и поле ClientID

Pos. Kod = “9999001”

Pos. ClientID_AsString = app. GetClientId_AsString(Pos. Kod)

Pos. Instr = “EERU-6.07”

Pos. Quantity = 0

Pos. BuyingOrdNum = 5

app. InsertPosition Pos

app. CalcGO “9999001”, “EERU-6.07”

print app. GetClientGO

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

‘выдать го фирмы, по клиенту которой пересчитывалось ГО,

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

print app. GetFirmGO

‘Выдать риски участника торгов

Dim pointCol As COlePointCol

Dim point As COlePoint

Dim riskCol As COleRiskCol

Dim risk As COleRisk

Set pointCol = app. GetPoints(“FirmCode”, “ClientCode”, “Instrument code, e. g. EERU-6.07”)

For p = 0 To ptcol. get_Count - 1

Set point = ptcol. get_Item(p)

Set riskCol = app. GetRisks_AsString(point. repl_id_AsString, 1)

print pt. LoOverRisk

print pt. LEdgeRisk

For r = 0 To riskCol. get_Count - 1

Set risk = riskCol. get_Item(r)

beg = 1

en = InStr(beg, risk. risk, ";")

If en = 0 Then en = Len(r. risk) + 1

While beg > 0 And en > 0

print Mid(risk. risk, beg, en - beg)

ind = ind + 1

beg = en + 1

If beg >= Len(risk. risk) Then

beg = 0

Else

en = InStr(beg, risk. risk, ";")

If en = 0 Then

en = Len(risk. risk) + 1

End If

Wend

Next r

print pt. REdgeRisk

print pt. HiOverRisk

Next p

mit

4.4.  Структура XML-документа, возвращаемого функцией GetTradeInfo

В описываемой версии библиотеки функция GetTradeInfo возвращает XML-документ, состоящий из одного элемента – TradeInfo.

Элемент TradeInfo имеет вложенный элемент InterClearing, содержащий информацию о том, прошла ли промежуточная клиринговая сессия. Элемент InterClearing не имеет вложенных элементов, и имеет один атрибут - State типа целое число и следующими возможными значениями:

·  0 – промежуточный клиринг не запланирован в сессии

·  1 – промежуточный клиринг запланирован, но время его проведения не наступило

·  2 – промежуточный клиринг отменен

·  4 – промежуточный клиринг происходит в настоящий момент (идут расчеты)

·  8 – промежуточный клиринг происходит в настоящий момент (расчеты закончены, можно снимать заявки, но не выставлять новые)

·  16 – промежуточный клиринг завершен

Пример XML-документа:

<?xml version="1.0" encoding="Windows-1251"?>

<TradeInfo>

<InterClearing state=”2” / >

</TradeInfo>

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4