злой человек
злой человек личный блог
07 сентября 2017, 11:20

Роботов нужно лучше контролировать!

Случилась тут у меня на днях печалька, при настройке робота опечатался и в одном из параметров лишний нолик ввел. Как итог — после включения робот за несколько секунд слил 10 килобаксов, нарисовав шпильку на инструменте. А как вы защищаетесь от подобных ошибок?
Роботов нужно лучше контролировать!

49 Комментариев
  • SergeyJu
    07 сентября 2017, 11:23
    Лимитами по открытой позиции можно защищаться. Я имею в виду встроенный риск-менеджмент.
    Но всех возможных ошибок предвидеть нельзя, поэтому поневоле приходится подключать глаза и ручки.

  • antonbell
    07 сентября 2017, 11:28
    перед запуском простите но лимит надо ставить в пару процентов от торгового лимита вообще который планировали. 
    я еще ставлю лимит на кол-во операций в секунду (если робот не хфт и то его можно снизить на время запуска) ну и просто лимит что лось в минуту такой то и стоп
      • mr lab
        07 сентября 2017, 14:48
        soer, Тут не понятно… Даже, если речь об HFT.
        В любом случае для конкретного алгоритма(или круга)
        можно отдельно обсуждать онлайн контроллеров с учетом возможных косяков в настройках, если они почему-то не определились до старта.
  • vvkg
    07 сентября 2017, 11:33
    а почему не запустили бота в тестовом режиме — он бы сделки рисовал без реальных и тогда наверное возможно было бы заметить ошибку
  • 2153sved
    07 сентября 2017, 11:53
    А как вы защищаетесь от подобных ошибок?

    руками торгуем
      • 2153sved
        07 сентября 2017, 12:11
        soer, судя по тому как все шортят сбер, голова однозначно не нужна.
      • Поликарп Брусникин
        07 сентября 2017, 21:11
        сферический трейдер в вакууме, сферическая чушь
          • Поликарп Брусникин
            07 сентября 2017, 21:37
            сферический трейдер в вакууме, вот это высказывание
            руками зарабатывать на бирже невозможно.
              • Поликарп Брусникин
                07 сентября 2017, 21:48
                сферический трейдер в вакууме, ))) понятно. У меня абсолютно другое мнение. Опять же если речь не о спекуляциях. Но спекуляциях возможен ваш вариант
  • matrix
    07 сентября 2017, 11:59
    Торгуйте пжл. чаще :)
      • matrix
        07 сентября 2017, 12:10
        soer, мы на ты уже? я вообще хз о каком инструменте и какой бирже идет речь :) но так торговать однозначно нужно чаще!!!
  • Garry36.6
    07 сентября 2017, 12:14
    10 килобаксов слить!
    Я в шоке.
  • Тимофей Мартынов
    07 сентября 2017, 12:15
    а че за инструмент?
  • П М
    07 сентября 2017, 12:21
    да, похоже какой-то неликвид?
    меня пока бог миловал. 
    хотя разок было, что-то там глюкануло, уже не помню
    и робот кинулся покупать-продавать-покупать-продавать
    ничего страшного, т.к. заявки ставились в спред.

    вообще наверное спред надо анализировать.
    был же случай, когда стаканы перевёрнутые биржей транслировались. вот тогда тоже угар был. мне естественно ничего не вернули тогда.
  • Григорий Старцун
    07 сентября 2017, 12:48
    Не использовать в алгоритмах исполнение сигналов по рынку.
  • Igr
    07 сентября 2017, 13:08

    а что инструмент то не показываешь, акция какая или чего?

     

    а тестировать на малых объёмах не вариант? 

  • Replikant_mih
    07 сентября 2017, 13:19
    По идее должен быть модуль с наибольшими правами в системе, который контролирует чтобы не было херни всякой, чреватой потерями — модуль управления рисками. И любая система, любые действия на рынке должны через него проходить и чтоб этот модуль мог вмешиваться в торговлю. И тогда если этот модуль работает как часы, тот теоретически можно подключать сколь угодно безбашенную или глючную стратегию, потому что риск-модуль ей не даст баловаться. Зашить в такой модуль можно много разного — в т.ч. запретить удары с дальней ценой с объемом большИм для текущего стакана, что может приводить к таким проносам.
      • П М
        07 сентября 2017, 14:17
        soer, отклонение от средней чем плох? если тренд торгуется, т.е. вход в сторону движения, то лучше ближе к средней вставать как-то чем на самом краю. средняя естественно короткая совсем. 5-10 сэмплов.
        кстати, ведь говорят вот «кукл стопы собирает»
        в тот движение цены было целиком на роботе? или сработали какие-нибудь стопы чужие?
        если второе, почему бы не сделать ещё одного робота — выжидает штиль, льёт вниз, а в самом низу выкупает в 10 раз большим объёмом и продаёт после отката.

      • Replikant_mih
        07 сентября 2017, 14:24

        soer, Ну, во-первых, можно разделить на уровни опасности. Например, самый высокий — сразу блокировать опасную активность, зачищать последствия, алертить создателю (не Богу, а содателю системы :) ), уровень поменьше, уменьшать сайзы или что-то подобное делать, и опять-таки алертить, уровень ещё меньше — ничего не делать — просто алертить ну и зеленый уровень — это когда всё гуд.

         

        Далее как идёт разбиение по уровням. По хорошему модуль должен получать максимум инфы для анализа, даже если конкретная стратегия не юзает стакан, а смотрит на свечки только, то риск-модуль всё равно должен получать и данные по стакану. А так же данные по накопленным показателям — просадка за день, за период и прочее и прочее. Соответственно если стратегия затупила и херню хочет сделать или если стратегия просто не всей инфой располагает, например не смотрит на толщину стакана, а хочет туда большой сайз засадить — в любом из этих случаев риск модуль будет обладать полной инфой и разрулит если всё будет не очень хорошо.

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

        Может быть не очень много конкретики — это потому что у меня этого ничего нет и я глубоко не продумывал, но в будущем хотел бы добавить такой модуль.

        Кстати ещё один подход к предотвращению или быстрому реагированию (в противовес или в дополнение к системе паттернов) — мониторинг аномальной активности — ну там среднее кол-во сделок за период и т.д., допустим если робот делал 7 сделок в день в среднем, на 5-й сделке за минуту можно и глубоко задуматься, а не сломалось ли чего)) — задуматься, опять-таки имею в виду алгоритмически задуматься).

          • Replikant_mih
            07 сентября 2017, 14:54

            soer, ну я не увидел нюансов этой траблы — набор был или ещё что, поэтому как отловить именно такой кейс — не смогу, естественно, подсказать.

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

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

          • Replikant_mih
            07 сентября 2017, 15:16
            soer, В общем можно сказать, что я собаку съел на вычленении аномальной активности из общего объема активностей, но немного в другой области-отрасли). Сложности по-любому будут, но всё решаемо, уверен.
      • Jkrsss
        07 сентября 2017, 14:45
        soer, А по моему ошибка за рамками алгоритма и с этим бороться надо совершенно другими методами. Если сам алгоритм нормальный проверенный, а виноват сам пользователь который включает его. (Значит перед включением надо танцевать, молиться бить в бубен и дрожайшим образом вводить значения) :_-)

        Или в алгоритме заложена скрытая логическая ошибка которая будет проявлять себя так. и всякие дополнительные модули будут только увеличивать ошибку.
  • Prophetic
    07 сентября 2017, 14:31
    Все что можно посоветовать в данном случае — дважды перепроверять введенные настройки, перед запуском робота в боевом режиме. Или встраивать защиту от дурака, так чтобы вводимые параметры сравнивались с какими-то критическими значениями и не позволяли выставлять настройки приводящие к существенным убыткам.
    У меня было нечто подобное с АФК. Но не в настройках а в коде робота. Допустил две грубые ошибки. Одна в расчете объема увеличения позиции, а вторая в коде проверки предельно допустимых значений. Как результат — в день когда Система полетела вниз, робот увеличил позицию на объем в 20 РАЗ!!! превышающий правильно рассчитанный, и загнал в некоторый минус по остатку свободных средств на счете. Пришлось в срочном порядке сдавать часть ОФЗ. Было «больно», но виноват в этом только я. Надо было внимательнее проверять формулы в коде.
  • vlad1024
    07 сентября 2017, 17:26
    надо всегда сначала тест прогонять, или в эмуляторе или на рынке, и лишь после успешного прохождения теста, автоматически деплоить
  • Boris Litvinov
    07 сентября 2017, 17:28
    а на каком коннекторе бот? 
  • flextrader
    07 сентября 2017, 21:55
    а визуализация в фронтэнде не страдает (если он конечно есть), или все вбивается в конфигурационное файло?

    если рейндж относительно малознаковый (малоразрядный) — не просче ли форматировать поля ввода типовыми (для чисел) разделителями и навесить малюсенький парсер to int/float… итп
  • flextrader
    07 сентября 2017, 23:23
    зы, кстати (чуть больше подсказок публике):

    there is an incredible moment)):

    We are waiting more 
  • Niktesla (бывш. Бабёр-Енот)
    07 сентября 2017, 23:31
    ну, не десять килобаксов, но когда сослепу вфигачил цифру не после запятой а до, эффект был похожий… смотрю внимательней с тех пор, но иногда все равно косячу… не ну а чо, не защиту же от дурака с проверками на все поля ввода от себя же ставить…  ведь как только поставшь — понадобится куданить вбить ченить такое что эта защита не позволяет)))

    PS: я уж про энергобанк полчу вообще…
  • MS
    08 сентября 2017, 15:52
    А ведь кто-то копнёт историю, учтёт эту шпильку, сделает выводы, построит по ним систему и начнёт торговать…

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

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