· 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 | телефон |
|
|
|
| ||
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 |


