← Back

Transaq Finam - не подключается

Вчера скачал посл версию S# API При попытке подключения к боевому счету Transaq Finam получаю ошибку подключения

150316-151542.939 17648 [26616] Inf >> <command id="connect"> <login> XXXXXXXX </login> <password>*</password> <host>213.247.141.133</host> <port>3900</port> <loglevel>0</loglevel> <autopos>false</autopos> <micex_registers>true</micex_registers> <milliseconds>true</milliseconds> <utc_time>false</utc_time> <notes_file /> </command> 150316-151543.939 17648 [26616] Inf << <result success="true"/> 150316-151548.645 17648 [24736] Inf << <server_status connected="error">Ошибка подключения</server_status>

причем пробовал с txmlconnector.dll из stocksharp дистрибутива а также заменял txmlconnector.dll из stocksharp дистрибутива либой скачанной с finam.ru результат одинаковый: <server_status connected="error">Ошибка подключения</server_status>

При этом с txmlconnector.dll из дистрибутива удалось подключиться к демо счету Transaq.ru. Но после создании заявок, отложенных ордеров на демо счете - приложение падает с ошибкой xml-сериализации

Comments (17)

Login or Create account, Log in or register to leave a comment

aandr2011
aandr2011 Author

Еще заметил что exe-ник (почему-то) перетирает txmlconnector.dll подкладываю txmlconnector.dll скачанный с финама, проверяю версию 2.10.8 - запускаю екзешник - меняется дата файла txmlconnector.dll - проверяю версюи - другая - 2.10.5

aandr2011
aandr2011 Author

Ау, есть кто нить на поддержке? :)

Mikhail Sukhov
Mikhail Sukhov

aandr2011: Ау, есть кто нить на поддержке? :)

Если вы хотите техподдержку, то она платная http://stocksharp.com/edu/ Или ждать добрых самаритян.

aandr2011
aandr2011 Author

Нет, я не хочу платной поддержки Я хочу чтобы S# за которым наблюдаю с 2011 года хоть как-то стал пригодным к свободному использованию. Раз в год смотрю и из года в год ничего не изменяется к лучшему! На текущий момент:

  1. S# Аpi - скачал посл версюю. проект не собирается. ( благо есть навыки и советы на вашем форуме - собрал. Причем советы уже не первой свежести!!! - ошибки солюшена так до сих пор не поправлены.
  2. Собрал проект - не работает коннект к финаму. К да Transaq.ru коннектится. но падает при получении списка заявок.

И после этого вы еще заявляете: ок, мы готовы вам оказать платную поддержку. !

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

А с текущей политикой более желания дальше бесплатно тестировать ваш продукт нет.

Mikhail Sukhov devruss
Mikhail Sukhov
Mikhail Sukhov

И почему все сразу отвергают опцию Добрых самуритян?😂

aq2003
aq2003

aandr2011,

В сборке TransaqTrader библиотека txmlconnector.dll забита в ресурсы. Трейдер при старте переписывает dll-ку из ресурса на диск и оттуда грузит. Так происходит при каждом старте трейдера. Поэтому какую бы версию txmlconnector Вы на диск ни выкладывали, трейдер всё равно грузит собственную. Зачем это сделано, не знаю. Достаточно закомментировать эту строчку в исходнике TransaqTrader'а и можно использовать Вашу версию коннектора. Вполне возможно, что после этого всё заработает. У меня заработало, когда подставил коннектор от Финама.

Mikhail Sukhov
Mikhail Sukhov

У финама появилась новая версия?

aq2003
aq2003

Не проверял

Mikhail Sukhov
Mikhail Sukhov

Можете проверить данный коммит https://github.com/stocksharp/stocksharp/commit/1c88386bf41d6a68caf5e4ae38a50294445fb474 ? Это финамоские файлы (как и предыдущие), но последней версии. Помогает ли без перезаписи своими?

aq2003
aq2003

