работа со SmartCOM: System.NullReferenceException


работа со SmartCOM: System.NullReferenceException
Atom
8/18/2010


Добрый день!

Только осваиваю библиотеку применительно к SmartCOM. Для разработки
пользуюсь SmartCOM2, S# 2.0.1 и MS Visual C# 2010 экспресс выпуск, ОС
лицензионная Windows 7 х64.

SmartCOM и SmartTrader установлены, в SmartTrader настроил параметры
демо-счёта - соединение идёт нормально.

В MSVC# открываю решение, запускаю проект SampleSmart или любой из
тех что предназначены для SmartCOM, ввожу login и pass, нажимаю
подключить и вылетает сообщение об исключении:
System.NullReferenceException: ссылка на объект не указывает на
экземпляр объекта, и дальше ещё текст.

Что за ошибка? Процесс SmartCOM2 работает, исходники я не трогал.

Вот ещё выложил скриншот с ошибкой, может что-то прояснит.

http://narod.ru/disk/23819109000/ScreenShot.jpg.html


Заранее благодарю за ответ и большое спасибо за библиотеку!

Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 8/18/2010
Reply


Судя по ошибки падает на обработчике новых портфелей. Конкретнее
сказать не могу, с тестовым счетом не работал. Поставьте точку
останова на обработчик NewPortfolios. А вообще все это странно.
Портфели должны приходить только после запуска экспорта (кнопка
Экспорт). Видимо ребята из АйТи что-то еще не доделали для демо
доступа.

Thanks:

Антон Сухов

Avatar
Date: 8/18/2010
Reply


this.Trader.NewPortfolios += portfolios =>
{
// регистрирует портфели на обновление данных

portfolios.ForEach(this.Trader.RegisterPortfolio); //
сюда ставил стоп
this.GuiAsync(() =>
_portfoliosWindow.Portfolios.AddRange(portfolios));

Ставил стоп по Вашей рекомендации, но до него дело не доходит, ошибка
вылетает, программа дальше работает, но там везде пусто.

Как быть? Реального счёта пока нет в айти инвест..
Thanks:

Mikhail Sukhov

Avatar
Date: 8/18/2010
Reply


Завтра гляну, что там за чехарда.

Thanks:

Mikhail Sukhov

Avatar
Date: 8/19/2010
Reply


Оказывается, эта вещь и вечером работает, только торговать не дает...
Нашел две особенности. Во-первых, демо доступ располагается по другому
адресу. Его надо задавать. Во-вторых, SmartTrader не совсем корректно
обрабатывает демо счет (исправлю в 2.3). Вообщем, вот код, как надо
создавать шлюз под демо счет:

this.Trader = new SmartTrader(this.Login.Text, this.Password.Password,
"89.175.35.229".To<IPAddress>()) { IsAutoSaveOrders = false };

Thanks:

Антон Сухов

Avatar
Date: 8/19/2010
Reply


Михаил, благодарю за ответ! Как потестю отпишу результаты!
Thanks:

Антон Сухов

Avatar
Date: 8/19/2010
Reply


Потестил, работает! Спасибо большое, будем работать дальше!
Thanks:

Антон Сухов

Avatar
Date: 8/19/2010
Reply


Возникли ещё проблемки. Запустил сегодня вне торг сессии: нажимаю
портфель - показывает всё как надо, 100000 тестовых денег. Сейчас
запускал во время торгов. Показывает в окне Портфели: название St1061,
а остальное всё по нулям. Открыл сам терминал SmartTrader, посовершал
несколько сделок. Закрыл. Открываю программу-> Сделки: показывает все
сделки которые совершал, цены, суммы, количество - всё нормально, но
там где название инструмента - пусто. В заявках тоже самое -
инструменты пустые.

Где собака порылась? Заранее спасибо!
Thanks:

Mikhail Sukhov

Avatar
Date: 8/19/2010
Reply


Начну с конца.

Во-первых ссылкаhttp://stocksharp.com/doc/help/html/84ca931f-bba3-41e6-9c7f-c93278c61658.htm

(второй пункт). У СмартКома есть большая проблема - не посылает
информацию о заявках. А сделка требует эту инфу (не бывает сделки без
заявки). Поэтому, если торгуете, то торгуйте или через робот, или
через терминал. Потому как робот ваши заявки не увидит. Вернее, даже
не неувидит, а S# сэмулирует заявки, подставив в них пыстые параметры
(чтобы хоть как то вывести информацию). Поэтому и инфа будет пуста...
Разработчики клянуться что поправят это, но воз уже пол года как на
одном месте. ;-/

По нулям - это что? Денег в портфеле? Опять же старый добрый
обработчик NewPortfolios. Там что приходит?

И небольшое уточнее. Терминал - это SmartTrade. А SmartTrader - это
моя шлюз к SmartCOM. Их у меня несколько (QuikTrader, SmartTrader,
AlorTrader, MultiTrader и еще несколько не для публики).

Thanks:

Антон Сухов

Avatar
Date: 8/19/2010
Reply


Ок, немного разбираюсь, спасибо.

Да, показывает что в портфеле плечо=0, вх средства=0, PL=0. Самое
интересное что когда вне торговой сесиии запускал прогу - портфель
отображался как надо, вот в чём загвоздка.
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy