Создайте порядок Используя X_TRADER

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

Соедините с торговлей технологиями X_TRADER

c = xtrdr;

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

Создайте инструмент для контракта Концентратора Генерала CAISO NP15 EZ Пиковый Календарный день на 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)

Смотрите также

| | | |

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

Больше о

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