Exemple #1
0
        private void ConnectClick(object sender, RoutedEventArgs e)
        {
            var pwd = PwdBox.Password;

            if (!IsConnected)
            {
                if (Username.IsEmpty())
                {
                    MessageBox.Show(this, LocalizedStrings.Str3751);
                    return;
                }
                if (pwd.IsEmpty())
                {
                    MessageBox.Show(this, LocalizedStrings.Str2975);
                    return;
                }

                if (Trader == null)
                {
                    // create connector
                    Trader = new CQGTrader {
                        LogLevel = LogLevels.Debug
                    };

                    _logManager.Sources.Add(Trader);

                    // subscribe on connection successfully event
                    Trader.Connected += () =>
                    {
                        this.GuiAsync(() => OnConnectionChanged(true));
                    };

                    // subscribe on connection error event
                    Trader.ConnectionError += error => this.GuiAsync(() =>
                    {
                        OnConnectionChanged(Trader.ConnectionState == ConnectionStates.Connected);
                        MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959);
                    });

                    Trader.Disconnected += () => this.GuiAsync(() => OnConnectionChanged(false));

                    // subscribe on error event
                    Trader.Error += error =>
                                    this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2955));

                    // subscribe on error of market data subscription event
                    Trader.MarketDataSubscriptionFailed += (security, type, error) =>
                                                           this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2956Params.Put(type, security)));

                    Trader.NewSecurities += securities => _securitiesWindow.SecurityPicker.Securities.AddRange(securities);
                    Trader.NewMyTrades   += trades => _myTradesWindow.TradeGrid.Trades.AddRange(trades);
                    Trader.NewOrders     += orders => _ordersWindow.OrderGrid.Orders.AddRange(orders);
                    Trader.NewStopOrders += orders => _stopOrdersWindow.OrderGrid.Orders.AddRange(orders);
                    Trader.NewPortfolios += portfolios =>
                    {
                        // subscribe on portfolio updates
                        portfolios.ForEach(Trader.RegisterPortfolio);

                        _portfoliosWindow.PortfolioGrid.Portfolios.AddRange(portfolios);
                    };
                    Trader.NewPositions += positions => _portfoliosWindow.PortfolioGrid.Positions.AddRange(positions);

                    // subscribe on error of order registration event
                    Trader.OrdersRegisterFailed += OrdersFailed;
                    // subscribe on error of order cancelling event
                    Trader.OrdersCancelFailed += OrdersFailed;

                    // subscribe on error of stop-order registration event
                    Trader.StopOrdersRegisterFailed += OrdersFailed;
                    // subscribe on error of stop-order cancelling event
                    Trader.StopOrdersCancelFailed += OrdersFailed;

                    // set market data provider
                    _securitiesWindow.SecurityPicker.MarketDataProvider = Trader;
                }

                Trader.Connect();
            }
            else
            {
                Trader.Disconnect();
            }
        }
Exemple #2
0
        private void ConnectClick(object sender, RoutedEventArgs e)
        {
            var secret = PwdBox.Password;

            if (!IsConnected)
            {
                if (ConsumerKey.IsEmpty())
                {
                    MessageBox.Show(this, LocalizedStrings.Str3689);
                    return;
                }
                if (secret.IsEmpty())
                {
                    MessageBox.Show(this, LocalizedStrings.Str3690);
                    return;
                }

                if (Trader == null)
                {
                    // создаем подключение
                    Trader = new ETradeTrader();

                    try
                    {
                        Trader.AccessToken = null;

                        var token = OAuthToken.Deserialize(Properties.Settings.Default.AccessToken);
                        if (token != null && token.ConsumerKey.ToLowerInvariant() == ConsumerKey.ToLowerInvariant())
                        {
                            Trader.AccessToken = token;
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(this, LocalizedStrings.Str3691Params.Put(ex));
                    }

                    Trader.LogLevel = LogLevels.Debug;

                    _logManager.Sources.Add(Trader);

                    // подписываемся на событие успешного соединения
                    Trader.Connected += () => this.GuiAsync(() =>
                    {
                        Properties.Settings.Default.AccessToken = Trader.AccessToken.Serialize();
                        OnConnectionChanged(true);

                        Trader.StartExport();
                    });

                    // подписываемся на событие разрыва соединения
                    Trader.ConnectionError += error => this.GuiAsync(() =>
                    {
                        OnConnectionChanged(Trader.ConnectionState == ConnectionStates.Connected);
                        MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959);
                    });

                    Trader.Disconnected += () => this.GuiAsync(() => OnConnectionChanged(false));

                    // подписываемся на ошибку обработки данных (транзакций и маркет)
                    Trader.ProcessDataError += error =>
                                               this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2955));

                    // подписываемся на ошибку подписки маркет-данных
                    Trader.MarketDataSubscriptionFailed += (security, type, error) =>
                                                           this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2956Params.Put(type, security)));

                    Trader.NewSecurities += securities => _securitiesWindow.SecurityPicker.Securities.AddRange(securities);
                    Trader.NewMyTrades   += trades => _myTradesWindow.TradeGrid.Trades.AddRange(trades);
                    Trader.NewOrders     += orders => _ordersWindow.OrderGrid.Orders.AddRange(orders);
                    Trader.NewStopOrders += orders => _stopOrdersWindow.OrderGrid.Orders.AddRange(orders);
                    Trader.NewPortfolios += portfolios =>
                    {
                        // регистрирует портфели на обновление данных
                        portfolios.ForEach(Trader.RegisterPortfolio);

                        _portfoliosWindow.PortfolioGrid.Portfolios.AddRange(portfolios);
                    };
                    Trader.NewPositions += positions => _portfoliosWindow.PortfolioGrid.Positions.AddRange(positions);

                    // подписываемся на событие о неудачной регистрации заявок
                    Trader.OrdersRegisterFailed += OrdersFailed;
                    // подписываемся на событие о неудачном снятии заявок
                    Trader.OrdersCancelFailed += OrdersFailed;

                    // подписываемся на событие о неудачной регистрации стоп-заявок
                    Trader.StopOrdersRegisterFailed += OrdersFailed;
                    // подписываемся на событие о неудачном снятии стоп-заявок
                    Trader.StopOrdersCancelFailed += OrdersFailed;

                    // устанавливаем поставщик маркет-данных
                    _securitiesWindow.SecurityPicker.MarketDataProvider = Trader;
                }

                Trader.Sandbox = IsSandbox;
                //Trader.SandboxSecurities = IsSandbox ? GetSandboxSecurities() : null;
                Trader.ConsumerKey    = ConsumerKey;
                Trader.ConsumerSecret = secret;

                Trader.Connect();
            }
            else
            {
                Trader.Disconnect();
            }
        }
        private void ConnectClick(object sender, RoutedEventArgs e)
        {
            var secret = PwdBox.Password;

            if (!IsConnected)
            {
                if (ConsumerKey.IsEmpty())
                {
                    MessageBox.Show(this, LocalizedStrings.Str3689);
                    return;
                }
                if (secret.IsEmpty())
                {
                    MessageBox.Show(this, LocalizedStrings.Str3690);
                    return;
                }

                if (Trader == null)
                {
                    // create connector
                    Trader = new ETradeTrader();

                    try
                    {
                        Trader.AccessToken = null;

                        var token = OAuthToken.Deserialize(Properties.Settings.Default.AccessToken);
                        if (token != null && token.ConsumerKey.ToLowerInvariant() == ConsumerKey.ToLowerInvariant())
                        {
                            Trader.AccessToken = token;
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(this, LocalizedStrings.Str3691Params.Put(ex));
                    }

                    Trader.LogLevel = LogLevels.Debug;

                    _logManager.Sources.Add(Trader);

                    // subscribe on connection successfully event
                    Trader.Connected += () => this.GuiAsync(() =>
                    {
                        Properties.Settings.Default.AccessToken = Trader.AccessToken.Serialize();
                        OnConnectionChanged(true);
                    });

                    // subscribe on connection error event
                    Trader.ConnectionError += error => this.GuiAsync(() =>
                    {
                        OnConnectionChanged(Trader.ConnectionState == ConnectionStates.Connected);
                        MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959);
                    });

                    Trader.Disconnected += () => this.GuiAsync(() => OnConnectionChanged(false));

                    // subscribe on error event
                    Trader.Error += error =>
                                    this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2955));

                    // subscribe on error of market data subscription event
                    Trader.MarketDataSubscriptionFailed += (security, type, error) =>
                                                           this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2956Params.Put(type, security)));

                    Trader.NewSecurities += securities => _securitiesWindow.SecurityPicker.Securities.AddRange(securities);
                    Trader.NewMyTrades   += trades => _myTradesWindow.TradeGrid.Trades.AddRange(trades);
                    Trader.NewOrders     += orders => _ordersWindow.OrderGrid.Orders.AddRange(orders);
                    Trader.NewStopOrders += orders => _stopOrdersWindow.OrderGrid.Orders.AddRange(orders);
                    Trader.NewPortfolios += portfolios =>
                    {
                        // subscribe on portfolio updates
                        portfolios.ForEach(Trader.RegisterPortfolio);

                        _portfoliosWindow.PortfolioGrid.Portfolios.AddRange(portfolios);
                    };
                    Trader.NewPositions += positions => _portfoliosWindow.PortfolioGrid.Positions.AddRange(positions);

                    // subscribe on error of order registration event
                    Trader.OrdersRegisterFailed += OrdersFailed;
                    // subscribe on error of order cancelling event
                    Trader.OrdersCancelFailed += OrdersFailed;

                    // subscribe on error of stop-order registration event
                    Trader.StopOrdersRegisterFailed += OrdersFailed;
                    // subscribe on error of stop-order cancelling event
                    Trader.StopOrdersCancelFailed += OrdersFailed;

                    Trader.MassOrderCancelFailed += (transId, error) =>
                                                    this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str716));

                    // set market data provider
                    _securitiesWindow.SecurityPicker.MarketDataProvider = Trader;
                }

                Trader.Sandbox = IsSandbox;
                //Trader.SandboxSecurities = IsSandbox ? GetSandboxSecurities() : null;
                Trader.ConsumerKey    = ConsumerKey;
                Trader.ConsumerSecret = secret;

                Trader.Connect();
            }
            else
            {
                Trader.Disconnect();
            }
        }
