exponenta event banner

Создать заказ с помощью X_TRADER

В этом примере показано, как подключиться к Trading Technologies ® X_TRADER® и создать рыночный заказ.

Подключение к торговым технологиям X_TRADER

c = xtrdr;

Создание инструмента для договора

Создайте инструмент для контракта CAISO NP15 EZ Gen Hub 5 МВт пиковых календарно-дневных LMP-фьючерсов в реальном времени со сроком годности август 2014 года на Чикагской товарной бирже.

createInstrument(c,'Exchange','CME','Product','2F',...
                 'ProdType','Future','Contract','Aug14',...
                 'Alias','SubmitOrderInstrument3')

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

Зарегистрируйте обработчик событий для проверки состояния сервера заказов.

sExchange = c.Instrument.Exchange;
c.Gate.registerevent({'OnExchangeStateUpdate', ...
    @(varargin)ttorderserverstatus(varargin{:},sExchange)})

Создать набор заказов и задать свойства заказов

Создайте пустой набор заказов. Затем задайте свойства набора порядка. Установка для первого свойства значения true (1) позволяет API X_TRADER отправлять уведомления об отклонении заказа. Установка для второго свойства значения true (1) позволяет API X_TRADER добавлять пары заказов для всех обновлений заказов в список отслеживания заказов в этом наборе заказов. Установка для третьего свойства значения ORD_NOTIFY_NORMAL устанавливает режим уведомления API X_TRADER для событий состояния заказа в нормальное состояние.

createOrderSet(c)

c.OrderSet(1).EnableOrderRejectData = 1;
c.OrderSet(1).EnableOrderUpdateData = 1;
c.OrderSet(1).OrderStatusNotifyMode = 'ORD_NOTIFY_NORMAL';

Установить проверки предельного положения

c.OrderSet(1).Set('NetLimits',false)

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

Зарегистрируйте обработчики событий для отслеживания событий, связанных со статусом заказа.

registerevent(c.OrderSet(1),{'OnOrderFilled',...
                            @(varargin)ttorderevent(varargin{:},c)})
registerevent(c.OrderSet(1),{'OnOrderRejected',...
                            @(varargin)ttorderevent(varargin{:},c)})
registerevent(c.OrderSet(1),{'OnOrderSubmitted',...
                            @(varargin)ttorderevent(varargin{:},c)})
registerevent(c.OrderSet(1),{'OnOrderDeleted',...
                            @(varargin)ttorderevent(varargin{:},c)})

Включить отправку заказа

Откройте инструмент для торговли и включите API X_TRADER для получения информации о глубине рынка при открытии инструмента.

c.OrderSet(1).Open(1)

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

orderProfile = createOrderProfile(c,'Instrument',c.Instrument(1));

Задать свойство клиента по умолчанию

Присвойте клиенту значения по умолчанию для торговли инструментом.

orderProfile.Customer = '<Default>';

Настройка профиля заказа как рыночного заказа

Настройте профиль заказа как рыночный заказ на покупку 225 акций.

orderProfile.Set('BuySell','Buy')
orderProfile.Set('Qty','225')
orderProfile.Set('OrderType','M')

Проверка состояния сервера заказов

nCounter = 1;
while ~exist('bServerUp','var') && nCounter < 20
  % bServerUp is created by ttorderserverstatus
  pause(1)
  nCounter = nCounter + 1;
end

Проверка доступности сервера заказов и отправка заказа

if exist('bServerUp','var') && bServerUp
  % Submit the order
  submittedQuantity = c.OrderSet(1).SendOrder(orderProfile);
  disp(['Quantity Sent: '  num2str(submittedQuantity)])
else
  disp('Order server is down.  Unable to submit order.')
end

API X_TRADER отправляет заказ бирже и возвращает количество контрактов, отправленных для договоров на основе партий, или количество потоков, отправленных для контрактов на основе потоков в аргументе вывода. submittedQuantity.

Закрыть торговые технологии X_TRADER подключение

close(c)

См. также

| | | |

Связанные примеры

Подробнее

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