Представьте порядки X_TRADER

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

Соединитесь с X_TRADER

X = xtrdr;

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

createInstrument(X,'Exchange','CME','Product','2F',...
                'ProdType','Future','Contract','Aug13',...
                'Alias','SubmitOrderInstrument1')

Укажите обработчики событий

Укажите обработчики событий для сервера порядка. Коллбэк ttorderserverstatus присвоен событию OnExchangeStateUpdate проверять, что обменный сервер порядка требуемого инструмента запускается. В противном случае никакие порядки не могут быть представлены.

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

Создайте набор порядка

OrderSet объект отправляет заказы к X_TRADER.

Установите свойства OrderSet возразите и детализируйте уровень событий статуса заказа. Включите обновление порядка и отклоните (отказ) события, таким образом, можно присвоить коллбэки, чтобы обработать эти условия.

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

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

Установите, установил ли порядок проверки самостоятельно назначенные пределы положения при представлении порядка.

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

Установите функцию обратного вызова

Установите коллбэк обрабатывать OnOrderFilled события. Каждый раз порядок заполнен (или частично заполненный), этот коллбэк вызывается.

registerevent(X.OrderSet(1),{'OnOrderFilled',...
                     @(varargin)ttorderevent(varargin{:},X)})

Включите представление порядка

Необходимо сначала включить представление порядка, прежде чем можно будет представить порядки X_TRADER.

X.OrderSet(1).Open(1)

Создайте профиль порядка

Создайте профиль порядка с помощью существующего инструмента. Профиль порядка содержит настройки, которые задают представленный порядок. Допустимый Set параметры показывают:

orderProfile = createOrderProfile(X);
orderProfile.Instrument = X.Instrument(1);
orderProfile.Customer = '<Default>';

Выборка: создайте порядок рынка

Создайте порядок рынка купить 100 долей.

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

Выборка: создайте лимитный приказ

Создайте лимитный приказ путем установки OrderType и цена лимитного приказа.

orderProfile.Set('OrderType','L')
orderProfile.Set('Limit$','127000')

Выборка: создайте порядок рынка остановки

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

orderProfile.Set('OrderType','M')
orderProfile.Set('OrderRestr','S')
orderProfile.Set('Stop$','129800')

Выборка: создайте лимитный приказ остановки

Создайте лимитный приказ остановки и установите ограничение порядка, введите, ограничьте цену и цену остановки.

orderProfile.Set('OrderType','L')
orderProfile.Set('OrderRestr','S')
orderProfile.Set('Limit$','128000')
orderProfile.Set('Stop$','127500')

Проверяйте состояние сервера порядка

Проверяйте состояние сервера порядка прежде, чем представить порядок и добавьте счетчик, таким образом, пример не задерживается.

nCounter = 1;
while ~exist('bServerUp','var') && nCounter < 20
   pause(1)
   nCounter = nCounter + 1;
end

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

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

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

Закройте связь

close(X)

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

| | | |

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

Больше о

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