Click or drag to resize

Getting started

The SampleAlphaVantage application shows an example of working with the AlphaVantageTrader as shown in the figure below. The example source code is in the Samples/AlphaVantage folder of the installation package.

Alpha Vantage Sample
  1. First, you need to create an instance of the AlphaVantageTrader:

    C#
    Trader = new AlphaVantageTrader();// { LogLevel = LogLevels.Debug };
  2. Next, you should subscribe on required IConnector events:

    C#
    // subscribe on successfully connect event
    Trader.Connected += () =>
    {
        // set flag (connection is established)
        _isConnected = true;
    
        // update gui labes
        this.GuiAsync(() => ChangeConnectStatus(true));
    };
    
    // subscribe on connection error event
    Trader.ConnectionError += error => this.GuiAsync(() =>
    {
        // update gui labes
        ChangeConnectStatus(false);
    
        MessageBox.Show(this, error.ToString(), "Connection was dropped.");    
    });
    
    // subscribe on successfully disconnect event
    Trader.Disconnected += () => this.GuiAsync(() => ChangeConnectStatus(false));
    
    // subscribe on error event
    Trader.Error += error => this.GuiAsync(() => MessageBox.Show(this, error.ToString(), "Data processing error"));
    
    // new securities received
    Trader.NewSecurity += security => _securitiesWindow.SecurityPicker.Securities.Add(security);
    
    // new own trades received
    Trader.NewMyTrade += trade => _myTradesWindow.TradeGrid.Trades.Add(trade);
    
    // new anonymous trades received
    Trader.NewTrade += trade => _tradesWindow.TradeGrid.Trades.Add(trade);
    
    // new orders received
    Trader.NewOrder += order => _ordersWindow.OrderGrid.Orders.Add(order);
    
    // new portofolios (=accounts) received
    Trader.NewPortfolio += portfolio =>
    {
        // subscribe on portfolio updates
        Trader.RegisterPortfolio(portfolio);
    
        _portfoliosWindow.PortfolioGrid.Portfolios.Add(portfolio);
    };
    Trader.NewPosition += position => _portfoliosWindow.PortfolioGrid.Positions.Add(position);
    
    // subscribe on error of order registration event
    Trader.OrderRegisterFailed += _ordersWindow.OrderGrid.AddRegistrationFail;
    // subscribe on error of order cancelling event
    Trader.OrderCancelFailed += OrderFailed;
  3. Finally, you need to connect to AlphaVantage server:

    C#
    Trader.Connect();
  4. Once connected, you can expect to trigger events:

  5. For updates on the selected instrument and ticks you need to use the RegisterSecurity(Security, NullableDateTimeOffset, NullableDateTimeOffset, NullableInt64, MarketDataBuildModes, NullableMarketDataTypes) and RegisterTrades(Security, NullableDateTimeOffset, NullableDateTimeOffset, NullableInt64, MarketDataBuildModes, NullableMarketDataTypes) methods, respectively:

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