← Voltar

В 4.0.23 не появляется портфель ХХХ-RF-01 для FORTS

Решил попробовать библиотеку S# в действии. В C# это мой первый опыт, до этого занимался Delphi, поэтому возможно что-то делаю не так. Подключаюсь стандартно к событию получения портфелей из S# 4.0.23. Появляется только портфель XXX-MS-01. Портфеля ХХХ-RF-01 (FORTS) нет. Посмотрел пример из 4.0.22. Там все работает и портфель ХХХ-RF-01 появляется Я подключаюсь:


//Определяем, есть ли загруженные соединения
            if (STCCollection.Count > 0)
            {
                connectBox.Text += " Производим подключение... \r\n";
                connectBox.Refresh();
                //Отключаем кнопку соединения
                connectButton.Enabled = false;
                // Определяем, какая строка таблицы соединений выделена
                int tmp = connectGrid.CurrentRow.Index;
                //Загружаем из коллекции соединений нужное соединение
                var temp = STCCollection.Get(tmp);
                //Создаем шлюз
                Trader = new SmartTrader(temp.Login, temp.Password, temp.IP);

                //портфели
                Trader.NewPortfolios += portfolios => portfolios.ForEach(Trader.RegisterPortfolio);
                // подписываемся на событие успешного подключения
                Trader.Connected += () => {arevntMain.Set();};
                //Устанавливаем флаг ожидания соединения
                arevntMain.Reset();
                //Соединяемся
                Trader.Connect();
                //ожидаем события подключения
                arevntMain.WaitOne();
                connectBox.Text += "Подключение было произведено успешно. \r\n";
                connectBox.Text += "Trader.IsConnected=" + Trader.IsConnected.ToString() + "\r\n";
                connectBox.Refresh();
                Trader.StartExport();
            }

Результат на скриншоте. Кто-нибудь может объяснить причины отсутствия портфеля? Может быть причина в изменении этого (код из примера из 4.0.22):


		Portfolios.Trader = _trader;

Este tópico foi útil?

Compartilhar tópico

Comentários (9)

Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário

Кот Матроскин
Кот Матроскин

Вообще-то должен быть. Попробуй


foreach (var portf in portfolios)
                            {
                                Console.WriteLine(portf);
                            }

И выбрать не по бирже, а по имени:

_portfolio = portfolios.FirstOrDefault(p => p.Name == account);
karellin
karellin Autor

Я в отладчике наличие портфеля смотрел, его в принципе нет. В событии приходит только один портфель. К таблице на скриншоте Trader.Portfolios привязан через BindingSource, поэтому на ней должно быть все, что есть...

Кот Матроскин
Кот Матроскин

Хм... Не хватает кода, чтобы понять

karellin
karellin Autor

Ну, это практически весь код, связанный с получением портфелей. Даже securities не заказывал еще. На кнопке Дисконнект висит прекращение экспорта и отсоединение. И таблица формируется с доступными портфелями, и все.

Кот Матроскин
Кот Матроскин

karellin: Может быть причина в изменении этого (код из примера из 4.0.22):

	Portfolios.Trader = _trader;

Portfolios - это из PortfolioComboBox?
Если да, то все-таки мало кода...
Alexander
Alexander

В SampleSmart сколько портфелей?

karellin
karellin Autor

Собрал SampleSmartSMA, показало два портфеля. Ищу ошибку у себя. Надеюсь она не связана с тем, что используется WinForm.

Alexander
Alexander

Конечно не связано :)

karellin
karellin Autor

Все работает. Моя ошибка. Почему-то думал, что событие получения портфелей приходит одно с пачкой портфелей, а судя по всему их приходит столько, сколько всего портфелей в сумме. Отсюда ошибка в логике. Отладчик VS2010 великая вещь. Спасибо за библиотеку, едем дальше.