Exemple #4
0
        private void ConnectClick(object sender, RoutedEventArgs e)
        {
            var pwd = PwdBox.Password;

            if (!IsConnected)
            {
                if (Username.IsEmpty())
                {
                    MessageBox.Show(this, LocalizedStrings.Str3751);
                    return;
                }
                if (pwd.IsEmpty())
                {
                    MessageBox.Show(this, LocalizedStrings.Str2975);
                    return;
                }

                if (Trader == null)
                {
                    // создаем подключение
                    Trader = new CQGTrader {
                        LogLevel = LogLevels.Debug
                    };

                    _logManager.Sources.Add(Trader);

                    // подписываемся на событие успешного соединения
                    Trader.Connected += () =>
                    {
                        this.GuiAsync(() => OnConnectionChanged(true));

                        Trader.StartExport();
                    };

                    // подписываемся на событие разрыва соединения
                    Trader.ConnectionError += error => this.GuiAsync(() =>
                    {
                        OnConnectionChanged(Trader.ConnectionState == ConnectionStates.Connected);
                        MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959);
                    });

                    Trader.Disconnected += () => this.GuiAsync(() => OnConnectionChanged(false));

                    // подписываемся на ошибку обработки данных (транзакций и маркет)
                    Trader.ProcessDataError += error =>
                                               this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2955));

                    // подписываемся на ошибку подписки маркет-данных
                    Trader.MarketDataSubscriptionFailed += (security, type, error) =>
                                                           this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2956Params.Put(type, security)));

                    Trader.NewSecurities += securities => _securitiesWindow.SecurityPicker.Securities.AddRange(securities);
                    Trader.NewMyTrades   += trades => _myTradesWindow.TradeGrid.Trades.AddRange(trades);
                    Trader.NewOrders     += orders => _ordersWindow.OrderGrid.Orders.AddRange(orders);
                    Trader.NewStopOrders += orders => _stopOrdersWindow.OrderGrid.Orders.AddRange(orders);
                    Trader.NewPortfolios += portfolios =>
                    {
                        // регистрирует портфели на обновление данных
                        portfolios.ForEach(Trader.RegisterPortfolio);

                        _portfoliosWindow.PortfolioGrid.Portfolios.AddRange(portfolios);
                    };
                    Trader.NewPositions += positions => _portfoliosWindow.PortfolioGrid.Positions.AddRange(positions);

                    // подписываемся на событие о неудачной регистрации заявок
                    Trader.OrdersRegisterFailed += OrdersFailed;
                    // подписываемся на событие о неудачном снятии заявок
                    Trader.OrdersCancelFailed += OrdersFailed;

                    // подписываемся на событие о неудачной регистрации стоп-заявок
                    Trader.StopOrdersRegisterFailed += OrdersFailed;
                    // подписываемся на событие о неудачном снятии стоп-заявок
                    Trader.StopOrdersCancelFailed += OrdersFailed;

                    // устанавливаем поставщик маркет-данных
                    _securitiesWindow.SecurityPicker.MarketDataProvider = Trader;
                }

                Trader.Connect();
            }
            else
            {
                Trader.Disconnect();
            }
        }