Проблема с Coonectom
Atom
16.03.2012


Добрый день, пытаюсь сесть на Вашу библиотеку. Смотрю примеры.
Пример SampleSmart отлично коннектится и работает с моим демосчетом
А пример SampleSmartSMA при нажатии на кнопку Connect выдает следующую ошибку

System.ComponentModel.Win32Exception (0x80004005): Отказано в доступе

в System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited)

в System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited)

в System.Diagnostics.Process.Kill()

в StockSharp.Smart.SmartTrader.KillSmartComProcess()

в StockSharp.Smart.SmartTrader.OnConnect()


В чем может быть дело?

Теги:


Спасибо:


< 1 2 
Marco

Фотография
Дата: 10.10.2012
Ответить


Mikhail Sukhov Перейти

Подключайтесь через СтокШарп http://stocksharp.com/broker/ Бесплатное подключение к Плазе.[biggrin]

Вы умеете вести переговоры. (c) [biggrin]
Спасибо:

Цифровой

Фотография
Дата: 10.10.2012
Ответить


Mikhail Sukhov Перейти

1) Можно сделать флаг для опционального убивания процесса СмартКом (что, кстати, возможно и сейчас, достаточно переопределить метод SmartTrader.OnConnect). На разрыв соединения это не повлияет, но первое подключение возможно станет быстрее и стабильнее.

Да, слона то в виде virtual я и не приметил...
Спасибо, буду тестить!

Вопрос сразу, не отходя от кассы.
Раз SmartCOM такой нестабильный, а я пока планирую связать с ним свои ближайшие торговые амбиции,
можно ли получить исходный код связанный именно со SmartCOM и SmartTrader с тем,
чтобы иметь лучшие возможности по поиску и исправлению ошибок?
Взамен могу предложить идеи по улучшению SmartTrader, если они конечно будут :-)
Спасибо:

Mikhail Sukhov

Фотография
Дата: 11.10.2012
Ответить


Цифровой Перейти

Раз SmartCOM такой нестабильный, а я пока планирую связать с ним свои ближайшие торговые амбиции,
можно ли получить исходный код связанный именно со SmartCOM и SmartTrader с тем,
чтобы иметь лучшие возможности по поиску и исправлению ошибок?
Взамен могу предложить идеи по улучшению SmartTrader, если они конечно будут :-)


Был уже один помощник, который так же говорил про СмартКом. Получил исходники, и больше мы его не видели.

Так что теперь только через время и кодеплекс. Время покажет надежность, кодеплекс - навык.[wink]
Спасибо:

Цифровой

Фотография
Дата: 11.10.2012
Ответить


Мудро
Спасибо:

dvoris

Фотография
Дата: 06.12.2012
Ответить


Цитата:
1. Как минимум это не позволяет к нему подключиться из двух разных программ.
Например, если хочется возложить скачивание маркет-данных на Гидру, а торговать из другой используя тот же SmartCOM.


Не получится, т.к. при втором подключении к службе SmartCOM первое дисконнектится.

Кроме этого, некоторое время назад в АйТи что-то подкрутили, и изредка случаются дисконнекты, если во время работы (с другой машины) происходит подключение с этого же, либо даже с дополнительного (!) логина, зарегистрированного на одного клиента. Чёткой системы не уловил, техподдержка АйТи ничем не помогла. Возможно, борьба с мультиподключениями или настройки безопасности, а точнее некорректная их реализация. Благо, мне сейчас не критично, но вообще, конечно, нужно разбираться с этим.

Убийство процесса лучше оставить, хотя зависаний службы не припомню, это надо сильно постараться, производя какие-то нестандартные действия. Но можно и отключить рестарт службы (переопределением метода SmartTrader.Connect), если хочется сделать реконнект быстрым. А, по-хорошему, в SmartTrader можно бы распознавать зависание SmartCOM (предлагаю подумать как именно).

В остальном проблем с реконнектом не замечал, лично у меня он работоспособный на 99.5%. Конечно, с некоторыми костылями вроде переподписывания на события и т.д. Вообще, это рекомендованное разработчиками SmartCOM поведение - отписаться и подписаться снова (CancelTicks+ListenTicks,CancelBidAsk+ListenQuotes и т.д.) Так что, возможно, эти "костыли", которые и не костыли, стоит прописать в SmartTrader.

P.S. Михаил, а кому давали исходники? Я готов потратить время и оттюнить реконнект в SmartTrader, т.к. сам его использую и имею опыт с API SmartCom. Тут и другие заинтересованные есть, вроде бы. Не пойму зачем в позу вставать - "сам делать не буду и вам не дам". По-моему, все мы тут обеими руками за развитие S#.
Все - в смысле старожилы, конечно, а не все при/про-ходящие.
Спасибо: Геннадий Ванин (Gennady Vanin) Цифровой

andy_baka_

Фотография
Дата: 06.12.2012
Ответить


Насколько я помню, это вполне возможно. Единственное, что для того, чтобы разрешить множественные подключения нужно звонить в АйТиИнвест и просить чтобы они сняли ограничение на количество конектов с одного адреса. По крайней мере, у меня работает два конекта и ничего не происходит - один SmartTrade, второй - из программы.
Спасибо:

dvoris

Фотография
Дата: 06.12.2012
Ответить


andy_baka_ Перейти
Насколько я помню, это вполне возможно. Единственное, что для того, чтобы разрешить множественные подключения нужно звонить в АйТиИнвест и просить чтобы они сняли ограничение на количество конектов с одного адреса. По крайней мере, у меня работает два конекта и ничего не происходит - один SmartTrade, второй - из программы.


Естественно, ограничение по айпи выключено у брокера, не в этом дело.
SmartTrade не использует службу SmartCOM и поэтому может одновременно работать с приложением, использующим SmartCOM.
Не смогут работать одновременно на одной машине именно два разных приложения, использующих SmartCOM.
Для этого у нас StockSharp, который подключается к SmartCOM один, а уже на StockSharp можно навешивать модули с логикой.
Спасибо:

Цифровой

Фотография
Дата: 20.12.2012
Ответить


Спасибо за ответы!

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

2. По поводу использования SmartCom в двух программах на одном компьютере - у меня так и не заработало (по крайней мере со StockSharp)
и от концепции Hydra + "Программа Анализатор Регистратор Сделок" я отказался, так что у меня сейчас All-In-One пока со StockSharp.

3. Проблема в том, как верно заметил dvoris, что SmartTrader от StockSharp действительно отпадает раза 3 в день.
Идея, что это связано с подключением по второму логину - интересная, можно попробовать.
Может быть проблемы с настройками переподключения.
В документации сказано, что SmartCom дисконнектится после ожидания ответа на запрос в течение 2 секунд (можно увеличить).
Может быть стоит увеличить таймаут. Может быть неправильно настроены попытки переподлючения или оно невключено.

4. Начал баловаться непосредственно со SmartCom, т.е. писать свою обертку.
С подключением заметил такую проблему:
если на SmartCom вызвать Connect в программе, а потом эта программа завершится (например, аварийно),
то коннекция выживет и не даст законнектится снова при повторном запуске программы (какая-то ошибка сокета).
Но можно каждый раз при запуске программы пытаться делать Disconnect. Тогда коннекция-труп умрет и можно будет сделать новый Connect.
Есть предположение, что тогда не придется убивать процесс SmartCom.
Спасибо:

Mikhail Sukhov

Фотография
Дата: 20.12.2012
Ответить


Цифровой Перейти

и от концепции Hydra + "Программа Анализатор Регистратор Сделок" я отказался, так что у меня сейчас All-In-One пока со StockSharp.


Вот именно поэтому и я решил организовать проект http://stocksharp.com/forum/3166/RoutingServer/

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

В свое время ИТ инвест уже убивал смартком, и инициировал новый АПИ. Даже как-то присылал нам описание. Но время прошло, а его так и нет, и судя по всему даже никто толком и не использовал. Мое мнение такое, что сейчас уже смысла нет что либо писать под смартком. Они наконец-то выпустили СмартИкс и надеюсь теперь дойдут руки до переделок АПИ. Лучше конечно убить СмартКом напрочь, чем мучать и себя и юзеров.
Спасибо:

Aleksey24

Фотография
Дата: 11.03.2013
Ответить


Периодически вылетает ошибка при подключении, может кто подскажет в чем проблема
Происходит следующее:

Все запускаю от Админестратора.
Установлена SmartCOM 2.2.116.1020 от 14.02.2012
Экспериментировал с подключением библиотек S# (версия 4.1.5, версия 4.1.8, сборка 23281)
Служба SmartCom2 отключена (тип запуска - вручную). В столбце (тип запуска) - пусто.
Сначала запускаю TestConnect_2_2 с сайта ITinvest.
1. Клик "Create" запускает службу SmartCom2.
2. Клик "Connect" Connected со SmartCom. При этом (с постоянно запущенной службой SmartCom2) нажимая "Disconnect" и "Connect" по очереди много раз не создается никаких ошибок.
3. В итоге отключаю TestConnect_2_2, но оставляю службу SmartCom2 запущенной. Запускаю SampelSmartCandels (пример от S#) -> появляется ошибка


System.ComponentModel.Win32Exception (0x80004005): Отказано в доступе

в System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited)

в System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited)

в System.Diagnostics.Process.Kill()

в StockSharp.Smart.SmartTrader.KillSmartComProcess()

в StockSharp.Smart.SmartTrader.OnConnect()



после клика на ОК кнопка Export разблокируется и приходят инструменты и т.д.
4. Закрыв приложение SampelSmartCandels и запустив его заново -> выскакивает та же самая ошибка, но уже без подключения, без экспорта.. Служба SmartCom2 включена.
5. Запуская приложение SampelSmartCandels постоянно возникает ошибка, и появление экспорта происходит циклично через подключение.
6. Если отключить службу SmartCom2 и запустить приложение SampelSmartCandels -> запускается без сбоев первый раз, после закрытия приложения служба SmartCom2 остается запущенной. И соответственно при запуске приложения снова появляется ошибка. После этого (с запущенной службой SmartCom2) TestConnect_2_2 запускается и работает без ошибок.
Буду искать дальше ошибку, но все таки было бы хорошо если кто то поборол такую ошибку и тут чирканул решение



НАШЕЛ ПРИЧИНУ, может кому поможет в дальнейшем:
При повторном запуске от Админа примера SampleSmartCandles появлялась ошибка 800400...15 (точный номер уже непомню).
Причина ошибки в установке .NET Framework 4 и 4.5. Устанавливаются в первый раз на комп. нормально без ошибок (что и сбивает с толку [confused] ). После обновления NET Framework через центр обновлений Windows все ошибки исчезли. Все запускается и работает!!!! [biggrin]
Спасибо: Axell
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy