Ho_Chu
Ho_Chu личный блог
25 ноября 2022, 07:00

Создадим идеального робота вместе - 2?

В прошлой теме о решении проблем с каналами связи, один из пользователей отлично резюмировал в нескольких строках. Вот они:

Если вкратце, то все проблемы каналов связи решаются так:

  1. Мало денег — домашний сервер, резервный канал. Мониторим руками, можно какую-нибудь пищалку прикрутить на обрывы. Если сломался внешний контур — значит сидим и ждём пока починят.
  2. Есть чутка денег — выносим сервер наружу. Получаем алерты в телегу, реагируем руками.
  3. Есть ещё чутка денег — дублирующий сервер к варианту 2, пингуем друг-друга, пингуем из третьего места, пингуем пинговалку, обрабатываем результаты.
  4. Есть еще больше денег — всё тоже что и п.2. п.3, но только в биржевой стойке.
  5. Проблемы связи с торговой системой к пунктам 1-3: Мониторим коннект, переподключаемся, если есть альтернативные сервера.  Если всё завалилось, то используем альтернативные терминалы, звоним брокеру.
  6. Проблемы связи с торговой системой, если завалилась биржа — сидим и смотрим.

Перейдем ко второй теме. В данном случае предлагаю разрешить проблему внезапного объявления о прекращении торгов по какому-либо инструменту, либо по группе инструментов. Такое случилось, например, 5 сентября 2022 года, когда Мосбиржа объявила об остановке торгов на валютном рынке и рынке драг.металлов через какое-то время, кажется через 5 или через 10 минут. С чем это могло быть связано? С объявлением об окончании хождения валюты на территории РФ? Все возможно. Потом, конечно, все разрешилось, но осадочек остался https://www.moex.com/n51175 .

При наступлении такого события, не зная заранее его последствий, лучше не иметь открытых позиций после остановки торгов и необходима опция, которая, во-первых распознает это событие, а во-вторых, заставит, условно мгновенно, закрыть все позиции и не открывать новых впредь до особого разрешения.

Но как на уровне алгоритма отличить остановку торгов на неопределенное время от приостановки торгов из-за вылета цены за границы ранее установленного диапазона на какое-то время? Надо уметь анализировать сообщения с биржи? Там приходят сообщения о приостановке торгов на время по тем или иным инструментам.

Когда вечером 30 августа 2022 года Газпром объявил о новой рекордной выплате дивидендов, то в результате, утром 31 августа, на торгах акциями Газпрома было минимум 10 приостановок торгов.

Может быть надо научиться читать сообщения с биржи? И если в сообщении встречаются ключевые слова, то немедленно оповещать Клиента об этой ситуации? Можно сделать наоборот, создать БД исключительно рыночных сообщения и их не присылать, а слать только те, которые не соответствуют стандартам? В конце концов, там тоже робот шлет стандартизованные сообщения. И только нестандартные могут вводиться руками. Вероятно, надо добавить возможность сохранения в какой-нибудь лог-файл списка стандартных сообщений с биржи, чтобы время от времени можно было бы анализировать его на предмет появления новых типов сообщений и расширять известный список сообщений, которые мы будем признавать рыночными и не требующими вмешательства. Тогда программа сможет нас оповещать о любых незапланированных сообщениях и мы сможем оперативно реагировать на все новые сообщения.

Если мы, не находясь перед терминалом, узнаем о таком событии, то мы сможем попытаться предпринять какие-то разумные меры, например, закрыть позиции.

Или мы можем просто настроить робота слать все сообщения, касающиеся интересующих тебя инструментов. Но если сделать только такую краткую штуку, то можно пропустить объявление о прекращении хождения валюты, например.

Мнения? Как лучше решить данную проблему?

