Stock# + SmartCom для чайников, первый опыт

129 views
Skip to first unread message

Valery

unread,
Sep 12, 2010, 9:01:39 AM9/12/10
to Stock#
думаю это поможет начинающим сделать первые шаги в освоении .....
Респект автору за создание данной библиотеки, но уровень ее далек для
понимания начинающими... сам когда то неплохо писал на процедурных
языках, но тут совсем другое...несколько месяцев изучал С#, создавал
структуру классов, когда увидел Stock#....
Зачем изобретать то, что уже сделано? Оказалось не тут то было...)
Решил попробовать и что из этого вышло:
У меня хороший комп (4 ядра 2.83ГГц и 8 Гиг памяти), Windows 7 x 64
+ .NET FW 4 + VS 2010 Express... установил SmarCom 2 и протестил его
на примерах из ветки АйТи (у меня там реальный счет) работает....
Поставил проект S# 2.4 и начал пробовать:
1. Ни один из проектов не захотел работать, пока не поставил ручками
ссылку на Смартком и не добавил using StClientLib;
Может у меня смартком не тот или установлен не там, но нигде инфы об
этом я не нашел. Да и как я понял 99% инфы под Квик....
2. запустил консольное решение и порадовался - заработало...))
3. поменял эмитента на RIU0, и опять не пошло.... пока не поменял
SecurityTypes.Equity на SecurityTypes.Future....
мелочи конечно, но новичков вышибает из колеи...
Буду пробовать другие решения и комментировать их....

Craft

unread,
Sep 12, 2010, 9:20:23 AM9/12/10
to Stock#
Спасибо, Valery, хорошее начинание.

Valery

unread,
Sep 12, 2010, 9:41:22 AM9/12/10
to Stock#
SampleSmart

Подключение произошло успешно, но ...
1. При нажатии экспорт пришлось значительное время подождать, пока
кнопка не стала красной... как я понимаю это означает, что можно
работать дальше. Или нет?
2. Кликнув на Инструменты открылось окно , где выбрал фьючи , РТС и
конкретный РИУ
3. Дальнейшие действия ничего не дали кроме исключений....
4. Портфель и другие окна были пустые ... будем копать в коде...
5. Попытка отключиться ничего не дала ... пришлось прерывать
принудительно...
6. Анализ кода привел к выводам, что кода в остальных окнах просто
нет - просто вывод окна и все....

Хотелось бы знать, кто еще тестил это решение? Может у меня что не
так ? Или это просто пример недописан? Если так ( я понимаю, что автор
и так загружен), то хотя бы можно написать, что примеры не проверены...

Попробуем следующее решение....

Valery

unread,
Sep 12, 2010, 10:10:17 AM9/12/10
to Stock#
SampleSmartCandles

Так же подключился, кликнул Экспорт и .... Жду... сколько ждать, непонятно
правда.... Периодически пытаюсь посмотреть Инструмент.... Кстати кнопка
Подключиться стала недоступной (серой) . Полагаю Экспорт закончится,
когда эта кнопка вновь станет доступной....
Что происходит во время экспорта непонятно? ... дебаггер тоже молчит, не
ругается....

Думаю не один я это делал, но почему то никто не комментирует ....
Типа пусть другие сами понаступают на грабли...
Короче надо разбираться....

Mikhail Sukhov

unread,
Sep 12, 2010, 10:21:41 AM9/12/10
to Stock#
Демо подключение или реальное? "Ни один из проектов не захотел
работать, " в чем именно выражалось? В выскакивающей ошибке, в падении
примера или просто не реагировании примера на пользовательские
действия?

Valery

unread,
Sep 12, 2010, 3:59:34 PM9/12/10
to Stock#
Еще раз о SampleSmart

При выборе Лукойл на Мамбе все работает в окне инструменты.
При возврате на РИУ заявки выходят и даже видно номера счетов....
Но при вызове стакана получаем
Невозможно вычислить выражение, поскольку текущий поток находится в
состоянии переполнения стека.}
В строке
this.Trader.ProcessDataError += error => this.GuiAsync(() =>
MessageBox.Show(this, error.ToString(), "Ошибка обработки данных"));

