realtime

Elektron от Refinitiv данные о рынке в реальном времени

Описание

пример

reqid = realtime(c,seclist,eventhandler) возвращает идентификатор запроса в реальном времени с помощью Elektron™ от связи Refinitiv™, списка безопасности и функции обработчика событий. Можно получить Elektron данные о рынке в реальном времени путем доступа к переменным, которые появляются в рабочей области MATLAB®.

пример

reqid = realtime(c,r,eventhandler) получает Elektron данные о рынке в реальном времени с помощью Elektron пользовательское сообщение запроса.

Примеры

свернуть все

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

Добавьте файлы JAR Elektron в динамический путь к классу Java®. Найдите эти файлы JAR в папке установки. Здесь, папкой установки является i:\Elektron.

javaaddpath i:\Elektron\ansipage.jar
javaaddpath i:\Elektron\ema-javadoc.jar
javaaddpath i:\Elektron\ema.jar
javaaddpath i:\Elektron\jdacsUpalib.jar
javaaddpath i:\Elektron\upa.jar
javaaddpath i:\Elektron\upaValueAdd.jar
javaaddpath i:\Elektron\upaValueAddCache.jar
javaaddpath i:\Elektron\commons-configuration-1.10.jar
javaaddpath i:\Elektron\commons-lang-2.6.jar
javaaddpath i:\Elektron\commons-logging-1.2.jar
javaaddpath i:\Elektron\org.apache.commons.collections.jar
javaaddpath i:\Elektron\slf4j-api-1.7.12.jar
javaaddpath i:\Elektron\slf4j-jdk14-1.7.12.jar

В качестве альтернативы добавьте эти файлы JAR в статический путь к классу Java. Для получения дополнительной информации о динамических и статических путях к классам, смотрите Путь к классу Java.

Соединитесь с Elektron с помощью сервисного имени и имени пользователя.

c elektron объект.

username = 'username';
servicename = 'servicename';

c = elektron(username,servicename);

Получите данные о рынке в реальном времени для безопасности IBM® с помощью связи Elektron. Используйте функцию обработчика событий в качестве примера elektronExampleListener. Чтобы получить доступ к коду для этой функции, введите edit elektronExampleListener.m.

reqid структура, которая содержит эти поля:

  • ReqId — Запросите идентификатор для запроса данных реального времени

  • ReqMsg — Elektron передают объект запроса API

  • Handle — Объект процесса прослушивателя события MATLAB

  • Listener — Объект прослушивателя события MATLAB

seclist = 'IBM.N';
eventhandler = @(~,ev)elektronExampleListener(ev);
reqid = realtime(c,seclist,eventhandler)
reqid = 

 struct with fields:

      ReqId: 5
     ReqMsg: [1×1 com.thomsonreuters.ema.access.ReqMsgImpl]
     Handle: [1×1 datafeedElektron]
   Listener: [1×1 handle.listener]

Массив ячеек IBM появляется в рабочем пространстве MATLAB. IBM содержит четыре столбца. Столбцы:

  • Идентификатор поля Elektron

  • Имя поля Elektron

  • Тип данных поля Elektron

  • Значение данных реального времени поля Elektron

Доступ к данным реального времени в массиве ячеек. Доступ к имени поля Elektron во втором столбце и текущему значению данных в четвертом столбце.

field = IBM{1,2}; 
value = IBM{1,4};

Для событий, которые не имеют имени события или которые не сопоставлены с безопасностью, ElektronExampleData объект появляется в рабочем пространстве MATLAB. Этот объект содержит декодируемые данные о событиях. Просмотрите содержимое этого объекта. Содержимое этого объекта варьируется в зависимости от события Elektron.

ElektronExampleData
ElektronExampleData =