78 Комментариев
  • bozon
    25 ноября 2022, 07:13
    Никак. В финансовых отношениях главное это доверие, а какое тут может быть доверие, если Московская биржа отказывается брать на себя ответственность за срыв торгов и связанные с этим убытки резидентов.
  • Vkt
    25 ноября 2022, 07:35
    На сколько я понял из форума Квика, они так и не сделали возможность чтения сообщений из скрипта.
    Из Квика можно узнать состояние торгов через запросы getParamEx2 — «TRADINGSTATUS», «STATUS» или «TRADINGPHASE». Но они меняются через несколько секунд после события.
    Так что заранее подстелить соломку не получится.
      • Vkt
        25 ноября 2022, 08:02
        Ho_Chu, не понял кого их? Сообщения о приостановке торгов в Квике или запросы getParamEx2? Это абсолютно разные вещи.
          • Vkt
            25 ноября 2022, 08:07
            Ho_Chu, в Квике да, они накапливаются если принудительно их не обнулить. Но прочитать можно только глазами с экрана. Из QLua  они не доступны. Ну может можно какую-ту внешнюю приблуду из под винды научить читать эти сообщения, я не в курсе.
  • Sprite
    25 ноября 2022, 08:09
    Если ваш робот умеет подключаться/читать биржевые сообщения из потока NEWS, то вы можете сравнивать тикер инструмента в новостном сообщении с тикерами инструментов по которым есть позиции. Если они совпадают — как-то реагировать.

    onExchangeNewsMessage = (message) =>
        foreach position in MyPositions
            if (message.Contains(position.securityId))
                SendMeAlertAndCloseMyPositions(position.securityId)

    Ещё вы можете парсить новостной раздел сайта биржи.

    Переходим к 3-ей проблеме? )
      • Sprite
        25 ноября 2022, 08:23
        Ho_Chu, куда бежать? Если биржа вам написала, вы не прочитали, а ваш робот не поставил стоп или жует сопли в то время как инструмент идёт против позиции, то, имхо, бежать нужно из раздела «Алготрейдинг».
      • Sprite
        25 ноября 2022, 08:34
        Ho_Chu, «кстати, какой бы Вам виделась 3-я проблема?» Я и первых двух не вижу, куда уж мне до третьей.

        «а что, Вы не допускаете мысли о возможной просадке от слова «совсем»?»
        Если всё что вам осталось — это решить проблемы с просадками, возникающими по причине остановки торгов, то отвечу вашими же словами «что Вы все здесь делаете? почему Вы не на мальдивах/гавайях/пхукетах и прочих майямах?»
          • Sprite
            25 ноября 2022, 09:10
            Ho_Chu, ничосе, с другой стороны если вы за следующие 17 дней решите все свои 17 проблем, то это будет круто. Может стоит огласить весь список? А то я и до второй то добрался случайно, а уж про все 17 могу и не узнать никогда.
    • Андрей К
      25 ноября 2022, 08:31
      Sprite, если нет доступа к прямым протоколам биржи, то целесообразней парсить сайт НКЦ. Это более официальная быстрая инфа. Знаю это хорошо, потому что один раз влетел и запомнил навсегда.

      но вообще, например, с введением вечных фьючей на мос бирже, стали получаться такие ситуации, что посреди торговой сессии, стали часто стопить торги на 5-10 секунд прям на ходу у того или иного фьюча (si, cny и тд). И если в терминалах нет опроса статуса инструмента или какого события, либо оно есть, но разраб его не обрабатывает, это прям печалька, можно в разнос уйти.
      • Sprite
        25 ноября 2022, 08:41

        Андрей К, что, прям в FIX/FAST/TWAIN/PLAZA (нужное подчеркнуть) всё стопится?

        ЗЫ Мы не знаем чем занимается робот автора, но если он не арбитраж, то за 5-10 секунд в разнос не успеет. А если он арбитраж, то автор или нас тролит или графоманит.

        • Андрей К
          25 ноября 2022, 08:43
          Sprite, ну да, и там тоже. Стопится на всей бирже. Иногда пользователи на СЛ поднимали вопрос, что за беда такая происходит.
  • Union_Jack
    25 ноября 2022, 10:34
    А в чем проблема смотреть непосредственно сетевой трафик, идущий с биржи. И контролировать его наличие или отсутствие?

    Ps. точнее не от биржи, а от брокера
      • Union_Jack
        25 ноября 2022, 11:00
        Ho_Chu, как узнать заранее? Может на бирже сбой, а может у вас интернет отвалился. Только по факту
  • ves2010
    25 ноября 2022, 11:03
    торгую ботами под тслабом 12 лет

    идешь в магаз и берешь б/у сервак U1 на сколько денег хватит… они от 20к продаются… гоняешь этот сервак дома 24-7 месяц… убеждаешься что все работает и все ок...

    затем этим серваком  идешь в датацентр  датачип он тиер3 там цена хостинга 2500 за U1 или еще какой тиер2 он совсем дешовый будет в районе 1000руб мес… там его воткнут в стойку...

    вот и все...

    если какая жопа с серваком — звонишь и просишь перегрузить...

    сервер подключаешь к облаку гугл и туда пишется все данные реал тайм...
    если сервак накрылся… то с любого компа подтягиваешь последние данные с облаков и прдолжаешь торговать…

    еще более простой вариант идешь на рентер ру… там серваки от 4к в месяц…
      • ves2010
        25 ноября 2022, 11:13
        Ho_Chu, в моих блогах глянь там есть пост про домашний сервер с рисунками
      • Vkt
        25 ноября 2022, 11:44
        Ho_Chu, дома 2 ноута поставить не лучше?
        На батарейке несколько часов проживет, инет резервный от 2-х разных провайдеров через ЮСБ модем. Основной — обычный домашний.
        Свое железо ближе к телу я считаю.
          • Vkt
            25 ноября 2022, 12:05
            Ho_Chu, зависит от роботов и объемов. Если для робота критичны миллисекунды и объемы в десятки лямов, то да. В противном случае по мне так лишний геморрой эти все серверы и  общение с техподдержками.

              • Vkt
                25 ноября 2022, 12:32
                Ho_Chu, мне и секунда не критична. Бывает задержки на 2-3 сек. из-за тормозов сервера брокера, который колбэки задерживает. Пофиг. Такой робот. У меня еще куча sleep-ов внутри кода.
                  • Vkt
                    25 ноября 2022, 14:22
                    Ho_Chu, богатые как раз это те, кто роботов за деньги покупает и сервер на биржу ставит, а мы с ноута и на коленке роботов колхозим!

                      • Vkt
                        25 ноября 2022, 14:36
                        Ho_Chu, с такими вводными никогда не найдете. Сам по себе робот ничего из ничего не заработает. Робот это трактор. Но чтобы получить урожай нужны семена. В нашем случае это деньги. Чем больше семян, тем больше урожай можно получить. При условии отсутствия засухи или  потопа.
                        Если взять 10-20 лямов, то заработать 1,5 в месяц вполне посильная задача.Ну если на рынке не полное болото. А когда есть всего 1-2, то риски будут запредельные и зависимость от фазы рынка еще больше.
                          • Vkt
                            25 ноября 2022, 14:53
                            Ho_Chu, купить да, надо самому
                              • Vkt
                                25 ноября 2022, 15:01
                                Ho_Chu,
                                 купить да, надо самому

                                (да) = (да, нельзя)

                                Противоречия сняты?

                                Я лично своего никому не продам. Мне конкуренты в стакане не нужны.


    • Дмитрий Овчинников
      25 ноября 2022, 11:30
      ves2010, 
      еще более простой вариант идешь на рентер ру… там серваки от 4к в месяц…
      Вот уж послал, так послал.
      Чувствую, что устриц не ел :)
  • Андрей К
    25 ноября 2022, 11:50
    Перечитал еще раз топик, пытаясь понять, что я там в комменте не так написал ) Тогда надо классифицировать. Все что напишу далее, все знаю не понаслышке, а просто тупо влетал, так как такие случаи крайне редки, зато запоминаются навечно и внедряются шаги от предотвращения.

    Большинство редких случаев сложны в автоматизации, не потому что это сложно, а потому что они сложны в отладке из за их редкости, поэтому надо подстраховывать чем то другим. Поэтому, классифицируя:

    События заранее анонсируемые
    ~~~~~~~~~~~~~~~~~~~~~

    События разного характера: остановка торгов, перезагрузка торговых серверов, возобновление торгов и тд.

    Источники публикации по убыванию официальности:
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    а) Официальные сайты бирж
    б) Прямые протоколы распространения биржевых данных
    в) СМИ
    г) Терминалы
    д) Мессенджеры с брокером

    Автматизировать можно, но зачем убивать время и деньги на решение, на которое можно положиться лет через 5? 

    Решение: подключение к rss каналам источников, настраиваем фильтр, переадресовываем сообщения к себе в телегу. Для мос биржи актуально настраиваться на rss НКЦ, нежели moex.ru (официально на НКЦ инфа публикуется быстрее обо всех событиях). Поржать конечно можно за сложность решения и заморочки, но биржа в суде быстро расскажет, что и как, когда ей предъявишь за сбой и не оповещение (инфа как говорится из первых рук)


    Срочные события остановки торгов по инструменту
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    События разного характера: планка в торгах, техн сбой и тд.
    Событие автоматизируемое.

    Источники данных:
    """"""""""""""""""""""
    а) Прямые протоколы распространения биржевых данных
    б) Терминал

    Пути автоматизации по приоритету:
    """""""""""""""""""""""""""""""""""""""""
    а) Получение события по прямым протоколам
    б) Отвергание заявки биржей и получения кода причины
    в) Постоянный опрос статуса инструмента
    г) Постоянный опрос статуса торгов

    • Schurik
      25 ноября 2022, 13:26
      Андрей К, а на rss канал НКЦ можно бесплатно подписаться?
      • Андрей К
        25 ноября 2022, 13:35
        Schurik, они пока в прошлом веке ) после того как мос биржа носом об асфальт повозила и сказала, что вообще то там надо мониторить, пришлось плагин лепить из их новостной ленты
  • keekkenen
    25 ноября 2022, 12:13
    даешь еще один распил бабла — РосНаноРоботы
  • Replikant_mih
    25 ноября 2022, 13:17
    Мой подход в этом вопросе следующий:

    — На частые рисковые события создаём специализированные обработчики исходя из сути события.

    — Для закрытия редких событий имеем некий универсальный механизм противодействия — а-ля остановка торгов если почему-то идет внутри дня большая просадка и т.д.

    — Ну и ещё одна немаловажная линия защиты — не жестить с рисками. Если ты стоишь на все плечи в одну сторону при огромной волатильности и пропадает связь и всё пропадает — это одна ситуация, а если ты изначально как-то диверсифицируешь портфель позиций, ограничиваешь риски и т.д. и пропадает связь и всё пропадает — совсем другая ситуация. 
  • Makstrade
    25 ноября 2022, 13:18
    Идеальный робот для всех — это что -то вроде коммунизма
      • Makstrade
        25 ноября 2022, 13:47
        Ho_Chu, 
        то верили бы, что это вполне достижимая цель

        Святая простота...  изучать и верить это несовместимые понятия. Поэтому я изучал и знаю, что коммунизм это утопия, в которую верят наивные и малообразованные
          • Makstrade
            25 ноября 2022, 13:57
            Ho_Chu,   
            Все верят вам, что вы с 11 лет на рынке… и уже построили коммунизм в отдельно взятой комнате маминой квартиры.  Удачи юный верующий коммунист...

            12 лет на рынке
            23 года,

              • Makstrade
                25 ноября 2022, 14:53
                Ho_Chu, 

                Ясно… юный коммунист еще и лжец. Приписывает себе опыта на рынке. Фактически имеет один год на рынке видимо. И после этого хочет, чтобы с ним имели дело и помогали ему на халяву сделать робота.

                Больше нет смысла разговаривать с малолетним врунишкой… кто-то теперь должен поверить, что он 12 лет на рынке и он дизайнер и ему не 23 года. А научный коммунизм известное понятие среди и молодых и старых коммунистов. Так что плохо он оправдывается. Мама ему часто про это рассказывала в детстве
                  • Mingers
                    25 ноября 2022, 14:49
                    Ho_Chu, 

                    =Двоечник, троечник=

                    Ты и правда похож на 23х летнего мальчика
  • Яков С
    25 ноября 2022, 14:26
    нет
  • Mingers
    25 ноября 2022, 14:40
    Наивно верить, что кто-то будет раскрывать секреты своего робота
    • Mingers, Секреты моей системы открыты в документации.
      Бесплатно. Ссылка в профиле.
      Ему не 23 года.
        • Ho_Chu, я слышал Ваш голос. в 23 чтоб такой иметь надо много пить с 11 лет и курить
      • Mingers
        25 ноября 2022, 16:09
        Константин Чащегоров,  Рядом с ним спишь, раз знаешь сколько ему лет или клон его?
        Таких открытых систем полно в инете. Вот только толку от них нет
        • Mingers, Он прислал мне ТЗ и комментировал голосом что хочет. По особенностям моей системы она на коммерческой платформе 1С. Платформа сама стоит денег. Поэтому общение не продолжилось.
      • Ho_Chu, 

        В России продолжается «побег» активных пользователей соцетей из «Фейсбука» и «Инстаграма» в Telegram. Это произошло после ряда новостей о возможном отключении указанных соцсетей на территории страны.

        Шоу Ивана Урганта «Вечерний Ургант» временно сняли с эфира, и Иван опубликовал у себя в «сторис» ссылку на новый канал в Telegram.

        «Новый телеграм от не нового человека», — подписал он ссылку на пустой, пока что, аккаунт, где назвал себя «23-й дизайнер из Санкт-Петербурга». За считаные часы на канал подписалось около 250 000 человек.

        «Первый канал» ранее опроверг слухи об увольнении Урганта: шоу не выходило из-за праздников, а «текущая переверстка связана с важными общественно-политическими событиями». Также с эфира были сняты другие развлекательные шоу — например, программа Малахова.

        Ксения Собчак видит политическую подоплеку со скандалом вокруг «Вечернего Урганта». В своем телеграм-канале она отметила, что авторы шоу намеревались сказать несколько слов о политике государства в свете последних событий, однако им запретили, так как это идет вразрез со стратегией глобального российского медийного начальства. И редакция отказалась выходить в эфир на таких условиях.

  • Почему не дает. Картинки прекрасно вставляются ТО что ф выше написал это ссылка на новость в интернете.
    Поменяйте броузер.
    Картинка снизу для проверки что работает





  • По многим описанным выше пунктам проблемы уходят при аренде сервера в облаке VK (по старому mail.ru). Тестировал свою базу в 3х звенной архитектуре клиент сервер как написано на картинке 2 года на сервере mail.ru. Ни обрывов связи ни тормозов квика (Если не считать время между моментом выставления заявки и отображением ее в таблице заявок за косяк). Ни разу.  (фактически только раз в день вводил в квике пин код брокера в 10 00 и база сама работала 24 часа в сутки. Днем торговала. Ночью обсчитывала и прогнозировала. От монитора уходил свободно. На случай сбоя RDP подключение к терминалу с телефона и ввод пин кода с него. На случай посмотреть мобильное приложение от 1с для Android) Сейчас тестирую файловый вариант на ноутбуке. Сеть 200 мб от Ростелеком. Тоже все не так критично. 1 раз пока был сбой что не достучаться на биржу. Использовал модем мегафона (временно 10 м бит примерно скорость). Потом Ростелеком починился
  • На всякий случай уточню. У меня база независимо от QUIK ведет учет доступных средств, имеющихся активов и выставленных заявок. Поэтому решения принимает сама и не зависит от того, что например в QUIK разные таблицы выдают несогласованные между собой данные. В варианте когда таблица например доступных средств в QUIK выдает неверные данные на решениях системы это никак не скажется.
  • ignat
    25 ноября 2022, 22:20
    Нет смысла классифицировать внезапные остановки торгов. Робот должен сообщить в тг и противным звуком (потому что в тг может не прийти сообщение) и показать сообщение на экране об аварийной остановке или, если планка и алгоритм позволяет ждать — просто ждать обновления котировок. Ждать, перезапуск или снять всё вручную — по ситуации. Никогда нельзя оставлять работать робота, не находясь рядом с компом, причин глюков может быть много, нет смысла тратить время на их обработку, продуктивнее тратить время на торговый алгоритм робота.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн