События, связанные с любыми обновлениями данных, можно обработать, написав пользовательскую функцию обработчика событий для использования с Datafeed Toolbox™. Например, можно контролировать цены перед созданием заказа или данных интервала графика. Выполните следующие основные действия, чтобы записать пользовательский обработчик событий.
Выберите события, которые требуется обработать, отслеживать или оценивать.
Решите, как обработчик настраиваемых событий обрабатывает эти события.
Определите входные и выходные аргументы для пользовательской функции обработчика событий.
Запишите код для пользовательской функции обработчика событий.
Дополнительные сведения см. в разделе Создание функций в файлах. Для примера кода функции обработчика событий Bloomberg ® введитеedit v3stockticker.m в командной строке.
Можно запустить пользовательскую функцию обработчика событий, передав имя функции в качестве входного аргумента существующей функции. Укажите имя пользовательской функции обработчика событий в виде символьного вектора, строки или дескриптора функции. Дополнительные сведения об дескрипторах функций см. в разделе Создание дескриптора функции.
Например, предположим, что вы хотите получить данные в реальном времени от Bloomberg с помощью realtime с пользовательской функцией обработчика событий eventhandler. Для запуска можно использовать любой из этих синтаксисов eventhandler. Этот код предполагает подключение Bloomberg c, список безопасности s, поля данных Bloomberg f, подписка Bloomberg subsи таймер MATLAB ®t.
Используйте символьный вектор или строку.
[subs,t] = realtime(c,s,f,'eventhandler');
Или используйте дескриптор функции.
[subs,t] = realtime(c,s,f,@eventhandler);
Для интерфейсов Bloomberg EMSX можно запустить пользовательскую функцию обработчика событий с помощью timer. Укажите имя пользовательской функции обработчика событий в качестве дескриптора функции и передайте этот дескриптор функции в качестве входного аргумента timer. Дополнительные сведения об дескрипторах функций см. в разделе Создание дескриптора функции. Например, предположим, что требуется создать заказ с помощью createOrderAndRoute с пользовательской функцией обработчика событий eventhandler. Этот код предполагает подключение Bloomberg EMSX c, заказ Bloomberg EMSX orderи объект таймера t.
Управляемый timer выполнять eventhandler. Аргумент пары имя-значение TimerFcn определяет функцию обработчика событий. Аргумент пары имя-значение Period задает 1-секундную задержку между выполнением функции обработчика событий. Когда аргумент пары имя-значение ExecutionMode имеет значение fixedRateфункция обработчика событий выполняется сразу после ее добавления в очередь выполнения MATLAB.
t = timer('TimerFcn',{@c.eventhandler},'Period',1,... 'ExecutionMode','fixedRate');
Запустите таймер для запуска и выполнения eventhandler немедленно.
start(t)
Управляемый createOrderAndRoute использование пользовательского обработчика событий путем установки useDefaultEventHandler кому false.
createOrderAndRoute(c,order,'useDefaultEventHandler',false)
Остановите таймер, чтобы остановить обновление данных.
stop(t)
Если вы хотите возобновить обновление данных, запустите start.
Удалите таймер после завершения обработки обновлений данных для подключения Bloomberg EMSX.
delete(t)
Этот рабочий процесс суммирует основные шаги для работы с пользовательской функцией обработчика событий для любого из поставщиков услуг передачи данных.
Запишите пользовательскую функцию обработчика событий и сохраните ее в файле.
Создайте подключение к поставщику услуг передачи данных.
Подпишитесь на определенную защиту, используя существующую функцию или синтаксис API.
Запустите существующую функцию для получения обновлений данных и используйте пользовательскую функцию обработчика событий в качестве входного аргумента.
Остановить обновление данных с помощью stop или закрытие соединения с поставщиком услуг передачи данных.
Закройте соединение с поставщиком услуг передачи данных, если соединение все еще открыто.
Для интерфейсов Bloomberg EMSX следуйте этому рабочему процессу.
Запишите пользовательскую функцию обработчика событий и сохраните ее в файле.
Создание соединения с помощью emsx.
Подписаться на поля Bloomberg EMSX с помощью orders и routes. Можно также написать пользовательские функции обработчика событий для обработки событий подписки.
Запустить пользовательскую функцию обработчика событий с помощью timer. Используйте дескриптор функции, чтобы указать имя пользовательской функции обработчика событий для запуска timer.
Запустите таймер для немедленного выполнения пользовательской функции обработчика событий с помощью start.
Остановить обновление данных с помощью stop.
Отмените подписку на поля Bloomberg EMSX с помощью синтаксиса API.
Удаление таймера с помощью delete.
Закройте соединение с помощью close.
close | createOrderAndRoute | delete | emsx | orders | realtime | routes | start | stop | timer