UpdateMsg
    streamId="10"
    domain="MarketPrice Domain"
    updateTypeNum="1"
    Payload dataType="FieldList"
        FieldList
            FieldEntry fid="22" name="BID" dataType="Real" value="57.1"
            FieldEntry fid="25" name="ASK" dataType="Real" value="57.11"
            FieldEntry fid="30" name="BIDSIZE" dataType="Real" value="22.0"
            FieldEntry fid="31" name="ASKSIZE" dataType="Real" value="39.0"
            FieldEntry fid="11683" name="BIDFINMMID" dataType="Rmtes" value="(blank data)"
            FieldEntry fid="11684" name="ASKFINMMID" dataType="Rmtes" value="(blank data)"
            FieldEntry fid="3298" name="BIDXID" dataType="Enum" value="43"
            FieldEntry fid="3297" name="ASKXID" dataType="Enum" value="6"
            FieldEntry fid="6579" name="BID_COND_N" dataType="Rmtes" value="R"
            FieldEntry fid="6580" name="ASK_COND_N" dataType="Rmtes" value="R"
            FieldEntry fid="293" name="BID_MMID1" dataType="Rmtes" value="NAS"
            FieldEntry fid="296" name="ASK_MMID1" dataType="Rmtes" value="XPH"
            FieldEntry fid="1000" name="GV1_TEXT" dataType="Rmtes" value="A"
            FieldEntry fid="8937" name="LIMIT_INDQ" dataType="Enum" value="25"
            FieldEntry fid="3887" name="SEQNUM_QT" dataType="Real" value="1.6923329E7"
            FieldEntry fid="118" name="PRC_QL_CD" dataType="Enum" value="0"
            FieldEntry fid="3264" name="PRC_QL3" dataType="Enum" value="0"
            FieldEntry fid="8406" name="QTE_ORIGIN" dataType="Rmtes" value=" "
            FieldEntry fid="1041" name="GV1_FLAG" dataType="Rmtes" value=" "
            FieldEntry fid="12783" name="NBBO_IND" dataType="Enum" value="5"
            FieldEntry fid="3855" name="QUOTIM_MS" dataType="UInt" value="62664591"
            FieldEntry fid="1025" name="QUOTIM" dataType="Time" value="17:24:24:000:000:000"
            FieldEntry fid="14238" name="ORDRECV_MS" dataType="Time" value="17:24:24:590:000:000"
            FieldEntry fid="14246" name="ORDREC2_MS" dataType="Time" value="(blank data)"
        FieldListEnd
    PayloadEnd
UpdateMsgEnd

Остановите подписку данных реального времени.

delete(reqid.Listener)

Закройте связь Elektron.

close(c)

Во-первых, создайте связь Elektron. Затем получите последние торговые ценовые данные в реальном времени. Закройте связь. Данные о рынке в реальном времени, которые вы видите при выполнении этого кода, могут отличаться от выходных данных здесь.

Добавьте файлы JAR Elektron в динамический путь к классу Java. Найдите эти файлы JAR в папке установки. Здесь, папкой установки является i:\Elektron.

javaaddpath i:\Elektron\ansipage.jar
javaaddpath i:\Elektron\ema-javadoc.jar
javaaddpath i:\Elektron\ema.jar
javaaddpath i:\Elektron\jdacsUpalib.jar
javaaddpath i:\Elektron\upa.jar
javaaddpath i:\Elektron\upaValueAdd.jar
javaaddpath i:\Elektron\upaValueAddCache.jar
javaaddpath i:\Elektron\commons-configuration-1.10.jar
javaaddpath i:\Elektron\commons-lang-2.6.jar
javaaddpath i:\Elektron\commons-logging-1.2.jar
javaaddpath i:\Elektron\org.apache.commons.collections.jar
javaaddpath i:\Elektron\slf4j-api-1.7.12.jar
javaaddpath i:\Elektron\slf4j-jdk14-1.7.12.jar

В качестве альтернативы добавьте эти файлы JAR в статический путь к классу Java. Для получения дополнительной информации о динамических и статических путях к классам, смотрите Путь к классу Java.

Соединитесь с Elektron с помощью сервисного имени и имени пользователя.

c elektron объект.

username = 'username';
servicename = 'servicename';

c = elektron(username,servicename);

Получите данные о рынке в реальном времени для безопасности IBM с помощью связи Elektron. Используйте функцию обработчика событий в качестве примера elektronPriceTableListener. Чтобы получить доступ к коду для этой функции, введите edit elektronPriceTableListener.m.

reqid структура, которая содержит эти поля:

  • ReqId — Запросите идентификатор для запроса данных реального времени

  • ReqMsg — Elektron передают объект запроса API

  • Handle — Объект процесса прослушивателя события MATLAB

  • Listener — Объект прослушивателя события MATLAB

seclist = 'IBM.N';
eventhandler = @(~,ev)elektronPriceTableListener(ev,seclist);
reqid = realtime(c,seclist,eventhandler)
reqid = 

 struct with fields:

      ReqId: 5
     ReqMsg: [1×1 com.thomsonreuters.ema.access.ReqMsgImpl]
     Handle: [1×1 datafeedElektron]
   Listener: [1×1 handle.listener]

Таблица PriceTable появляется в рабочем пространстве MATLAB. PriceTable содержит эти переменные:

  • RIC — RIC для безопасности IBM

  • TRDPRC_1 — В последний раз торгуйте ценовыми данными

Elektron постоянно обновляет TRDPRC_1 переменная с последней торговой ценой в строке таблицы.

Доступ к последней торговой цене в режиме реального времени за безопасность IBM.

PriceTable.TRDPRC_1
ans =

  163.2600

Остановите подписку данных реального времени.

delete(reqid.Listener)

Закройте связь Elektron.

close(c)

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

Добавьте файлы JAR Elektron в динамический путь к классу Java. Найдите эти файлы JAR в папке установки. Здесь, папкой установки является i:\Elektron.

javaaddpath i:\Elektron\ansipage.jar
javaaddpath i:\Elektron\ema-javadoc.jar
javaaddpath i:\Elektron\ema.jar
javaaddpath i:\Elektron\jdacsUpalib.jar
javaaddpath i:\Elektron\upa.jar
javaaddpath i:\Elektron\upaValueAdd.jar
javaaddpath i:\Elektron\upaValueAddCache.jar
javaaddpath i:\Elektron\commons-configuration-1.10.jar
javaaddpath i:\Elektron\commons-lang-2.6.jar
javaaddpath i:\Elektron\commons-logging-1.2.jar
javaaddpath i:\Elektron\org.apache.commons.collections.jar
javaaddpath i:\Elektron\slf4j-api-1.7.12.jar
javaaddpath i:\Elektron\slf4j-jdk14-1.7.12.jar

В качестве альтернативы добавьте эти файлы JAR в статический путь к классу Java. Для получения дополнительной информации о динамических и статических путях к классам, смотрите Путь к классу Java.

Соединитесь с Elektron с помощью сервисного имени и имени пользователя.

c elektron объект.

username = 'username';
servicename = 'servicename';

c = elektron(username,servicename);

Создайте пользовательское сообщение запроса для безопасности Apple. Введите этот код API сообщения Elektron.

import com.thomsonreuters.ema.access.*;
import com.thomsonreuters.ema.access.OmmConsumerConfig.*;

r = EmaFactory.createReqMsg;
r.serviceName(c.Service).name('AAPL.O');

Получите последние торговые ценовые данные с помощью связи Elektron и пользовательского сообщения запроса. Используйте функцию обработчика событий в качестве примера elektronExampleListener. Чтобы получить доступ к коду для этой функции, введите edit elektronExampleListener.m.

reqid структура, которая содержит эти поля:

  • ReqId — Запросите идентификатор для запроса данных реального времени

  • ReqMsg — Elektron передают объект запроса API

  • Handle — Объект процесса прослушивателя события MATLAB

  • Listener — Объект прослушивателя события MATLAB

eventhandler = @(~,ev)elektronExampleListener(ev);
reqid = realtime(c,r,eventhandler)
reqid = 

 struct with fields:

      ReqId: 5
     ReqMsg: [1×1 com.thomsonreuters.ema.access.ReqMsgImpl]
     Handle: [1×1 datafeedElektron]
   Listener: [1×1 handle.listener]

Массив ячеек AAPL появляется в рабочем пространстве MATLAB.

Доступ к данным реального времени в массиве ячеек. Доступ к имени поля Elektron во втором столбце и текущему значению данных в четвертом столбце.

field = AAPL{1,2}; 
value = AAPL{1,4};

Остановите подписку данных реального времени.

delete(reqid.Listener)

Закройте связь Elektron.

close(c)

Входные параметры

свернуть все

Связь Elektron в виде elektron объект создал использование elektron функция.

Безопасность Elektron перечисляет в виде вектора символов, строкового скаляра, массива ячеек из символьных векторов или массива строк. Задайте ценные бумаги в списке безопасности как:

  • Вектор символов или строка для одной безопасности.

  • Массив ячеек из символьных векторов или массив строк для нескольких ценных бумаг. Каждый вектор символов в массиве ячеек или каждая строка в массиве строк являются безопасностью Elektron.

Безопасность является Инструментальным Кодом Reuters® (RIC). Для получения дополнительной информации о RICs, свяжитесь с Refinitiv.

Пример: {'IBM.N','MSFT.O'}

Типы данных: cell | char | string

Сообщение запроса Elektron в виде Elektron передает объект запроса API. Чтобы создать этот объект, используйте код API сообщения Elektron. Для получения дополнительной информации смотрите Elektron от Refinitiv. Этот объект задает данные и параметры для пользовательского запроса сообщения.

