Ho_Chu
Ho_Chu личный блог
26 ноября 2022, 08:05

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

В прошлых 2-х темах мы затронули проблемы, связанные с нерыночными рисками… Например, — разрывы связи, вылеты сервера, перезагрузка операционки, а также внезапные остановки торгов по неизвестным причинам. Желающие могут ознакомится с выводами в соответствующих темах, которые легко найти по тэгу «торговые роботы». Причем некоторые коллеги были настолько любезны, что смогли обобщить обсуждения и сформулировать изящные резюме.

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

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

Что делать в таких случаях?

Если у нас случилась приостановка торгов на время, то как это понять на уровне алгоритма?

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

Вместо этого можно было бы сделать систему анализа сообщений, поступающих с биржи или от брокера, но это, вероятно, было бы намного сложнее в реализации.

Мнения? Критика? Предложения?

 

128 Комментариев
  • ves2010
    26 ноября 2022, 08:52
    берешь бота и тестишь… насколько для него это критично… обычно это не критично
  • Kot_Begemot
    26 ноября 2022, 10:39
    Мне кажется, что на планке обычно стакан наполовину пуст, а на другую половину полон. 
  • Replikant_mih
    26 ноября 2022, 10:48
    Ок, мы выясним/выяснили как детектировать приостановку торгов. Неплохо бы понять ещё зачем нам это нужно).
    • Андрей К
      26 ноября 2022, 10:51
      Replikant_mih, как вариант, быстрее всех вставать в стакан )
      • Replikant_mih
        26 ноября 2022, 11:08
        Андрей К, Ну да, ты-то на гиперзвуковых скоростях. С моими алгоритмами, инфраструктурой я даже не смотрю в сторону «быстрее всех»).
      • Gsimplov777
        26 ноября 2022, 13:52
        Ho_Chu, робота создать много ума не надо, с прибыльная ТС воттгде проблема
    • Jame Bonds
      26 ноября 2022, 11:08
      Replikant_mih, например, чтобы обезопаситься от резкого скачка цены, который бывает сразу после расширения планки.
      Ещё в многоногой торговле, если нет отслеживать остановки торгов, то можно попасть в ситуацию, когда по одной ноге сделка прошла, а по другой сейчас остановка.
      Все это лишние финансовые потери.
      • Replikant_mih
        26 ноября 2022, 11:19
        Jame Bonds, Ясн. Со всплеском после расширения — да, но я уже должен знать, что вола высокая уже на подходе к планке, не зря ж дошли). А вообще как некий предиктор в рамках стратегии планака да, интересное событие.
  • LongShortProfit
    26 ноября 2022, 10:54
    если вы хотите создать робота для квика, то проблемы будут вылазить постоянно, если уж решили помучаться и потратить время впустую и получить опыт, то вам на мт5, там быстрей соберете алгоритм и начнете понимать, то все не так просто.
  • Jame Bonds
    26 ноября 2022, 11:04
    Во-первых положения планок, на которых будет остановка, известны заранее. Для начала, можно оператору сигналить о том, что прошли например 75% расстояния до планки.
    Во-вторых биржа выдает сообщения «если цена не отвернет, то через минуту будет остановка». Транслируем оператору.
    В-третьих в плазе (просмотровый логин 2000 в месяц) есть поле «статус», в котором при остановке меняется значение.
    В-четвёртых при действиях с заявками во время остановие торгов терминал может выдавать особую ошибку. Например, Metatrader выдает «market closed», вместо «invalid request» или других. Значит, на это можно реагировать, например повторить операцию над заявкой через 5 секунд.
      • Jame Bonds
        26 ноября 2022, 12:14
        Ho_Chu, на московской срочке вроде все терминалы их транслируют. Metatrader, Quik и Plaza точно транслируют. На фонде кажется с этим сложности.
        А вот interactive brokers tws их не транслирует. Ищу где можно автоматически брать.
          • Jame Bonds
            26 ноября 2022, 14:17
            Ho_Chu, на фонде же не обязательно стоп-торги, там дискретный аукцион.
            Вообще, фонду я не очень знаю.
          • Jame Bonds
            26 ноября 2022, 14:16
            Ho_Chu, это в регламенте надо читать. Упрощенно, когда цена N минут вблизи (заданное расстояние в %) от планки, то стоп торги на 1 минуту и расширение на заранее определенный процент.
        • Андрей К
          26 ноября 2022, 14:49
          Jame Bonds, 
          А вот interactive brokers tws их не транслирует. Ищу где можно автоматически брать.
          видимо парсить с сайт с задержкой )
  • MegaFan
    26 ноября 2022, 11:40
    А как вы понимаете, что в 9:49 выставлять заявки нельзя, а в 9:50 можно, но только по определенным правилам? Только по времени? Есть еще статусы торговой сессии: открыта, закрыта, аукцион открытия / закрытия…
  • Sprite
    26 ноября 2022, 12:04
    Как художник художнику, открою вам тайну — отсутствие тиков не означает остановку торгов, а означает отсутствие сделок по инструменту.
      • Sprite
        26 ноября 2022, 12:42

        Ho_Chu, защищаете свою идею? Ок, можно и пнуть, если вам почему-то показалось что что-то не так. А ещё можно было бы наконец выбрать платформу для разработки будущего грааля, потратить время на её изучение и использовать встроенные в неё средства, специально предназначенные для решения тех проблем, которые вы тут пытаетесь абстрактно обсуждать. Судя по тому, что и как вы спрашиваете у вас в этом нет абсолютно никакого опыта. Так вот, исходя из этого предположения, открою вам ещё одну тайну — все разработчики платформ знают все ваши проблемы и даже те проблемы, о которых вы ещё не знаете и так или иначе всё это давным-давно решили. Начните уже что-нибудь делать, тогда и вопросы будут другие и жалобы на то, что буржуйнет делится опытом, а мы нет пропадут, да и самих вопросов станет меньше. А пока что все ваши посты для меня выглядят как какая-то завуалированная попытка выбора самой платформы. И если я прав то:
        а) выбор у вас не большой (если вы про рынок РФ, а если нет, то вам не на этом сайте надо общаться)
        б) вам будут советовать то, на чём сами работают
        в) всё это вам не поможет, потому что пока вы сами ничего не сделаете, а будете только рассуждать, ваш опыт в роботостроении останется ровно тем же, что и до начала обсуждения.

          • Sprite
            26 ноября 2022, 13:59
            Ho_Chu, задавая абстрактные вопросы вы будете получать абстрактные ответы, 99% из которых не будут иметь ни малейшей ценности, когда вы столкнетесь с реальностью, т.е. выбрав платформу и начав с ней работать. Более того, 99% времени вы потратите на совсем другие проблемы, о которых даже не подозреваете, нежели те, которые вас сейчас волнуют.

            И насчёт хлеба и виски — когда я захочу сам сделать хлеб или виски я не буду изучать химию, биологию, мелиорацию, озоновые дыры и метеосводки на 10 лет вперед. Я пойду и куплю хлеба и виски или куплю самогонный аппарат и хлебопечку. И пока вы прокачиваетесь в обсуждении сортов ячменя, который вероятнее вырастет, если Китай вдруг увеличит загрязнение окружающей среды, я уже сто раз набухаюсь!
          • Sprite
            26 ноября 2022, 14:03
            Ho_Chu, ну и как художник художнику напомню

              • Sprite
                26 ноября 2022, 14:19
                Ho_Chu, ну удачи )
                PS Вы бы сразу сказали «Рынок РФ, Квик, Луа, куда копать», вместо «Создадим вместе идеального робота, правда я не знаю как» может и хейтеров было меньше, а «полезных советов» больше.
                  • Sprite
                    26 ноября 2022, 14:48
                    Ho_Chu, просто вы меня не поняли. Имхо настоящие проблемы, это не те абстракции, которые понятны и ребенку, типа надежного подключения и контроля позиций для зарабатывания денег, а те, которые связаны с конкретной платформой, языком, задачей, стратегией, рынком, инструментом. И это 99% всего и это нельзя решить разговорами в интернетах.

                    — Я хочу дешево и долго и могу подождать!
                    — У вас ещё вся жизнь впереди, есть ненулевой шанс дождаться )
        • Дмитрий Овчинников
          26 ноября 2022, 15:12
          Sprite, 
          Так вот, исходя из этого предположения, открою вам ещё одну тайну — все разработчики платформ знают все ваши проблемы и даже те проблемы, о которых вы ещё не знаете и так или иначе всё это давным-давно решили.
          Видимо все, кроме разработчиков MT5.
          • Sprite
            26 ноября 2022, 15:31
            Дмитрий Овчинников, знание об отсутствии решения конкретной проблемы в конкретной платформе тоже ценно )) И уж точно более ценно, чем знание о существовании проблемы вообще. Кстати, а что за беда c MT5?
            • Дмитрий Овчинников
              26 ноября 2022, 15:49
              Sprite, 
              Кстати, а что за беда c MT5?
              Там есть врожденные проблемы, например те, которые связаны с изначальным форекс предназначением и, соответственно, хеджинговым учетом. Эти проблемы, как говориться, не баги, а фичи терминала. 

              Но есть и чисто утилитарные вопросы, не решающиеся ГОДАМИ! Например нет возможности получить статус сессии. 
              • Sprite
                26 ноября 2022, 16:02
                Дмитрий Овчинников, а это про что?
                www.mql5.com/en/docs/marketinformation/symbolinfosessiontrade
                • Дмитрий Овчинников
                  26 ноября 2022, 16:10
                  Sprite, 
                  а это про что?
                  www.mql5.com/en/docs/marketinformation/symbolinfosessiontrade
                  Это вообще про другое. Это про расписание торгов. Оно, кстати, для фортс тоже прописано криво и непригодно к использованию.
                  Например вот так:
                  • Sprite
                    26 ноября 2022, 16:15
                    Дмитрий Овчинников, значит я не понял что значит «Статус сессии». В смысле торгуется ли инструмент или что?
                    • Дмитрий Овчинников
                      26 ноября 2022, 16:29
                      Sprite, 
                      • Sprite
                        26 ноября 2022, 16:40
                        Дмитрий Овчинников, 
                        ?

                        • Дмитрий Овчинников
                          26 ноября 2022, 16:55
                          Sprite, 
                          это свойства инструмента. они статичные!

                          Например: стандартный инструмент Si-12.22 будет иметь свойство
                          SYMBOL_TRADE_MODE_FULL
                          а склейка Si Splice будет иметь свойство
                          SYMBOL_TRADE_MODE DISABLED
                          а, например, инструмент SMLT (на фондовой секции) будет иметь свойство
                          SYMBOL_TRADE_MODE_LONGONLY
                          • Sprite
                            26 ноября 2022, 16:58
                            Дмитрий Овчинников, т.е. если запросить это свойство во время премаркета/клиринга и во время сессии, то значение будут одинаковыми?
                            • Дмитрий Овчинников
                              26 ноября 2022, 17:06
                              Sprite, 
                              да, это ведь общее свойство инструмента.
                              • Sprite
                                26 ноября 2022, 17:13
                                Дмитрий Овчинников, ясно, тогда видимо как-то так www.mql5.com/ru/forum/224247
                                ЗЫ Возможно вы помните что я в MQL ни бум-бум, просто интересно стало, вот и порылся в доках.
                                • Дмитрий Овчинников
                                  26 ноября 2022, 17:18
                                  Sprite, 
                                  есть прямой путь — разработчикам производителя научится транслировать информацию, предоставляемую биржей, в терминал для пользователей. 
                                  этот путь, к сожалению, не работает.
                                  есть МНОГО кривых путей, но чем кривее путь, тем больше вопрос: а нафига тогда МТ5?
                                  • Sprite
                                    26 ноября 2022, 17:31
                                    Дмитрий Овчинников, я думаю что «разработчикам производителя научиться» — это нереально, потому что каждая биржа имеет свой диалект стандартных протоколов и поддерживать весь этот мировой зоопарк сильно дороже, чем впаривать брокерам свои сервера, которые в свою очередь впарят своим клиентам клиентов к этим серверам. Что собственно и делают MQ, Arqa и пр. Так что имхо путь — «Мне нужен коннектор к FORTS» не такой уж и кривой, а MQ тут ни причём, т.к. это всеобщая проблема.
                                    • Дмитрий Овчинников
                                      26 ноября 2022, 17:41
                                      Sprite, 
                                      напомню с чего начали?


                                      Если вы в своем исходном месседже подразумевали что разработчики давным-давно решили посылать нахер все требования и желания пользователей, тогда согласен :)
                                      • Sprite
                                        26 ноября 2022, 17:50
                                        Дмитрий Овчинников, ок, был не прав, разработчиков MQ исключаем из списка «Все» )
                            • Дмитрий Овчинников
                              26 ноября 2022, 17:16
                              Ho_Chu, 
                              я очень уважаю ваш посыл к продуктивным дискуссиям! здесь их давно уже нет. 
                              вы немного не с того начали, вам уже обратили на это внимание многие практики. 

                              если хотите решать общие проблемы алго, попробуйте поизучать проблемы с данными и торговым окружением, а не с железом и интернетом :)
                                • Дмитрий Овчинников
                                  26 ноября 2022, 17:43
                                  Ho_Chu, 
                                  проблемы с точки зрения пользователя
                                  так это и есть основная проблема пользователя, естественно после того, как он научился зарабатывать :)
            • Sprite
              26 ноября 2022, 16:12
              Ho_Chu, можно конечно жаловаться на квик (арке это до лампочки), а можно использовать кучу других терминалов, которые подключаются через квик и в которых всё в порядке. Да и насчёт квика я тоже не уверен, вы о каких проблемах говорите, с чем конкретно у вас беда? Вообще говоря есть маркет дата, если есть к ней доступ через API — большего вы нигде и никак не получите. На что тут жаловаться?
                • Sprite
                  26 ноября 2022, 16:42
                  Ho_Chu, вы снова не поняли, я про API к маркет дате, которое есть в квике. Чего вам не хватает? На что вы конкретно жалуетесь? На биржу?
                  • Mingers
                    26 ноября 2022, 18:17
                    Sprite, Он сам не знает. Зачем вы тогда на него время тратите, если он вас не понимает?
                    • Sprite
                      26 ноября 2022, 18:33
                      Mingers, я тоже не знаю, в смысле зачем время трачу )
                      Возможно данный напалм просвещения слегка разбавит толпу математиков, в соседней ветке набросившихся на охлц с непонятными словами. Ну или просто скучно. Тут вообще, если посмотреть, дичь какая-то творится, облака прикручивают, идеальных роботов делают, алготрейдинг умерщвляют и сразу же реинкарнируют. Так что уже можно всё и всем )
                      • Mingers
                        26 ноября 2022, 18:49
                        Sprite,  Давно на таких «мыслителей» не трачу время. Это напрасная потеря времени. Поток сознания и поток вопросов не закончится. 
                        • Sprite
                          26 ноября 2022, 19:00
                          Mingers, находясь тут вы сами себе противоречите )
                          • Mingers
                            26 ноября 2022, 19:07
                            Sprite,  я потратил 2 минуты на прочтение беглое комментов и написал вам ответ… теперь сравните с тем сколько вы потратили времени на написание своих простыней, после чего выяснили, что напрасно тратите время. Так кто из нас противоречит своим утверждениям?

                            Смешно… чел решил и со мной теперь поспорить
                            Тогда продолжайте строчить… удачи
                            • Sprite
                              26 ноября 2022, 19:10
                              Mingers, я не утверждал что зря трачу время и разумеется заранее знал, что всё это напрасно.
                        • Sprite
                          26 ноября 2022, 20:09
                          Ho_Chu, а у меня рейтинг 5 и я не математик, поэтому я не знаю кто такая стационарность и зачем мне рейтинг.
                            • Sprite
                              26 ноября 2022, 20:29
                              Ho_Chu, я не понял, у вас раздвоение личности? Какие ещё точки входа, «полтора ляма», 10 рублей? И с какого перепугу вы решили, что я собрался вам что-то кодить?
                                • Sprite
                                  26 ноября 2022, 20:36
                                  Ho_Chu, обидеть? Да вы и правда с ума сошли. Начали с вопросов про инфраструктуру и риски, а закончили каким-то бредом не относящимся к теме. И да, меня не возьмут ни в какой «кукол», потому что а) я не знаю что это такое и б) мне никуда не надо.
                                  • Дмитрий Овчинников
                                    26 ноября 2022, 20:41
                                    Sprite, 
                                    Начали с вопросов про инфраструктуру и риски, а закончили каким-то бредом не относящимся к теме.
                                    по традиции смарт-лаба все закончилось, как обычно, закидыванием всего вокруг дерьмом. 

                                    • Sprite
                                      26 ноября 2022, 20:49
                                      Дмитрий Овчинников, да, неожиданно, может математик не верно рассчитал субботние риски, чутка переев хлеба и виски ) Кстати, а вы знаете что такое «кукол»?
                                      • Makstrade
                                        26 ноября 2022, 20:59
                                        Sprite,  А некоторые вас и других предупреждали и тут и в предыдущих его топиках, что он из себя представляет. 
                                        • Sprite
                                          26 ноября 2022, 21:02
                                          Makstrade, ну просто веселье перешло в новую плоскость )) Вопросы по квику -> математика -> умение видеть сквозь время и пространство, аж до Гаваев )))
                                            • Sprite
                                              26 ноября 2022, 21:10
                                              Ho_Chu, может быть что-то в консерватории подправить?
                                      • Дмитрий Овчинников
                                        26 ноября 2022, 20:59
                                        Ho_Chu, 
                                        а жаль, правда?
                                        Да, скорее жаль. Я люблю почитать интересные дискуссии. Спасибо вам, пойду в другие топики :)
  • Mingers
    26 ноября 2022, 15:07
    Автор все ждет, что ему идеального робота нарисуют в инете. Так сказать пытается сокращать свои временные издержки и получить то, что другие годами нарабатывали. 
  • GOLD
    26 ноября 2022, 15:05
    у меня боты сигналят, если пропадает связь и если цена не меняется в течении минуты… сам бот в такой ситуации ничего не должен делать… только сигналить хозяину
  • alver42
    26 ноября 2022, 15:24
    Автор, в какой части будем обсуждать нахождение точек входа и определение направления движения сделки?

    Вот, например, все знают про уровни. Почему одни, несмотря на большой объем покупок/продаж прошиваются. А на других, стоит в стакане 5 контрактов перед ним, например, и вроде бы тыкни в него и вперёд, ан нет, цена не доходит и разворачивается.
      • alver42
        26 ноября 2022, 15:37
        Ho_Chu, Так, а зачем нужен робот, который может только разрыв связи определять?
  • iddqd3n
    26 ноября 2022, 15:20
    Поддержу мистера Франклина. Если сама по себе стратегия торговли не завязана на остановку/восстановление торгов, то стоит все варианты потери возможности торговать слить в одну кучу и назвать «биржа оффлайн». Достаточно встать на паузу и уведомить.
      • iddqd3n
        26 ноября 2022, 16:53
        Ho_Chu, имхо он неизвестен. Почти все факапы биржи уникальны, имхо, каждый раз узнаём что-то новое, к чему почти никто не был готов. Все смотрят в прошлое, видят 100 вариантов сбоя, но когда сбой случается, он случается 101-м образом. И т.д.

        Я люблю оставаться в рамках базовой системы. Читать новости, парсить сайты — это, кмк, отдельный вид роботов, который прямо на это и натренирован, соответственно, внешняя лента для него становится важной для принятия решений.

        Если же робот смотрит только на котировки, то вообще нет смысла заморачиваться, т.к. все косяки уже были в этих котировках, и алгоритм это учитывает.

        Внутри системы у нас есть:
        — есть/нет коннект до брокера (тут и инет, и отвал брокера, и отвал биржи — пофиг)
        — есть/нет апдейт данных (как правило, нет апдейта == не будет и решения для сделки — пофиг)
        — срабатывают/нет заявки

        Актуально особо смотреть за последним. Если заявка не срабатывает, то проще всего встать на паузу и уведомить человека кодом ошибки. Можно обрабатывать стандартные коды, но опять же, алгоритм обычно пишется, чтобы ошибок не было, а если она вдруг вылазит (скажем, внезапно как бы нет денег на счету, хотя бот их видит), то это повод посмотреть куску мяса на проблему :)


        P.S. То, что вы пытаетесь делать — явно излишнее программирование. Автоматизация — это круто, но автоматизировать нужно только то, что действительно есть рутина. Писать и отлаживать неделю что-то, что будет работать 5 минут раз в год, да ещё и с непредсказуемым результатом, — так себе затея, проще руками.
  • kvazar
    26 ноября 2022, 17:24
    мне бы ваши проблемы… которые яйца выеденного не стоят)
      • kvazar
        26 ноября 2022, 22:31
        Ho_Chu, нет, смартлаб не для этого. я пока таких ресрусов не знаю. закрытые алгочаты тоже не решают) алго — путь одиночек и маленьких команд. я — одиночка. и как мне кажется, ничего НОВОГО я уже не узнаю)
          • kvazar
            26 ноября 2022, 22:33
            Ho_Chu, норм, знания позволяют
  • anon
    26 ноября 2022, 18:35

    > Что делать в таких случаях?

    а ничего не делать — срубить таск и послать смс/телегу хозяину


    > Если у нас случилась приостановка торгов на время,
    > то как это понять на уровне алгоритма?
    > Вероятно, можно ввести простое условие об отсутствии тиков по
    > каким-либо  инструментам одновременно, которое будет означать
    > приостановку торгов.

    в интерфейсе биржи есть поле «статус торгов» — что мешает просто пользоваться им?

  • Jame Bonds
    26 ноября 2022, 21:35
    Многие здесь пишут, что топикстартер зря заморачивается. 
    Не вполне соглашусь с этим.
    Во-первых, часть стратегий может этот аспект игнорировать. Например, торговля на часовых таймфреймах без плеч. Другое дело, если бот активно присутствует в стакане, да еще и в разных инструментах.
    Во-вторых, планки — это одна из тех функций, без которых можно обходится годами.
    А потом случается один из тех безумных дней, вроде «дерипасхи» (апрель 2018), ковид или 24 февраля (не дай бог!) и, оказывается, что правильное поведение в такой ситуации крайне востребовано.
    • kvazar
      26 ноября 2022, 22:04
      Jame Bonds, ты не пропустишь этот день. более того, перейди на ручной режим для начала. а если нет — сделай ТС для работы на планках. это 0,00001% всех проблем в алго.
        • kvazar
          26 ноября 2022, 22:28
          Ho_Chu, я включаю свою систему каждое утро. я и только я. и выключить я могу ее в любой момент, закрыв позиции. все де*мо случается не на торгах, а до.
            • kvazar
              26 ноября 2022, 22:35
              Ho_Chu, нет конечно. есть интрадей стратегии, есть свинг (среднесрок), все зависит от логики. я могу попасть на гэп, но риски смешные/просчитаны.
                • kvazar
                  26 ноября 2022, 23:23
                  Ho_Chu, обычный гэп. а речь о планках же. не так уж много было таких открытий.
    • Андрей К
      26 ноября 2022, 22:16
      Jame Bonds, планки — это один из тех моментов на которых можно ливануть первее всего )

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

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