Transaq Finam - не подключается
Atom
16.03.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 (283)

Теги:


Спасибо:


< 1 2 
Mikhail Sukhov

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


aq2003 Перейти
У меня подключается


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

aq2003

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


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

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

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

А коннектор тут ни причём.
Спасибо:

Mikhail Sukhov

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


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


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

aq2003 Перейти

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


[thumbup]

aq2003 Перейти

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


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

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


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

aq2003

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


Mikhail Sukhov Перейти

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


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

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

Mikhail Sukhov

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


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

aq2003

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


Подключается.
Спасибо: Mikhail Sukhov

GB1B

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


Цитата:

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


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

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

loading
clippy