Обработчик событий в виде указателя на функцию. Можно использовать функции обработки событий в качестве примера elektronExampleListener или elektronPriceTableListener обработать события Elektron Message API в реальном времени. Или, можно задать пользовательскую функцию обработчика событий, чтобы обработать события по вашему выбору. Для получения дополнительной информации смотрите Запись и Выполнение Пользовательских Функций обработчика событий.

Функция обработчика событий elektronExampleListener создает массив ячеек для каждой безопасности во входном параметре seclist. Массив ячеек содержит данные реального времени для безопасности. Например, если seclist содержит 'IBM.N', затем массив ячеек под названием IBM появляется в рабочем пространстве MATLAB.

Для событий без имени или которые не сопоставлены с RIC, функция обработчика событий создает объект под названием ElektronExampleData в рабочем пространстве MATLAB. Этот объект содержит декодируемые данные для этих событий. Тип объекта отличается в зависимости от текущего Elektron Message API выход. Для получения дополнительной информации об этом объекте, смотрите Elektron от Refinitiv.

Эта таблица описывает столбцы в массивах ячеек для каждой безопасности, которые появляются в рабочем пространстве MATLAB.

Столбец массива ячеекОписание

Первый столбец

Идентификатор поля Elektron

Второй столбец

Имя поля Elektron

Третий столбец

Тип данных Elektron поля Elektron

Четвертый столбец

Текущее значение данных Elektron

Функция обработчика событий elektronExampleListener имеет входной параметр ev это задано как массив с четырьмя ячейками столбца, который содержит:

  • Декодируемые данные

  • Elektron передают объект-событие API

  • Сообщение о событии

  • EventName

Другая функция обработчика событий elektronPriceTableListener составляет таблицу под названием PriceTable в рабочем пространстве MATLAB. Эта таблица содержит последнюю торговую цену за каждую безопасность во входном параметре seclist. Таблица содержит две переменные, RIC для безопасности и TRDPRC_1 за последнюю торговую цену соответствующей безопасности:

  • RIC возвращен как массив ячеек одного или нескольких векторов символов, которые зависят от количества ценных бумаг в списке безопасности.

  • TRDPRC_1 возвращен в виде числа для одной безопасности или массива типа double, который имеет значение для каждой безопасности в RIC.

Функция обработчика событий elektronPriceTableListener имеет список безопасности как дополнительный входной параметр. Список безопасности совпадает с содержимым seclist.

Получить доступ к коду для функции обработчика событий elektronExampleListener, введите edit elektronExampleListener.m. Получить доступ к коду для функции обработчика событий elektronPriceTableListener, введите edit elektronPriceTableListener.m.

Например, чтобы получить данные реального времени для IBM и ценных бумаг Microsoft®, введите этот код, который принимает установленную связь Elektron c.

seclist = {'IBM.N','MSFT.O'};
reqId = realtime(c,seclist,@(~,ev)elektronExampleListener(ev));

Пример: @(~,ev)elektronExampleListener(ev)

Типы данных: function_handle

Выходные аргументы

свернуть все

Идентификатор запроса в реальном времени, возвращенный как структура с этими полями.

Поле Описание

ReqId

Запросите идентификатор для запроса данных реального времени

ReqMsg

Elektron передают объект запроса API

Handle

Объект процесса прослушивателя события MATLAB

Listener

Объект прослушивателя события MATLAB

Для получения дополнительной информации об идентификаторе запроса и объекте запроса, смотрите Elektron от Refinitiv.

Для получения дополнительной информации о прослушивателях события MATLAB, см. Обзор событий и Прослушиватели.

Используйте идентификатор запроса в реальном времени, чтобы остановить подписку данных реального времени; например:

delete(reqid.Listener)

Советы

  • Если вы сталкиваетесь с проблемами с поиском данных Elektron, смотрите содержимое ElektronExampleData объект в рабочем пространстве MATLAB. Например, если вы вводите недопустимый RIC, ElektronExampleData объект содержит сообщение о состоянии, которое указывает, что RIC не может быть найден. Чтобы получить такую информацию автоматически, запишите пользовательскую функцию обработчика событий, которая анализирует сообщения о состоянии в ElektronExampleData объект. Для получения дополнительной информации о пользовательских функциях обработчика событий, смотрите Запись и Выполнение Пользовательских Функций обработчика событий. Для получения дополнительной информации о сообщениях о состоянии, смотрите Elektron от Refinitiv.

Введенный в R2017a