Для изменения размера нажмите или перетащите
Пример использования SampleGUI

Для демонстрации возможностей платформы Plaza II написан пример под названием SamplePlaza (находится в папке Samples/Plaza). В нем показано, как подключаться к шлюзу Plaza II, получать инструменты и размещать заявки.

Пример робота под Plaza II

  1. В самом начале необходимо создать шлюз PlazaTrader:

    C#
    // создаем шлюз к Плазе
    var Trader = new PlazaTrader(this.Address.Text.To<IPEndPoint>());
    
    // Если роутер плазы (P2MQRouter.exe) установлен на локальном компьютере, можно использовать конструктор без параметров:
    var Trader = new PlazaTrader();
    Примечание Примечание
    При соединении между клиентским приложением и роутером в платформе Plaza II возможно использование протокола TCP или LRPCQ. Последний является простым транспортом, основанным на использовании shared-memory в ОС Windows. Использование LRPCQ возможно только при запуске приложения-клиента и роутера на одном компьютере. Протокол LRPCQ имеет меньшие накладные расходы, чем TCP, передача сообщений между приложением и роутером с использованием LRPCQ происходит быстрее. Чтобы использовать протокол LRPCQ, нужно присвоить свойству PlazaTraderUseLocalProtocol значение true. По умолчанию оно равно false, то есть используется протокол TCP.
  2. Если для подключения требуется указать логин и пароль, то их необходимо передать в PlazaTraderLogin и PlazaTraderPassword:

    Внимание Внимание
    Если при установке роутера был введен логин и пароль, то в коде их указывать не надо.
    C#
    this.Trader.Login = this.Login.Text;
    this.Trader.Password = this.Password.Password;
  3. После создания шлюза необходимо подключиться к торговой системе. В случае с PlazaTrader такой системой выступает P2MQRouter.exe.

    После подключения начнут вызываться события IConnectorNewSecurities, IConnectorNewOrders и т.д. Для тех данных, которые изменяются, вызывается другое событие. Например, для заявок, у которых изменяются значения Состояние, Остаток и т.д. будет вызвано событие IConnectorOrdersChanged.

    C#
    // подписываемся на событие успешного соединения
    Trader.Connected += () =>
    {
        this.GuiAsync(() => ChangeConnectStatus(true));
    };
        ...
    trader.Connect();
  4. Для просмотра списка инструментов используется окно Инструменты (SecuritiesWindow.xaml). Чтобы в нем отображались ценные бумаги, необходимо внутри метода Connect_Click класса MainWindow подписаться на событие NewSecurities.

    C#
    this.Trader.NewSecurities += securities => this.GuiAsync(() => _securitiesWindow.AddSecurities(securities));
  5. Для просмотра стаканов нужно в окне Инструменты щелкнуть на кнопке Стакан:

    C#
    // внутри метода Quotes_Click
    var window = _quotesWindows.SafeAdd(SelectedSecurity, security =>
    {
        // начинаем получать котировки стакана
        trader.RegisterMarketDepth(security);
    
        // создаем окно со стаканом
        var wnd = new QuotesWindow { Title = security.Code + " котировки" };
        wnd.MakeHideable();
        return wnd;
    });
  6. Создание заявок (используется класс NewOrderWindow):

    C#
    // внутри метода Send_Click
    var order = new Order
    {
        Portfolio = Portfolio.SelectedPortfolio,
        Volume = Volume.Text.To<decimal>(),
        Price = Price.Text.To<decimal>(),
        Security = Security,
        Direction = IsBuy.IsChecked == true ? OrderDirections.Buy : OrderDirections.Sell,
    };
    
    MainWindow.Instance.Trader.RegisterOrder(order);
  7. Освобождение занятых ресурсов:

    C#
    Trader.Dispose();