Андрей К
Андрей К личный блог
27 ноября 2018, 16:35

Багосимулятор в алготрейдинге

     Сегодня у нас были очередные пожарные учения. К слову сказать, это уже третьи за год. Уже выработался набор правил, что нужно сделать в терминале/ах, прежде чем покинуть помещение.
     Вообще это интересная тема. Судя по тому, что у нас иногда происходит в стаканах, не все алгоритмисты посвящают этому большое внимание. Говорю я сейчас про разработанный набор инструкций при возникших исключительных ситуаций в вашем алго. Если алготрейдер давно уже на рынке, то наверное знает, а если не знает, то поделюсь своим мнением, что набор стандартных типичных багов в алго несколько ограничен. А ситуаций, возникающих в следствии этих багов, еще меньше, но они есть и скорее всего и будут. Ну на вскидку, наверное можно вспомнить 8-10 типичных критических ситуаций, к которым может привезти исключительная ситуация. 
    Я в свое время начал их конспектировать, по мере получения опыта. Потом записывать процедуры поведения, шаг за шагом. А потом их еще проговаривать периодически, чтобы отложилась в памяти.  Все это может вылиться в некий тестовый стенд, на котором можно будет оттачивать мастерство поведения при критических ситуациях. Это очень полезно. Это как пилоты оттачивают свое мастерство на реальных симуляторах.
   Кто узнал себя, всем привет, кто не узнал, прошу в комментарии поглагольствовать, как нужно писать правильный код  =)))
46 Комментариев
  • Тарас Громницкий
    27 ноября 2018, 16:57

    Правильный код — это модульная, низкосвязанная конструкция.

    Использующая паттерны и реализующая набор структур, описывающих бизнес-сущности.

    Пишется, тестируется и наращивается постепенно.

  • Antishort
    27 ноября 2018, 17:10
    У меня был один баг. Набор позиции был довольно сложный, одновременно выставлялись стопы. Робот не всегда вовремя получал данные от сервера об уже выставленных стопах и периодически на одной цене мог поставить 5-6 стопов. В результате позиция не закрывалась, а переворачивалась, иногда удваиваясь.  В результате просмотра сделок создавалось впечатление, что торговал какой-то идиот во все стороны. Баг всплывал не всегда, а только периодически, поэтому отловить и вытравить заразу заняло какое-то время.

  • Jame Bonds
    27 ноября 2018, 17:26
    На это можно целую книгу написать.
    Пока нет времени только отрывочные мысли.
    1) Учиться, учиться и учиться.
    2) Везде и всюду проверять на ошибки.
    3) Тотально логгировать все события, вплоть до каждого изменения цены, с указанием точного времени.
    4) Вести учет всех сбоев, регулярно осуществлять анализ сбоев и модификацию кода для предотвращения их повторения.
    5) Иметь в коде защиту от критических рыночных событий.
    6) Не писать на Lua…
  • Gillan
    27 ноября 2018, 18:35
    Привет, Андрей!
    Сегодня у нас были очередные пожарные учения.… что нужно сделать в терминале/ах, прежде чем покинуть помещение.
    А почему вы не запускаете терминалы на выделенных серверах в датацентре? Это же очевидно надежнее, к тому же, как я понял у вас алготрейдинг, т.е. просто поглядывать как работает надо?
    поделюсь своим мнением, что набор стандартных типичных багов в алго несколько ограничен.… Ну на вскидку, наверное можно вспомнить 8-10 типичных критических ситуаций, к которым может привезти исключительная ситуация. 
    А напиши, интересно почитать, на что натыкаются опытные трейдеры

    Отдельный вопрос: какие терминалы/приводы/ПО вы используете? Какие нарекания по надежности? Вот тут пишут про Quik, Lua, есть еще целое коммьюнити разрабов под MetaTrader. А у вас что?

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

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