Для изменения размера нажмите или перетащите

Пример работы с IEX

Пример работы с IEXTrader демонстрирует приложение SampleIEX, показанное на рисунке ниже. Исходные коды примера лежат в дистрибутиве в папке Samples/IEX.

IEXSample
  1. В самом начале необходимо создать экземпляр класса шлюза IEXTrader:

    C#
    // создаем подключение
    Trader = new IEXTrader();// { LogLevel = LogLevels.Debug };
  2. Далее следует установить требуемые обработчики событий IConnector:

    C#
    ...
    Trader.Restored += () => this.GuiAsync(() =>
    {
        // разблокируем кнопку Экспорт (соединение было восстановлено)
        ChangeConnectStatus(true);
        MessageBox.Show(this, LocalizedStrings.Str2958);
    });
    
    // подписываемся на событие успешного соединения
    Trader.Connected += () =>
    {
        // возводим флаг, что соединение установлено
        _isConnected = true;
    
        // разблокируем кнопку Экспорт
        this.GuiAsync(() => ChangeConnectStatus(true));
    };
    Trader.Disconnected += () => this.GuiAsync(() => ChangeConnectStatus(false));
    
    // подписываемся на событие разрыва соединения
    Trader.ConnectionError += error => this.GuiAsync(() =>
    {
        // заблокируем кнопку Экспорт (так как соединение было потеряно)
        ChangeConnectStatus(false);
    
        MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959);
    });
    
    // подписываемся на ошибку обработки данных (транзакций и маркет)
    Trader.Error += error =>
        this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2955));
    
    // подписываемся на ошибку подписки маркет-данных
    Trader.MarketDataSubscriptionFailed += (security, msg, error) =>
        this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2956Params.Put(msg.DataType, security)));
    
    Trader.NewSecurity += security => _securitiesWindow.SecurityPicker.Securities.Add(security);
    Trader.NewTrade += trade => _tradesWindow.TradeGrid.Trades.Add(trade);
    ...
  3. Далее необходимо выполнить подключение к серверу IEX:

    C#
    Trader.Connect();
  4. После подключения можно ожидать срабатывания событий:

  5. Для получения обновлений и сделок по выбранному инструменту необходимо использовать методы RegisterSecurity(Security, NullableDateTimeOffset, NullableDateTimeOffset, NullableInt64, MarketDataBuildModes, NullableMarketDataTypes) и RegisterTrades(Security, NullableDateTimeOffset, NullableDateTimeOffset, NullableInt64, MarketDataBuildModes, NullableMarketDataTypes) соответственно:

    C#
    private void QuotesClick(object sender, RoutedEventArgs e)
    {
        var security = SecurityPicker.SelectedSecurity;
        var trader = MainWindow.Instance.Trader;
    
        if (trader.RegisteredSecurities.Contains(security))
        {
            trader.UnRegisterSecurity(security);
            trader.UnRegisterTrades(security);
        }
        else
        {
            trader.RegisterSecurity(security);
            trader.RegisterTrades(security);
        }
    }