Попробуем снова... создадим пару заявок в портфеле..... после этого
портфель стал виден в окне Портфель... чудно однако... но в окнах заявок
так ничего и не видно...

Да еще момент... кнопка Экспорт отрабатывается достаточно долго... Обычно
Смарт также тормозит, когда обновляются справочники... тут похоже то же
самое. Только в Смарте это происходит один раз после установки, а тут
при каждом запуске... не айс, но наверняка есть способ это победить...

Вернемся снова к мамбе .
Выбрали сбер. Стакан открывается без проблем, правда вверх ногами, но
это поправимо...))
Ну тут при создание заявки создается исключение и подвешивает прогу
намертво....
Повторный запуск отказал в заявке - мало средств, но это уже
правильно.... Но в окне Портфель пусто, хотя на фортсе есть поза....
Кнопка Бид-Оффер не работает, но полагаю в выхи это нормально..
Ладно, будем считать, что это решение тест прошло.. можно доработать
....

Valery

unread,
Sep 12, 2010, 4:10:39 PM9/12/10
to Stock#
И на десерт SampleSmartSMA

Попытка подключиться вызвала сразу исключение... Подозреваю, что связано
с новой версией Смарткома..
В диспетчере задач висит процесс, который я никак не могу завершить....
Vshost32-dr2.exe

Завтра попробую со старой....


Mikhail Sukhov

unread,
Sep 12, 2010, 4:33:06 PM9/12/10
to Stock#
>Ну тут при создание заявки создается исключение и подвешивает прогу
>намертво....

Непобедимый эффект WPF. Проге не виснет, просто окно с ошибкой -
модальное, и уходит на другой план. Приходится на Alt+Tab нажимать.

Судя по продвижению, все таки примеры заработали? Если да, то мой
первый вопрос насчет "Ни один из проектов не захотел работать, пока не
поставил ручками
ссылку на Смартком и не добавил using StClientLib; " В чем это
выражалось? Проекты не компилировались? Компилировалось, но возникала
ошибка при запуске? Или все запускалось но не реагировало на
пользовательский ввод.

Mikhail Sukhov

unread,
Sep 12, 2010, 4:34:34 PM9/12/10
to Stock#
>Попытка подключиться вызвала сразу исключение...

Все исключения, ошибки, шаги для воспроизведения - пишите сюда. Потому
что очень сложно догадаться, что за исключение возникло на Вашей
машине.

Valery

unread,
Sep 13, 2010, 4:28:45 PM9/13/10
to Stock#
я хоть и не программист, но стараюсь писать четко...)) Именно не
заработали... при запуске реакция на кнопки =0....)))
так как все же по поводу ссылки - ее нужно добавлять?
у меня на ноуте стоял старый смартком по стандартному пути....с ним
работало без добавления....при переустановке Смарткома все работать
перестало.... я заметил, что изменился путь установки Смарткома... в
связи с чем я хотел бы уточнить, как библиотека находит Смартком? А
она его находит... По пути инсталяции?
:)

> > ....- Скрыть цитируемый текст -
>
> - Показать цитируемый текст -

Mikhail Sukhov

unread,
Sep 13, 2010, 4:39:40 PM9/13/10
to Stock#
> я хоть и не программист, но стараюсь писать четко...))

Лучше просто текст ошибки. Ctrl+C - если запущено не под Debug (как
обычное exe). Или из студии, при наведении на иконку ошибки.

>при переустановке Смарткома все работать перестало....

А на какую версию переставили? Та, которая сейчас бета - 2.0? Или на
1.1.6.2

>в связи с чем я хотел бы уточнить, как библиотека находит Смартком?

Библиотека ее не находит. Смарком сам приходит =) Это такая
особенность COM технологии. Через реестр пути указаны.

Valery

unread,
Sep 13, 2010, 5:06:13 PM9/13/10
to Stock#
И снова SampleSmartSMA

Запустил этот проект на своем старом ноуте с ХР, VS2010 + FW 3.5 +
Smartcom 1162
Забавные ребята из АйТи - новая версия Смарткома ставится по новому
пути ... сразу не заметишь....
Кстати Путь установки могли бы и упростить, а то сначала ставили в
папку <<JSC IC IT Invest>>, а потом в <<IC IT Invest>>.... Не сразу и
заметишь разницу...
Хвала создателю, то бишь автору проекта... выглядит неплохо... правда
свечки грузились несколько минут, думаю тормозит расчетная часть (на
ноуте простой Пень 2Ггц), т.к. нагрузка на проц была почти под
завязку, а сетка не была перегружена... но проверю еще разок после
Повторная попытка запуска сразу меня обломила... сначала мне сказали,
что неверный логин или пароль(что не может быть, т.к. они забиты в
прогу до компиляции...
Потом при повторном клике на Подключиться получил вот это:
_trader.Connect();

Исключение из HRESULT: 0x800706BE
А потом на пол экрана портянка вылезла со списком проблем...
скопировать не смог...

Залез в диспетчер задач и нашел процесс, который завершается только
при закрытии VS ....
Т.е. у меня было запущено 2 копии одновременно... Буду проверять на
будущее...

Кстати кнопка Подключиться работала только на подключение... отключаться
она не пожелала....
В связи с чем и была проблема
Оказалось не совсем в этом... Айти опять отключил серверы может поэтому
и проблема с отключением была....
Не порадовала реакция программы на это... Такое и во время сессии
бывает частенько....Хотя как я полагаю, прога видать пыталась
восстановить связь, как нибудь надо проверить
Еще одно маленькое замечание для автора:
При смене таймфрейма не всегда выполняется масштабирование - не сразу
вьехал, где копать на графике... но это мелочь....
PS. Не все исключения удается копировать, т.к. они не все
копируются....разве что скрин делать...

Valery

unread,
Sep 13, 2010, 5:15:57 PM9/13/10
to Stock#

> Лучше просто текст ошибки. Ctrl+C - если запущено не под Debug (как
> обычное exe). Или из студии, при наведении на иконку ошибки.

буду стараться...

> А на какую версию переставили? Та, которая сейчас бета - 2.0? Или на
> 1.1.6.2

самое смешное что одну и ту же...1162 просто скачал с сайта и поставил
заново ... а пути установки изменились...))

> Библиотека ее не находит. Смарком сам приходит =) Это такая
> особенность COM технологии. Через реестр пути указаны.

тогда непонятно, почему если я не пропишу ссылку и не добавлю using,
то прога Смартком не видит?
Кстати, как я читал, в Смарттрейде вроде встроен СмартКом ... при
переустановке Смарттрейда иногда начинает глючить Смартком... но не
всегда...

Mikhail Sukhov

unread,
Sep 13, 2010, 6:22:58 PM9/13/10
to Stock#
> Хвала создателю, то бишь автору проекта... выглядит неплохо... правда
> свечки грузились несколько минут, думаю тормозит расчетная часть (на

Свечечный компонент взят отсюда http://wpf.amcharts.com/. Версия не
последняя, так что есть вероятность того, что производительность
поднята.

> Повторная попытка запуска сразу меня обломила... сначала мне сказали,
> что неверный логин или пароль(что не может быть, т.к. они забиты в
> прогу до компиляции...

В проге после подключение прописан код очищения поля с паролем. Это
учтено?

> Потом при повторном клике на Подключиться получил вот это:
> _trader.Connect();

Тоесть, один раз нажали на подключиться, затем второй раз? Между этими
кликами прогу перезапускали?

> Залез в диспетчер задач и нашел процесс, который завершается только
> при закрытии VS ....

vshost? Это специальный процесс, он автоматически создается студией.

> Кстати кнопка Подключиться работала только на подключение... отключаться
> она не пожелала....

Все может быть. Пример - он ведь не идеален =)

> Не порадовала реакция программы на это... Такое и во время сессии
> бывает частенько....Хотя как я полагаю, прога видать пыталась
> восстановить связь, как нибудь надо проверить

Должен начать работать ReConnectionManager. Он смотри на два события.
Во первых, что СмартКом живой. Это можно протестить, убив его процесс.
Второе - что течет экспорт (СмартКмо может быть и жив, но при этом сам
потерять соединение). Нужно вызывать метод SetExportTimeOut. Тогда
будет мониториться входящий трафик. Как долго нет известий -
перезапуск СмартКом.

Valery

unread,
Sep 13, 2010, 6:32:36 PM9/13/10
to Stock#
SmartCom v.2 - несовместимость с SampleSmartSMA

Попробовал заменить сабж v.1.1.6.2 на новую бету версию 2
Сразу получил ошибку в проекте ... похоже изменены методы получения
баров...и еще (см. аттач)
Проект со свечками не ругается , но и ни чего не делает... После
Подключитсяничего не происходит... кнопка становится серой, Экспорт ни к
чему не приводит... проц не грузится... точнее наблюдается кратковременная
загрузка проца и чуток сетевого трафика...
Комбобар Инструмент остается пустым...

Завтра верну на старую версию и попробую на Вин 7

Valery

unread,
Sep 13, 2010, 6:38:34 PM9/13/10
to Stock#
Забыл вложить аттач...
блин, а как его добавить то сюда?

Valery

unread,
Sep 13, 2010, 6:43:54 PM9/13/10
to Stock#
> > Повторная попытка запуска сразу меня обломила... сначала мне сказали,
> > что неверный логин или пароль(что не может быть, т.к. они забиты в
> > прогу до компиляции...
>
> В проге после подключение прописан код очищения поля с паролем. Это
> учтено?
понял, не учел ... спасибо

> > Потом при повторном клике на Подключиться получил вот это:
> > _trader.Connect();
>
> Тоесть, один раз нажали на подключиться, затем второй раз? Между этими
> кликами прогу перезапускали?

нет


> > Залез в диспетчер задач и нашел процесс, который завершается только
> > при закрытии VS ....
>
> vshost? Это специальный процесс, он автоматически создается студией.

я имел в виду сам проект...

> Должен начать работать ReConnectionManager.
А для него нужно снова пароль? Он ведь очищается...

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

А если брокер не пускает на сервер? т.е. сервер пингуется, а ответа
нет...

Valery

unread,
Sep 13, 2010, 6:48:35 PM9/13/10
to Stock#

> SmartCom v.2  - несовместимость с  SampleSmartSMA
>
> Попробовал заменить сабж v.1.1.6.2 на новую бету версию 2
> Сразу получил ошибку в проекте ... похоже изменены методы получения
> баров...и еще (см. аттач)

Аттач SmComEX.JPG в разделе файлы... как его сюда присобачить не
знаю...

Mikhail Sukhov

unread,
Sep 13, 2010, 7:30:07 PM9/13/10
to Stock#
Понятно. Видимо Вы используете параллельно S# и ссылку на новый
СмартКОМ. Так не прокатит. Нужно или то или другое. Потому что
метаданные в сборках несовместимы.

Valery

unread,
Sep 14, 2010, 4:44:53 PM9/14/10
to Stock#
> Понятно. Видимо Вы используете параллельно S# и ссылку на новый
> СмартКОМ. Так не прокатит. Нужно или то или другое. Потому что
> метаданные в сборках несовместимы.
Конечно параллельно, а как иначе то? Если я не добавляю ссылку, то S#
просто не находит СмартКом... новый он или старый.... только совсем
старый находил...
и вообще как запретить S# искать Смартком или указать на новый
СмартКом без добавления ссылки?

Mikhail Sukhov

unread,
Sep 14, 2010, 4:56:15 PM9/14/10
to Stock#
У Вас какой версии сейчас установлен СмартКОМ? 2.0?

Valery

unread,
Sep 18, 2010, 5:45:43 PM9/18/10
to Stock#

> У Вас какой версии сейчас установлен СмартКОМ? 2.0?

вернулся на старую версию 1162(пока смысла нет без поддержки S#), но
его тоже не находит...
приходится ручками ссылку добавлять...

Mikhail Sukhov

unread,
Sep 19, 2010, 11:03:48 AM9/19/10
to Stock#
У меня путь к СмартКом такой - "C:\Program Files (x86)\IC IT Invest
\SmartCOM 2\" У Вас такой же?
Reply all
Reply to author
Forward
0 new messages