У меня подключается, это у aandr2011 не подключается. До списка заявок я правда ещё не дошёл. Не грузит одновременно исторические свечи и реального времени. Либо одно, либо другое. Исторические свечи приходят порциями от настоящего к прошлому, а не от прошлого к настоящему, как должно бы. Сижу, в вашем коде разбираюсь, точу напильник

Mikhail Sukhov
Mikhail Sukhov

aq2003: У меня подключается

Вы переписываете tconnector.dll своей или используете тот, что автоматически из дистрибутива?

aq2003
aq2003

По-всякому пробовал.

Коннектор тут вообще ни причём. Транзак-сервер присылает исторические свечи порциями от свежих к более старым. В контейнер серии они складываются по мере поступления порций. Получается, что по индексу 0 лежит свечка откуда-то из глубокой древности. Свежие же свечки лежат где-то в конце списка. Чтобы исправить ситуацию, следует накапливать порции свечек в стеке и по приходу последней порции записывать все в контейнер. Тогда свечки выстраиваются в правильно порядке, то есть по индексу 0 самая свежая, по индексу -1 предыдущая и т.д. Для этого потребовалось доработать TransaqMessageAdapter.OnCandlesMessage.

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

А коннектор тут ни причём.

Mikhail Sukhov
Mikhail Sukhov

aq2003: Транзак-сервер присылает исторические свечи порциями от свежих к более старым. В контейнер серии они складываются по мере поступления порций. Получается, что по индексу 0 лежит свечка откуда-то из глубокой древности. Свежие же свечки лежат где-то в конце списка. Чтобы исправить ситуацию, следует накапливать порции свечек в стеке и по приходу последней порции записывать все в контейнер. Тогда свечки выстраиваются в правильно порядке, то есть по индексу 0 самая свежая, по индексу -1 предыдущая и т.д. Для этого потребовалось доработать TransaqMessageAdapter.OnCandlesMessage.

Сделайте, пожалуйста, пулл реквест в репозитарий. Это лучше всего делать в TransaqTrader в переопределенном OnProcessMessage

aq2003: Попробую, расскажу.

👍

aq2003: А коннектор тут ни причём.

Вот тут вы написали:

У меня заработало, когда подставил коннектор от Финама

Я про это и спрашиваю. Если использовать стандартные dll транзака, оно что, не подключается? Или все таки подключается?

aq2003
aq2003

Mikhail Sukhov: Я про это и спрашиваю. Если использовать стандартные dll транзака, оно что, не подключается? Или все таки подключается?

C dll из ресурса не подключалось. C dll Финама подключилось. Было ли дело в версиях dll или в чём-то другом, не разбирался.

С Финамом давно работаю. Опыт научил доверять только тем версиям, что на сайте Финама лежат.

Mikhail Sukhov
Mikhail Sukhov

Вот я как раз про это и пишу. Посмотрите подключается ли с последними выложенными длл из ресурсов.

aq2003
aq2003

Подключается.

Mikhail Sukhov
GB1B
GB1B

В сборке TransaqTrader библиотека txmlconnector.dll забита в ресурсы. Трейдер при старте переписывает dll-ку из ресурса на диск и оттуда грузит. Так происходит при каждом старте трейдера. Поэтому какую бы версию txmlconnector Вы на диск ни выкладывали, трейдер всё равно грузит собственную. Зачем это сделано, не знаю. Достаточно закомментировать эту строчку в исходнике TransaqTrader'а и можно использовать Вашу версию коннектора. Вполне возможно, что после этого всё заработает. У меня заработало, когда подставил коннектор от Финама.

А где конкретно эта ссылка в проекте находится? К боевому серверу вроде подключение есть, т.е. через стандартный txmlconnector.dll, но мне нужно сначала оттестировать на демо-счете. А там используется другая версия библиотеки txmlconnector.dll И соответственно если подкладывать в папку с проектом новую txmlconnector.dll(для демо которая), то при запуске она затирается оригинальной.