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

Transaq Finam - не подключается
Atom
3/16/2015


Вчера скачал посл версию 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-сериализации
Logs.zip 1 KB (289)

Tags:


Thanks:


< 1 2 
Mikhail Sukhov

Avatar
Date: 3/24/2015
Reply


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


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

aq2003

Avatar
Date: 3/25/2015
Reply


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

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

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

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

Mikhail Sukhov

Avatar
Date: 3/25/2015
Reply


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


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

aq2003 Go to

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


[thumbup]

aq2003 Go to

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


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

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


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

aq2003

Avatar
Date: 3/26/2015
Reply


Mikhail Sukhov Go to

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


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

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

Mikhail Sukhov

Avatar
Date: 3/26/2015
Reply


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

aq2003

Avatar
Date: 3/27/2015
Reply


Подключается.
Thanks: Mikhail Sukhov

GB1B

Avatar
Date: 12/30/2015
Reply


Quote:

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


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

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

loading
clippy