Перейти к содержимому


Фото
* * * - - 5 голосов

SmartCOM 3.0


  • Закрытая тема Тема закрыта
119 ответов в этой теме

#1 Андрей Осташов

Андрей Осташов

    Активный участник

  • Трейдеры
  • PipPipPip
  • 935 сообщений

Отправлено 16 May 2013 - 11:19 AM

Уважаемые SmartCOM-разработчики!
Вашему вниманию предлагается предрелизная бета SmartCOM 3.0. Она прошла аппробацию рядом клиентов ITinvest, включая высокочастотников. От них получены положительные отзывы.

Хотелось бы обратить внимание на то, что новая версия клиентского интерфейса SmartCOM 3 работает во многопоточном окружении (Multithreaded Apartments), в связи с этим:
- Нужно быть готовым к тому, что все клиентские события (AddPorfolio, AddTrade.. и другие) могут(и будут) вызываться из разных потоков.
- Для наилучшего быстродействия в SmartCOM3 отсутствует дополнительная буферизация данных, благодаря этому все события вызываются напрямую, сразу же после получения данных, необходимо избегать долгих блокировок при обработке этих событий, использовать при необходимости очереди.
- Все методы интерфейса SmartCOM3 потоко-безопасны. Нет необходимости использовать дополнительную синхронизацию для работы с ними.
- Поддерживается возможность вызова методов интерфейса непосредственно из обработчиков событий.
Подробнее про многопоточное окружение COM можно найти здесь:
http://msdn.microsof...s693421(v=vs.85).aspx

Метод GetMoneyAccount([in] BSTR portfolioID, [out, retval] BSTR *moneyAccount) предназначен для получения идентификатора единого денежного счета денежного счета по аккаунту. Он будет актуален в новой торговой системе. Сейчас его лучше не использовать.

Удален метод CancelAllOrders

В файлах:
SmartCOM3Setup - 32-битная сборка
SmartCOM3Setup_x64 - 64-битная сборка

Особо отмечу SmartCOMTest - пример, разработанный Noxer-ом. Для тех, кто не в теме: Noxer - легендарный скальпер, победитель ЛЧИ-2006. Разработаннные им приводы завоевали широкую популярность в узких кругах :-)

Просьба высказывать замечания и предложения. Ответы будут максимально оперативными.
  • PMaster и MliscaBlism это понравилось

#2 Digital

Digital

    Новичок

  • Трейдеры
  • Pip
  • 26 сообщений

Отправлено 16 May 2013 - 03:09 PM

Сделайте с логами что-нибудь, растут как на дрожжах. logLevel стоит = 1. За час около гигабайта набежало. Причем забит мусором:


2013-May-16 16:18:53.791553 [TID=1628] - jelly: : Guide (Securities) data ready, available 6293 bytes
...

2013-May-16 16:18:59.690890 [TID=11b4] - jelly: : Orders data ready, available 712 bytes
...

И таких строк процентов 90.


Разобрался, моя ошибка. Кстати, чем разные LogLevel отличаются?

#3 SmartCOM

SmartCOM

    Активный участник

  • Moderators
  • 732 сообщений

Отправлено 16 May 2013 - 05:03 PM

LOG_FATAL = 1 только фатальные ошибки
LOG_ERROR = 2 все ошибки
LOG_WARN = 3 + предупреждения
LOG_INFO = 4 + информационные сообщения, позволяют увидеть что происходит
LOG_TRACE = 5 + трассировка вызовов интерфейса + трассировка вызовов событий + трассировка http запросов
LOG_DEBUG = 6 + отладочные сообщения, работа сокетов, получения/отправка/разбор данных в подробностях

Сделайте с логами что-нибудь, растут как на дрожжах. logLevel стоит = 1. За час около гигабайта набежало. Причем забит мусором:


2013-May-16 16:18:53.791553 [TID=1628] - jelly: : Guide (Securities) data ready, available 6293 bytes
...

2013-May-16 16:18:59.690890 [TID=11b4] - jelly: : Orders data ready, available 712 bytes
...

