Запись и выполнение функций пользовательского обработчика событий

Функция записи пользовательского обработчика событий

Можно обрабатывать события, связанные с любыми обновлениями данных, путем записи пользовательской функции обработчика событий для использования с Datafeed Toolbox™. Например, вы можете контролировать цены перед созданием порядка или данных интервала графика. Выполните следующие основные действия, чтобы написать пользовательский обработчик событий.

  1. Выберите события, которые необходимо обработать, контролировать или оценить.

  2. Определите, как пользовательский обработчик событий обрабатывает эти события.

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

  4. Запишите код для пользовательской функции обработчика событий.

Для получения дополнительной информации смотрите Создание функций в файлах. Для примера кода 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 порядка <reservedrangesplaceholder0>, и объект-таймер t.

  1. Выполняйте timer для выполнения eventhandler. Область аргумента пары "имя-значение" TimerFcn задает функцию обработчика событий. Область аргумента пары "имя-значение" Period задает задержку в 1 секунду между выполнениями функции обработчика событий. Когда аргумент пары "имя-значение" ExecutionMode установлено в fixedRateфункция обработчика событий выполняется сразу после добавления ее к очереди выполнения MATLAB.

    t = timer('TimerFcn',{@c.eventhandler},'Period',1,...
              'ExecutionMode','fixedRate');
    
  2. Запустите таймер для запуска и выполнения eventhandler немедленно.

    start(t)
    
  3. Управляемый createOrderAndRoute использование пользовательского обработчика событий путем установки useDefaultEventHandler на false.

    createOrderAndRoute(c,order,'useDefaultEventHandler',false)
    
  4. Остановите таймер, чтобы остановить обновление данных.

    stop(t)
    

    Если вы хотите возобновить обновление данных, запустите start.

  5. Удалите таймер после обработки обновлений данных для подключения Bloomberg EMSX.

    delete(t)

Рабочий процесс для функции пользовательского обработчика событий

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

  1. Напишите пользовательскую функцию обработчика событий и сохраните ее в файл.

  2. Создайте соединение с поставщиком услуг передачи данных.

  3. Подпишитесь на определенную защиту с помощью существующей функции или синтаксиса API.

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

  5. Остановите обновление данных при помощи stop или закрытие соединения с поставщиком услуг передачи данных.

  6. Закройте соединение с поставщиком услуг передачи данных, если соединение все еще открыто.

Для интерфейсов EMSX Bloomberg следуйте этому рабочему процессу.

  1. Напишите пользовательскую функцию обработчика событий и сохраните ее в файл.

  2. Создайте соединение с помощью emsx.

  3. Подпишитесь на поля Bloomberg EMSX, используя orders и routes. Можно также записать пользовательские функции обработчика событий для обработки событий подписки.

  4. Запустите пользовательскую функцию обработчика событий, используя timer. Используйте указатель на функцию, чтобы задать имя пользовательской функции обработчика событий для выполнения timer.

  5. Запустите таймер, чтобы выполнить пользовательскую функцию обработчика событий немедленно используя start.

  6. Остановите обновление данных, используя stop.

  7. Отписаться от полей Bloomberg EMSX можно используя синтаксис API.

  8. Удалите таймер, используя delete.

  9. Закройте соединение, используя close.

См. также

| | | | | | | | |

Похожие темы

Внешние веб-сайты