← Zurück

клиринг в 18:45 - после него проблемы.

SmartCom 4.0.20.

Искал причину того, что после вечернего клиринга приложение видит securities со старыми параметрами (ClosePrice и т.д.). Даже StopExport/StartExport не решали проблему, пришлось делать Disconnect и Connect, только так инструменты начинают обновляться.

Последующие наблюдения дали следующие результаты: если происходит обрыв связи в ходе торговой сессии, то в соответсвии с настройками ReConnect происходит нормально и все работает пучком (кажется, с пристрастием не тестировал). Но с клирингом в 18:45 проблемы. В 18:45:41 получаем последние сообщения Position Changed, и после этого получение сообщений SecuritiesChanged прекращается. При этом никаких проблем с коннектом не было, соединение за 15 минут (18:45 - 19:00) не разрывалось. Далее каждые 20 секунд приходит PortfolioChanged, но более никаких сообщений по позициям и инструментам не поступает (трэйды не пробовал, робот не торгует, потому что у него тупо старые цены стоят). Как написано выше, StopExport/StartExport не решают проблему. Забавно, но если сделать StopExport/StartExport в 19:03, то SecuritiesChanged приходит один раз, но параметры инструмента старые. Только полное переподключение решает проблему.

Переподключение закодирую, но исключительно для собственного понимания - почему так? Могу выслать целиковое приложение VS2010 если необходимо для того, чтобы посмотреть у себя.

War dieses Thema hilfreich?

Thema teilen

Kommentare (19)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

OvcharenkoVI
OvcharenkoVI

Могу сразу за Александра ответить, что использовать нужно 4.1, а дальше по проблеме не знаю )

igork
igork Autor

Я еще не разобрался с лицензионными условиями использования StockSharp, и чем это грозит в будущем. Просмотрев ветку, посвященную лицензиям, я понял, что есть большие отличия между физиками и юриками. Физик - это человек, у которого один компьютер и один IP-адрес. Поэтому я скорее на юрика похож - у меня (будет) много роботов, очень простых, но много, потому что я не очень люблю, когда многопоточный робот падает. Плюс у меня есть тестовая виртуалка, рабочий комп, персональный комп и т.п. У меня каждый простенький робот живет на своей виртуальной машине - их сейчас уже 3 штуки. Поэтому 4.1 остерегаюсь.

Желательно бы по сути вопроса. Ведь непонятно теперь, когда делать Connect - в 18:59 (было бы здрово), или в 19:00, или в 19:01.

Mikhail Sukhov
Mikhail Sukhov

igork: Я еще не разобрался с лицензионными условиями использования StockSharp, и чем это грозит в будущем. Просмотрев ветку, посвященную лицензиям, я понял, что есть большие отличия между физиками и юриками. Физик - это человек, у которого один компьютер и один IP-адрес. Поэтому я скорее на юрика похож - у меня (будет) много роботов, очень простых, но много, потому что я не очень люблю, когда многопоточный робот падает.

http://stocksharp.com/forum/yaf_postsm18891_Litsienziia.aspx#post18891 И не плохо бы погуглить что такое юр лицо. Наличие множества компьютеров не делает из физика юрика.

Alexander
Alexander

Поддержка 4.0 не осуществляется

igork
igork Autor

:-) понятно. Извините, но на 4.1 все равно не перейду, при проектировании заранее все предумотрел и решил использовать только Connect/Disconnect/StartExport/StopExport, чтобы не было проблем при переходе со StockSharp на другую библиотеку.

igork
igork Autor

Михаил,

я с превеликим уважением отношусь к вашей разработке, но везде есть свои нюансы. Читать всю ветку про лицензии нет сил, но просматривая текст лицензии, я обратил внимание на некоторые вещи. "Лицензия выдается бесплатно сроком на год." А что после года? А если после года использования заломят 2500 р за каждый экземпляр робота, который конектится через SmartCom? И т.д. С одной стороны меня как физика интересует шкурный вопрос, с другой стороны какая-то вменяемая плата не напрягает. Нужна четкая определеность в том, как вы будете монетизировать библиотеку, и что случится, когда вдруг вы свою компанию закроете, а срок действия лицензионного файлика истечет. А что будет, если вы запусите версию 4.2 с другими условиями, а любые вопросы по версии 4.1 тоже получат статус "Поддержка 4.1 не осуществляется"?

Баги я нахожу, прикладываю свои workaround-ы, так что и текущая версия не напрягает. Когда закончу роботов - тоже выложу в бесплатный доступ. Тестировать я и так тестирую и о проблемах сообщаю. Проблема, за которую взялся сегодня, была выявлена еще 2 недели назад, но только сегодня нашел время ей заняться, да и то потому, что после вечернего клиринга ГО на инструментах не поменялось, и откладывать уже было нельзя. Точно ли эта проблема решена в 4.1? Если да, то почему так и не сказать, вместо unsupported?

В конечном счете меня пока интересует только SmartCom. Написав некоторый комплект роботов, при возникновении каких-то проблем с автором Stock#, будет несложно написать такую-же библиотеку только для SmartCom, реализовав базовые объекты и 10 событий. Иначе смысла выкладывать даже бесплатных роботов для всеобщего пользования нет, если пользователь должен будет к 150 кб исполняемому файлу тащить еще несколько мегов библиотек, регистрироваться где-то и т.д.

Ввиду этой неопределенности нет желания завязываться глубже и остаться на 4.0.23. Лицензионное соглашение пока недоработано. Даже у физика как минимум три виртуальных машины: одна для торговли, вторая для тестирования на тестовом счете, и третья для разработки. И все ходят в инет с одного компа через Stream/Akado/т.п. или через корпоративный прокси. При этом помимо основного IP есть резервный, так как при отключении Stream сразу переключаемся на Akado/Yota и т.д. Посему решил пока не переходить, не разобравшись. Извиняюсь за оффтоп, ветку можно залочить, вопрос исчерпан.

votor
Mikhail Sukhov
Mikhail Sukhov

igork: Читать всю ветку про лицензии нет сил

Проблему я понял, методы решения предоставил. Имеющий уши, да услышит.

Maksim Chertkov
Maksim Chertkov

Если еще актуально по поводу перехода через клиринг - то проблема там в самом API SmartCOM. Пользую его напрямую, без коннектора, и проблема состоит в том что в клиринг отваливаются подписки на события. Я решил эту проблему автоматическим переподключением около 19-00 с переподпиской на события получения информации (сделки, стакан).

igork
igork Autor

Максим, спасибо, я заметил эту проблему, SmartTrade и прочие терминалы тоже перестали работать после клиринга, их надо переподключать. Проблема усугублена еще и тем, что благодаря реализации Stock# Trader обычный Disconnect/Connect ничего не дает => после переподключения все события начинают транслироваться, кроме SecuritiesChanged. Приходилось руками закрывать приложение и снова его запускать. В результате сделал надстройку над SmartTrader, собственную реализацию WorkingTime, и принудительно убиваю SmartTrader по расписанию и заново его создаю с новой подпиской на все события. Вот только сейчас заканчиваю, в понедельник будет ясно, заработает такая конструкция или нет.

Maksim Chertkov
Maksim Chertkov

Я отказался от коннектора именно из-за некорректной работы при переподключении. Непосредственная работа с API позволяет переподписать только те события, которые нужны, не убивая экземпляр клиента. Аналогичная проблема кстати возникает при оставленном на ночь клиенте - он не отключается, но события отваливаются. Мне пришлось писать отдельный класс-реконнектор, который отвечает за переподключение и принудительно перезагружает клиента в момент клиринга, а так же отключает его на ночь. Плюс SmartCOM еще и сервера часто отключает без предупреждения, поэтому пришлось дописывать карусель серверов при переподключении. Тоже важные тонкости, думаю пригодятся ;)

Mikhail Sukhov
Mikhail Sukhov

Maksim Chertkov: Тоже важные тонкости, думаю пригодятся ;)

Может списком выписывать, какие есть тонкости и что не работает в SmartTrader?

Maksim Chertkov
Maksim Chertkov

Mikhail Sukhov: Может списком выписывать, какие есть тонкости и что не работает в SmartTrader?

Не понял сути наезда. Человек идет по тому же пути, что мне пришлось проходить, что плохого в том чтоб ему помочь? В том что он столкнется с этим после решения проблем с клирингом я уверен 100%. И не для того ли создан раздел по коннектору СмартКом чтоб выяснять что в нем работает и что нет? Если администрация считает эти сообщения флудом и оффтопом, скажите пожалуйста, я удалю сообщения и больше писать про решения каких-либо проблем не буду, зачем делать жизнь кому-то проще...

Mikhail Sukhov
Mikhail Sukhov

Maksim Chertkov: что плохого в том чтоб ему помочь?

Ничего, кроме как не понятно, каким образом это относиться к S#. Есть правила, есть суть "оффтопа". Если что-то не работает в S#, то нужно об этом извещать. Если конечно есть желание помогать.

Maksim Chertkov
Maksim Chertkov

Mikhail Sukhov: Если что-то не работает в S#, то нужно об этом извещать. Если конечно есть желание помогать.

Именно о некорректной работе SmartTrader с переподключением я писал еще в феврале по скайпу, когда был платно оформлен на техподдержку. Ответ был такой что по непонятным причинам внутри SmartCOM поднятия событий иногда не происходит. Мне весь диалог сюда копировать? А сейчас человек обратился с той же проблемой, ничего по теме кроме обсуждения лицензий сказано не было, тема провисела месяц, и когда я поделился опытом и сказал почему именно поднятия не происходит и как это можно решить, описав попутно еще одну проблему, которую в коннектор включать как мне кажется смысла нет, оказалось что это оффтоп. Проблему понял, больше о том что не работает в коннекторах и API на форуме ни звука.

Mikhail Sukhov
Mikhail Sukhov

Maksim Chertkov: Мне весь диалог сюда копировать?

Нет, только собственно то, что не работает. И если известно как исправлять - то и это так же.

Maksim Chertkov: А сейчас человек обратился с той же проблемой, ничего по теме кроме обсуждения лицензий сказано не было, тема провисела месяц,

Она бы и год провисела. Человек пишет много, и не в том разделе. Мы не платная организация, чтобы за всеми бегать с подгузниками. Минус в бесплатности еще и в том, что каждый помогает себе сам. А если хочется получить интересующие ответы, то и писать нужно в правильных местах, и без воды.

Maksim Chertkov: больше о том что не работает в коннекторах и API на форуме ни звука.

Ну начинается...

Maksim Chertkov
Maksim Chertkov

Mikhail Sukhov: Нет, только собственно то, что не работает.

А из поста топикстартера это непонятно было?

Mikhail Sukhov: И если известно как исправлять - то и это так же.

Так как раз и описал свой способ решения этой проблемы, который конечно корявый, но другого я не вижу пока.

Mikhail Sukhov: Человек пишет много, и не в том разделе.

А в каком разделе нужно обсуждать проблемы в работе коннектора SmartCOM? Он же не в Плазу и не в Квик написал...

Mikhail Sukhov: Мы не платная организация, чтобы за всеми бегать с подгузниками. Минус в бесплатности еще и в том, что каждый помогает себе сам.

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

Mikhail Sukhov
Mikhail Sukhov

Maksim Chertkov: Мож кто другой сэкономит время, прочитав этот топик вместо того чтоб самому ловить эти глюки. Еще лучше будет если кто-то напишет что мое решение это гавно и приведет пример более элегантного решения проблемы - да я первый ему спасибо скажу.

Можно еще раз привести суть проблемы и ее решение? В этом топике обсуждалось несколько проблем.

Maksim Chertkov
Maksim Chertkov

Имелась ввиду проблема с отваливающимися событиями в СмартКОМ - она подробно изложена в самом первом топике автора. И в связи с тем что автор не пожелал переходить на версию 4.1 я написал как решал эту проблему и похожие другие, когда сам пользовался S# 4.0.23. Еще написал что хорошо бы в механизм подключения к API добавить массив строк с серверами для подключения к API и задействовать их по очереди - в IT-invest есть нехорошая практика перепрыгивать с сервера на сервер. Если все эти проблемы решены в версии 4.1 - значит это помогло только топикстартеру и больше неактуально. Если нет - то можно попробовать внести эти изменения в коннектор.

Mikhail Sukhov
Mikhail Sukhov

Maksim Chertkov: Если все эти проблемы решены в версии 4.1

С этого и надо было начинать... Все остальное не интересно, но спасибо за консультацию.