Финам обновляет Транзак коннектор до версии 2.16.1. Обновление примечательно тем, что нет обратной совместимости (клиенты на пред версии работать не будут начиная с 19-го числа). Коммит для лечения https://github.com/StockSharp/StockSharp/commit/064d7c3ac90f748283ecb3662b97c2798363cbd6
コメント (44)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
🤨 извиняюсь за, может быть, глупый вопрос, а что с этим коммитом делать????я так полагаю ждать новой версии S# с исправленной библиотекой будет правильным решением?
Использовать его. Без него с 19-го работать не будет коннектор.
Это будет после 19-го.
Так исходники же
с новым коннектором из 4.3.11 к сервакам Транзаковским подключается 😎 . Что как там работает или нет, не проверял, квалификация не позволяет...пока не повзоляет....Спасибо
Можно вас попросить выложить тут в прикрепленных файлах построенную версию StockSharp.Transaq.dll из API 4.3.11. У меня VS выдает какие-то дикие ошибки.
https://yadi.sk/d/knCqAltmjFvfF
Михаил, благодарю!
В целом с новой библиотекой StockSharp подключается к серверу ТransaqConnector, но выдает следующую некритическую ошибку: TransaqTrader 23.09.2015 20:39:49 +03:00 Error System.InvalidCastException: Cannot convert 7:46:08 with format dd.MM.yyyy HH:mm:ss.fff to DateTime. ---> System.FormatException: Строка не распознана как действительное значение DateTime. в System.DateTime.ParseExact(String s, String format, IFormatProvider provider) в Ecng.Common.TimeHelper.ToDateTime(String value, String format) --- Конец трассировки внутреннего стека исключений --- в Ecng.Common.TimeHelper.ToDateTime(String value, String format) в StockSharp.Transaq.Native.Extensions.ToDate(String s, DateTime now) в StockSharp.Transaq.Native.Extensions.GetElementValueNullable(XElement elem, String name, Func
1 getNow) в StockSharp.Transaq.Native.XmlSerializeHelper.<DeserializeMessages>b__89(XElement node) в System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() в System.Linq.Buffer1..ctor(IEnumerable1 source) в System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source) в StockSharp.Transaq.Native.XmlSerializeHelper.DeserializeMessages(XElement rootElement) в StockSharp.Transaq.Native.XmlSerializeHelper.Deserialize(String xmlString) в StockSharp.Transaq.TransaqMessageAdapter.<>c__DisplayClass31.<OnCallback>b__2f() в Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Func1 func) в StockSharp.Transaq.TransaqMessageAdapter.OnCallback(String data)Посмотрите на последнем коммите.
Привет всем. Скачал последнюю версию (4.13), собрал "SampleTransaq", вылетает ошибка инициализации библиотеки, не существует, хотя вроде лежит рядом с exe.
В общем скачал исходники, посмотрел через отладчик путь к библиотеке при вызове "Api.Initialize(IntPtr path, int logLevel)". А путь такой: "...\StockSharp_4.3.13\Samples\Transaq\SampleTransaq\bin\Debug\StockSharp.Transaq". Откуда и зачем "StockSharp.Transaq" ??? При создании папки "StockSharp.Transaq" и копировании туда txmlconnector.dll ошибка отсутствия библиотеки не вылетала. Не знаю, но в общем так.
какая-то ботва с подключением при использовании библиотек в версии 4.3.13
StockSharp.Transaq.Native.ApiException: <error>Не удалось инициализировать библиотеку. does not exist </error> в StockSharp.Transaq.Native.ApiClient.CheckErrorResult(IntPtr ptr) в StockSharp.Transaq.Native.ApiClient..ctor(Action`1 callback, String dllPath, Boolean overrideDll, Boolean isHft, String path, ApiLogLevels logLevel) в StockSharp.Transaq.TransaqMessageAdapter.Connect() в StockSharp.Transaq.TransaqMessageAdapter.OnSendInMessage(Message message) в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)
При использовании библиотек из скомпилированных исходников 4.3.11 вроде подключается без ошибок 🤨. 😳 нельзя ли прояснить ситуацию...
Здравствуйте. Смотрите пост выше. Я отписал как раз относительно этого.
Благодарю за отклик, но нельзя ли поподробнее:где создали папку в которую txmlconnector.dll запихали?Ибо создание \...путь проекта...\bin\Debug\StockSharp.Transaq\ и копирование туда txmlconnector.dll и ,навсяк случай, StockSharp.Transaq.dll эффекта не принесло...
Фикс на Гите неделю назад был залит. Собранная версия https://yadi.sk/d/fxNGwi6KjmxVS
"O, ес, ес...Гёрл, гёрл" из к\ф "Джентельмены удачи"...То что нужно...😀 Заработало, спасибо.
Финам сообщает, что будет в ближайщее время еще одно обновление (только на серверной стороне). Держимся!🙂
Проверить ботов можно по адресу 78.41.194.114 порт 3510.
Будем надеяться, что апосля наступит стабильность. Сейчас Транзак переподключаться стал часто...
Вы проверьте на том сервере. Логин финамовский нужен. Как я понял - это боевой сервер с примененными изменениями.
Может кто-нибудь проверить проблему с кодировкой в транзаке? Для этого нужно открыть пример Transaq, подключиться и попробовать отменить неактивную заявку (для этого нужно в окне заявок выделить 2 заявки - активную и неактивную, иначе не получиться отменить). У меня в этом случает коннектор выдает сообщение об ошибке, в котором вместо кириллицы вопросительные знаки, при том, что в остальных сообщениях русские буквы присутствуют:
Проверил пример с финама, там эти сообщения транслируются нормально.
Пробовал так:
PtrToStringAnsi выдает вопросительные знаки, остальные - китайские иероглифы.
Подебажьте, да и найдите проблему.
Ну так я и додебажил до ProcessPtrResult, дальше некуда...
И что там выводится?
PtrToStringAnsi выводит вопросительные знаки PtrToStringAuto и PtrToStringUni выводит иероглифы _encoding.ToString выводит вопросительные знаки
Полная информация о .NET исключении.
Михаил, нет никаких исключений. При преобразование IntPtr в string не может сопоставить кодировку и выдает вместо кириллицы вопросительные знаки. Я попросил тех, кто пользуется данным коннектором проверить получают ли они нормальный русский текст или тоже получают "??????? ????? ?????????????? ??????." вместо текста.
Уважаемые представители StockSharp-a. Возник следующий вопрос: если я подписываюсь через метод TransaqTraderSubscribeMarketData(...) на получение сделок по нескольким инструментам, то сделки мне должны приходить начиная с какого момента, с момента подписки или начиная с 1000? На данный момент S# в случае подписи на два инструмента, для одного выдает данные с начала дня, для другого с момент подписи. Мне кажется это странным. Попробовал поэкспериментировать с вашими исходниками, забив значение "tradeno" равным единице (об этом есть информация в документации для txmlconnector) в XmlSerializeHelper::SerializeSubscribeTicks(...) и все запахало так, как и думал. Судя по логам от TC у вам при подписке на очередной инструмент для предыдущих инструментов "tradeno" переопределяется на ноль, с единицы.
123115.051665 [8576] [13916] <cmd> <command id="subscribe_ticks" filter="true">
<security secid="16920" tradeno="1" />
</command> 123115.063675 [8576] [13916] <res> [R] <result success="true"/> 123115.074682 [8576] [13916] <cmd> <command id="subscribe_ticks" filter="true">
<security secid="16920" tradeno="0" />
<security secid="2831" tradeno="1" />
</command>
На примере воспроизводится?
На примере я не пробовал. Да я и не видел, чтобы там можно было воспроизвести подобную ситуацию. Ничего экстраординарного я не делаю, просто подписываюсь на два инструмента и получаю сделки по ним.
Поппобуйте на примере это проделать. Думаю ошибка в вашем коде и то что вы выше написали о номерах тиков не соответчвует коду коннектора.
В примере в обработчике установки соединения добавил подписку на два инструмента через "Trader.SubscribeMarketData(security, StockSharp.Messages.MarketDataTypes.Trades)" и навесил запись в текстовый файл всех сделок.Тоже самое, для одного инструмента с 10-00, для другого с момента подписки.
Транзак с новой версией 2.18.1
https://github.com/StockSharp/StockSharp/commit/b982c8c70d185100876bdfe867afb3ae87356d4a
Какие-то небольшие фиксы в коннекторе. Проверить, понятно, лучше заранее.
Не знаю, как в последней версии, но в предыдущей не работала разность между локальным и текущим временем, все время оно равнялось null. Хотя во время отладки вашего коннектора выяснилось, что разность при соответствующем запросе возвращается.
https://github.com/StockSharp/StockSharp/tree/master/Connectors/Transaq
А к чему это может приводить????На команду Trader.Connect, Trader поменял свойство ConnectionState в Connecting и прикинулся веником...
Если честно, то не понял.
...разность между локальным и текущим временем, все время оно равнялось null...На что это может повлиять?
ммм..ясн...А как параметр называется разность между локальным и текущим временем, который все время равнялся null?любопытства ради...
Свойство: ServerTimeDiff. Дело в том, что там эта разность возвращается при инициализации 'TransaqTrader'-a, просто ее никак не используют, при отладке коннектора это видно. Я для себя поправил в исходниках, но в новой версии, как говорят, все поправлено.
есть большое подозрение, что не работает обновление позиции
Вечер добрый! Может кто подскажет в чем проблема сей ошибки Версия 4.3.13
"StockSharp.Transaq.Native.ApiException: <error>Не удалось инициализировать библиотеку. does not exist </error> в StockSharp.Transaq.Native.ApiClient.CheckErrorResult(IntPtr ptr) в StockSharp.Transaq.Native.ApiClient..ctor(Action`1 callback, String dllPath, Boolean overrideDll, Boolean isHft, String path, ApiLogLevels logLevel) в StockSharp.Transaq.TransaqMessageAdapter.Connect() в StockSharp.Transaq.TransaqMessageAdapter.OnSendInMessage(Message message) в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)"
Я видел, что эта проблема уже поднималась в этой ветке, но к сожалению работающего варианта так и не нашел - ссылки на яндекс архив уже не актуальны, а с созданием папки "StockSharp.Transaq" с последующим копированием библиотеки не увенчались успехом. Заранее благодарен, за любую подсказку.