Создание порядка с использованием X_TRADER

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

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

c = xtrdr;

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

Создайте инструмент для контракта CAISO NP15 EZ Gen Hub 5 MW Peak Calendar-Day LMP Futures в реальном времени со сроком действия август 2014 года на Чикагской товарной бирже.

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

Зарегистрировать обработчик событий для сервера Order

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

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

Создайте набор порядков и установите свойства порядка

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

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

Проверьте доступность сервера Order и отправьте порядок

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)

См. также

| | | |

Похожие примеры

Подробнее о

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

Для просмотра документации необходимо авторизоваться на сайте