В этом примере показано, как соединиться с Trading Technologies® 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
.
close(c)
xtrdr
| createInstrument
| createOrderSet
| createOrderProfile
| close