Случилась тут у меня на днях печалька, при настройке робота опечатался и в одном из параметров лишний нолик ввел. Как итог — после включения робот за несколько секунд слил 10 килобаксов, нарисовав шпильку на инструменте. А как вы защищаетесь от подобных ошибок?
Но всех возможных ошибок предвидеть нельзя, поэтому поневоле приходится подключать глаза и ручки.
я еще ставлю лимит на кол-во операций в секунду (если робот не хфт и то его можно снизить на время запуска) ну и просто лимит что лось в минуту такой то и стоп
В любом случае для конкретного алгоритма(или круга)
можно отдельно обсуждать онлайн контроллеров с учетом возможных косяков в настройках, если они почему-то не определились до старта.
руками торгуем
Я в шоке.
меня пока бог миловал.
хотя разок было, что-то там глюкануло, уже не помню
и робот кинулся покупать-продавать-покупать-продавать
ничего страшного, т.к. заявки ставились в спред.
вообще наверное спред надо анализировать.
был же случай, когда стаканы перевёрнутые биржей транслировались. вот тогда тоже угар был. мне естественно ничего не вернули тогда.
а что инструмент то не показываешь, акция какая или чего?
а тестировать на малых объёмах не вариант?
А толку тестировать? Робот уже много лет успешно торгует и протестирован вдоль и поперек. Проблема была в опечатке при вводе параметров, когда ставил на очередной новый инструмент торговать его.
кстати, ведь говорят вот «кукл стопы собирает»
в тот движение цены было целиком на роботе? или сработали какие-нибудь стопы чужие?
если второе, почему бы не сделать ещё одного робота — выжидает штиль, льёт вниз, а в самом низу выкупает в 10 раз большим объёмом и продаёт после отката.
soer, Ну, во-первых, можно разделить на уровни опасности. Например, самый высокий — сразу блокировать опасную активность, зачищать последствия, алертить создателю (не Богу, а содателю системы :) ), уровень поменьше, уменьшать сайзы или что-то подобное делать, и опять-таки алертить, уровень ещё меньше — ничего не делать — просто алертить ну и зеленый уровень — это когда всё гуд.
Далее как идёт разбиение по уровням. По хорошему модуль должен получать максимум инфы для анализа, даже если конкретная стратегия не юзает стакан, а смотрит на свечки только, то риск-модуль всё равно должен получать и данные по стакану. А так же данные по накопленным показателям — просадка за день, за период и прочее и прочее. Соответственно если стратегия затупила и херню хочет сделать или если стратегия просто не всей инфой располагает, например не смотрит на толщину стакана, а хочет туда большой сайз засадить — в любом из этих случаев риск модуль будет обладать полной инфой и разрулит если всё будет не очень хорошо.
Далее что есть не хорошо и как определить, ну тут самый простой подход — набор проверок на опасность конкретных рисковых кейсов, тут чисто из опыта смотришь или опыт коллег. Тут два момента: надо отдельно превентивно смотреть всякие вещи (типа вот ударить много в тонкий стакан) и отдельно последствия мониторить, т.е. даже если у тебя не было паттерна на какой-то кейс и ты его не словил на лету и не предотвратил — ты быстро словишь последствия и примешь меры (робот примет сам — ну или не сам — в зависимости от уровня опасности, о которых выше писал) ну и т.д.
Может быть не очень много конкретики — это потому что у меня этого ничего нет и я глубоко не продумывал, но в будущем хотел бы добавить такой модуль.
Кстати ещё один подход к предотвращению или быстрому реагированию (в противовес или в дополнение к системе паттернов) — мониторинг аномальной активности — ну там среднее кол-во сделок за период и т.д., допустим если робот делал 7 сделок в день в среднем, на 5-й сделке за минуту можно и глубоко задуматься, а не сломалось ли чего)) — задуматься, опять-таки имею в виду алгоритмически задуматься).
— Как уже писал выше, о просадке пожно узнать только после закрытия позы, а тут шел активный набор.
— По отдельности заявки были вполне нормальны и отсеивать подобные заявки нельзя — тогда нормальные алгоритмы не смогут торговать.
— Аномальная активность это тоже норма во время резких движений на рынке. Например, на открытии торгов в 10.00, в первую секунду у меня иногда по сотне сделок проходит.
soer, ну я не увидел нюансов этой траблы — набор был или ещё что, поэтому как отловить именно такой кейс — не смогу, естественно, подсказать.
По поводу первой секунды в 10-00, сто сделок на этой секунде и при резких движениях норма, значит, предположительно, это не норма при нерезких движениях, значит надо смотреть чтобы при нерезких не было много сделок.
В общем это просто задача классификации — отличить аномалию от нормы, сможете отличить — сможете настроиться на это. Сложность связана с тем, что для разных стратегий нормы и аномалии разные.
Или в алгоритме заложена скрытая логическая ошибка которая будет проявлять себя так. и всякие дополнительные модули будут только увеличивать ошибку.
У меня было нечто подобное с АФК. Но не в настройках а в коде робота. Допустил две грубые ошибки. Одна в расчете объема увеличения позиции, а вторая в коде проверки предельно допустимых значений. Как результат — в день когда Система полетела вниз, робот увеличил позицию на объем в 20 РАЗ!!! превышающий правильно рассчитанный, и загнал в некоторый минус по остатку свободных средств на счете. Пришлось в срочном порядке сдавать часть ОФЗ. Было «больно», но виноват в этом только я. Надо было внимательнее проверять формулы в коде.
если рейндж относительно малознаковый (малоразрядный) — не просче ли форматировать поля ввода типовыми (для чисел) разделителями и навесить малюсенький парсер to int/float… итп
there is an incredible moment)):
We are waiting more
PS: я уж про энергобанк полчу вообще…