И таких строк процентов 90.


Разобрался, моя ошибка. Кстати, чем разные LogLevel отличаются?



#4 contra

contra

    Новичок

  • Трейдеры
  • Pip
  • 9 сообщений

Отправлено 16 May 2013 - 06:49 PM

УРА!!! Спасибо вам добрые люди
SmartCOM и
Андрей Осташов

#5 SergeyEgorov

SergeyEgorov

    Новичок

  • Вольные разработчики
  • Pip
  • 38 сообщений

Отправлено 17 May 2013 - 06:06 AM

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

#6 SmartCOM

SmartCOM

    Активный участник

  • Moderators
  • 732 сообщений

Отправлено 17 May 2013 - 08:53 AM

Да, можно. Более того, 3.0 можно одновременно использовать как в 32-битной, так и 64-битной версии.

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



#7 SergeyEgorov

SergeyEgorov

    Новичок

  • Вольные разработчики
  • Pip
  • 38 сообщений

Отправлено 17 May 2013 - 09:18 AM

Это только у меня тестовое приложение падает?
Размещенное изображение

#8 Николай Морошкин

Николай Морошкин

    Гуру QScalp

  • Вольные разработчики
  • Pip
  • 62 сообщений

Отправлено 17 May 2013 - 09:53 AM

Это только у меня тестовое приложение падает?


Судя по ошибке на заднем плане у вас установлен SmartCOM для х64, а приложение это для х86.

#9 SergeyEgorov

SergeyEgorov

    Новичок

  • Вольные разработчики
  • Pip
  • 38 сообщений

Отправлено 17 May 2013 - 10:23 AM

Да. Точно. Заработало.

#10 funt1k

funt1k

    Новичок

  • Трейдеры
  • Pip
  • 8 сообщений

Отправлено 21 May 2013 - 03:49 PM

Добрый день.

что означает эта ошибка, обнаруженная в логах

2013-May-21 16:40:01.326529 [TID=1de8] - ERROR : COM: (null), Неправильный указатель, source (null)

?

#11 SmartCOM

SmartCOM

    Активный участник

  • Moderators
  • 732 сообщений

Отправлено 21 May 2013 - 06:10 PM

На самом деле это не очень хорошая ошибка. Я так, понимаю, что вскоре после этого смартком "умер"? Можете выслать полный лог за тот день на smartcom@itinvest.ru?

Добрый день.

что означает эта ошибка, обнаруженная в логах ?

Отправьте, пожалуйста, полный лог на smartcom@itinvest.ru

Добрый день.

что означает эта ошибка, обнаруженная в логах ?



#12 Digital

Digital

    Новичок

  • Трейдеры
  • Pip
  • 26 сообщений

Отправлено 21 May 2013 - 06:26 PM

У меня такая же постоянно ошибка - смартком не умирает. Перед этим делаю отписку от тиков и стаканов, и затем подписку.

#13 funt1k

funt1k

    Новичок

  • Трейдеры
  • Pip
  • 8 сообщений

Отправлено 21 May 2013 - 06:42 PM

К сожалению, смерти смарткома не дождался. к тому же и логи удалил, но удалось воспроизвести ошибку...она появляется, если для "SmartCOM3Lib" установить false для свойства "Копировать локально" в ссылках проекта и исчезает, если Interop.SmartCOM3Lib копируется локально. Лог отправлю на smartcom@itinvest.ru.
К тому же, у меня почему то перестал работать метод GetBars.

#14 funt1k

funt1k

    Новичок

  • Трейдеры
  • Pip
  • 8 сообщений

Отправлено 21 May 2013 - 06:55 PM

и может вернете CancelAllOrders()?

#15 Digital

Digital

    Новичок

  • Трейдеры
  • Pip
  • 26 сообщений

Отправлено 23 May 2013 - 10:04 AM

Вот лог с ошибкой, как просили (закрыл номер счета только), коннект к серверам ай-ти идет через прокси:

2013-May-23 10:35:32.167713 [TID=928] - INFO : SmartCOM3 client module (v3.0.35.1527) logging started..
2013-May-23 10:35:32.174713 [TID=928] - INFO : Logging level is set to 4 value.
2013-May-23 10:35:32.174713 [TID=928] - INFO : Using maximum 7 worker threads to process data.
2013-May-23 10:35:32.174713 [TID=928] - INFO : Store logs in .......
2013-May-23 10:35:33.945814 [TID=928] - INFO : Trying to authenticate in 192.168.137.1:8090 using SSL connection (login BPXXXXX)
2013-May-23 10:35:33.946814 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:35:34.114824 [TID=928] - jelly: : SockErr 'Create SSL session failed': 100, file: src\jelly_http_logon.cpp, line 50
2013-May-23 10:35:34.114824 [TID=928] - jelly: : Create SSL session failed for channel 0xCFC28C0, code 1
2013-May-23 10:35:34.114824 [TID=928] - jelly: : Destroying https channel..0xCFC28C0
2013-May-23 10:35:34.946872 [TID=928] - WARN : SSL connection failed, no problem, trying to connect without SSL
2013-May-23 10:35:34.947872 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:35:34.948872 [TID=928] - jelly: : Http channel 0xCFC28C0 OK..
2013-May-23 10:35:35.116881 [TID=ab0] - jelly: : Error response -1002:
Bad user name or password
2013-May-23 10:35:35.116881 [TID=ab0] - ERROR : Login failed:
Bad user name or password
:-1002
2013-May-23 10:35:35.150883 [TID=ab0] - jelly: : Destroying http channel..0xCFC28C0
2013-May-23 10:36:00.207316 [TID=928] - INFO : Trying to authenticate in 192.168.137.1:8090 using SSL connection (login BPXXXXX)
2013-May-23 10:36:00.209317 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:00.349325 [TID=928] - jelly: : SockErr 'Create SSL session failed': 100, file: src\jelly_http_logon.cpp, line 50
2013-May-23 10:36:00.350325 [TID=928] - jelly: : Create SSL session failed for channel 0xCFCD7D8, code 1
2013-May-23 10:36:00.350325 [TID=928] - jelly: : Destroying https channel..0xCFCD7D8
2013-May-23 10:36:01.210374 [TID=928] - WARN : SSL connection failed, no problem, trying to connect without SSL
2013-May-23 10:36:01.211374 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:01.211374 [TID=928] - jelly: : Http channel 0xCFCD7D8 OK..
2013-May-23 10:36:02.393441 [TID=1148] - INFO : Login OK, loading securities..
2013-May-23 10:36:02.394442 [TID=1148] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:02.394442 [TID=1148] - jelly: : Http channel 0xCFC2B68 OK..
2013-May-23 10:36:02.394442 [TID=1148] - jelly: : Destroying http channel..0xCFCD7D8
2013-May-23 10:36:04.030535 [TID=13ec] - INFO : Securities table loaded OK
2013-May-23 10:36:07.373726 [TID=928] - INFO : StServer::GetPrortfolioList method
2013-May-23 10:36:07.375726 [TID=928] - INFO : StServer::ListenPortfolio method (Portfolio: BPXXXXX-RF-01)
2013-May-23 10:36:07.376727 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:07.376727 [TID=928] - jelly: : Http channel 0xCFE9FE0 OK..
2013-May-23 10:36:07.378727 [TID=928] - INFO : StServer::GetMyOrders method (Portfolio: BPXXXXX-RF-01, only active 1
2013-May-23 10:36:07.378727 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:07.378727 [TID=928] - jelly: : Http channel 0xCFAE680 OK..
2013-May-23 10:36:07.379727 [TID=928] - INFO : StServer::GetMyTrades method (Portfolio: BPXXXXX-RF-01)
2013-May-23 10:36:07.379727 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:07.379727 [TID=928] - jelly: : Http channel 0xCFAEA50 OK..
2013-May-23 10:36:07.382727 [TID=928] - INFO : StServer::CancelTicks method (Symbol: RTS-6.13_FT)
2013-May-23 10:36:07.382727 [TID=928] - INFO : StServer::CancelQuotes method (Symbol: RTS-6.13_FT)
2013-May-23 10:36:07.383727 [TID=928] - INFO : StServer::CancelBidAsks method (Symbol: RTS-6.13_FT)
2013-May-23 10:36:07.387727 [TID=928] - INFO : StServer::GetTrades method (Symbol: RTS-6.13_FT, Since 2013:5:23 10:37:7, Count 25000)
2013-May-23 10:36:07.388727 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:07.388727 [TID=928] - jelly: : Http channel 0xCFAEB08 OK..
2013-May-23 10:36:07.389727 [TID=928] - INFO : StServer::ListenBidAsks method (Symbol: RTS-6.13_FT)
2013-May-23 10:36:07.389727 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:07.389727 [TID=928] - jelly: : Http channel 0xCFAEBA0 OK..
2013-May-23 10:36:07.889756 [TID=928] - INFO : StServer::ListenTicks method (Symbol: RTS-6.13_FT)
2013-May-23 10:36:07.890756 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:07.890756 [TID=928] - jelly: : Http channel 0xCFC8218 OK..
2013-May-23 10:36:08.391785 [TID=928] - INFO : StServer::ListenQuotes method (Symbol: RTS-6.13_FT)
2013-May-23 10:36:08.391785 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:08.391785 [TID=928] - jelly: : Http channel 0x12A00298 OK..
2013-May-23 10:36:08.892813 [TID=928] - INFO : StServer::CancelTicks method (Symbol: Si-6.13_FT)
2013-May-23 10:36:09.266835 [TID=928] - INFO : StServer::CancelQuotes method (Symbol: Si-6.13_FT)
2013-May-23 10:36:09.267835 [TID=928] - INFO : StServer::CancelBidAsks method (Symbol: Si-6.13_FT)
2013-May-23 10:36:09.268835 [TID=928] - INFO : StServer::GetTrades method (Symbol: Si-6.13_FT, Since 2013:5:23 10:37:9, Count 25000)
2013-May-23 10:36:09.268835 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:09.269835 [TID=928] - jelly: : Http channel 0x12A12470 OK..
2013-May-23 10:36:09.270835 [TID=928] - INFO : StServer::ListenBidAsks method (Symbol: Si-6.13_FT)
2013-May-23 10:36:09.270835 [TID=928] - INFO : StServer::ListenTicks method (Symbol: Si-6.13_FT)
2013-May-23 10:36:09.271835 [TID=928] - INFO : StServer::ListenQuotes method (Symbol: Si-6.13_FT)
2013-May-23 10:36:09.273835 [TID=928] - INFO : StServer::CancelTicks method (Symbol: MIX-6.13_FT)
2013-May-23 10:36:09.274835 [TID=928] - INFO : StServer::CancelQuotes method (Symbol: MIX-6.13_FT)
2013-May-23 10:36:09.275835 [TID=928] - INFO : StServer::CancelBidAsks method (Symbol: MIX-6.13_FT)
2013-May-23 10:36:09.276835 [TID=928] - INFO : StServer::GetTrades method (Symbol: MIX-6.13_FT, Since 2013:5:23 10:37:9, Count 25000)
2013-May-23 10:36:09.276835 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:09.277835 [TID=928] - jelly: : Http channel 0x12A24938 OK..
2013-May-23 10:36:09.277835 [TID=928] - INFO : StServer::ListenBidAsks method (Symbol: MIX-6.13_FT)
2013-May-23 10:36:09.278835 [TID=928] - INFO : StServer::ListenTicks method (Symbol: MIX-6.13_FT)
2013-May-23 10:36:09.279835 [TID=928] - INFO : StServer::ListenQuotes method (Symbol: MIX-6.13_FT)
2013-May-23 10:36:09.280835 [TID=928] - INFO : StServer::CancelTicks method (Symbol: SBRF-6.13_FT)
2013-May-23 10:36:09.281835 [TID=928] - INFO : StServer::CancelQuotes method (Symbol: SBRF-6.13_FT)
2013-May-23 10:36:09.282836 [TID=928] - INFO : StServer::CancelBidAsks method (Symbol: SBRF-6.13_FT)
2013-May-23 10:36:09.283836 [TID=928] - INFO : StServer::GetTrades method (Symbol: SBRF-6.13_FT, Since 2013:5:23 10:37:9, Count 25000)
2013-May-23 10:36:09.283836 [TID=928] - jelly: : Trying connect to 192.168.137.1:8090
2013-May-23 10:36:09.283836 [TID=928] - jelly: : Http channel 0x12A37D30 OK..
2013-May-23 10:36:09.284836 [TID=928] - INFO : StServer::ListenBidAsks method (Symbol: SBRF-6.13_FT)
2013-May-23 10:36:09.284836 [TID=928] - INFO : StServer::ListenTicks method (Symbol: SBRF-6.13_FT)
2013-May-23 10:36:09.285836 [TID=928] - INFO : StServer::ListenQuotes method (Symbol: SBRF-6.13_FT)
2013-May-23 10:36:09.285836 [TID=13ec] - jelly: : Destroying http channel..0xCFC2B68
2013-May-23 10:36:09.325838 [TID=c20] - jelly: : Destroying http channel..0xCFAE680
2013-May-23 10:36:09.325838 [TID=aa0] - jelly: : Destroying http channel..0xCFAEA50
2013-May-23 10:36:10.464903 [TID=13ec] - ERROR : COM: (null), Параметр задан неверно., source (null)
.............. <тут много таких строк>
2013-May-23 10:36:10.552908 [TID=13ec] - ERROR : COM: (null), Параметр задан неверно., source (null)
2013-May-23 10:36:10.591910 [TID=1148] - jelly: : Destroying http channel..0x12A24938
2013-May-23 10:36:10.593911 [TID=aa0] - jelly: : Destroying http channel..0xCFAEB08
2013-May-23 10:36:11.224947 [TID=c20] - jelly: : Destroying http channel..0x12A37D30
2013-May-23 10:36:13.354068 [TID=13ec] - jelly: : Destroying http channel..0x12A12470


#16 funt1k

funt1k

    Новичок

  • Трейдеры
  • Pip
  • 8 сообщений

Отправлено 23 May 2013 - 12:57 PM

Вот лог с ошибкой, как просили (закрыл номер счета только), коннект к серверам ай-ти идет через прокси:


А у вас работает метод GetBars?

#17 Digital

Digital

    Новичок

  • Трейдеры
  • Pip
  • 26 сообщений

Отправлено 23 May 2013 - 01:31 PM

Честно говоря, я им не пользуюсь, сейчас попробовал получить 10 минуток с начала дня - колбэк вызвался, но что там приходило я не смотрел.

#18 SmartCOM

SmartCOM

    Активный участник

  • Moderators
  • 732 сообщений

Отправлено 23 May 2013 - 02:25 PM

А у вас для interop.SmartCOM3Lib свойство "Копировать локально" тоже в false установлено?

Вот лог с ошибкой, как просили (закрыл номер счета только), коннект к серверам ай-ти идет через прокси:



#19 Digital

Digital

    Новичок

  • Трейдеры
  • Pip
  • 26 сообщений

Отправлено 23 May 2013 - 03:18 PM

Нет, стоит true

#20 sYman

sYman

    Новичок

  • Трейдеры
  • Pip
  • 29 сообщений

Отправлено 28 May 2013 - 05:27 PM

Большое спасибо за новый SmartCom ! (главное чтоб он не глючил как старый :) )

...она появляется, если для "SmartCOM3Lib" установить false для свойства "Копировать локально" в ссылках проекта и исчезает, если Interop.SmartCOM3Lib копируется локально.

нечто подобное когда-то было и со SmartCom 2
запускаю тестовое приложение, после соединения к тестовому серваку получаю через пару сек ошибку




Rambler's Top100 Яндекс.Метрика