Eugene Bright
Eugene Bright личный блог
31 мая 2026, 14:24

Сжатие базы котировок. Игнорирование «хвостов» вечерних сессий.

              Одним из главных принципов построения эффективной Торговой Стратегии (ТС), на мой взгляд, является использование только «нужных» (релевантных вашей ТС) периодов активности.

              Не нужно стараться захватить весь торговый период с 9-00 (предторги) утра и вечернюю сессию, если вы хотите торговать интрадей. Эти периоды вам не нужны, но вы вынуждены их учитывать, поскольку все индикаторы и осцилляторы, установленные в торговой системе (и, соответственно, в терминале) используют непрерывные ряды котировок. Ведь терминал (пример – QUIK) не имеет встроенных инструментов «обрезания» исходной базы, т.е. как только вы подписываете свой бот на получение данных командой

ds, error_desc = CreateDataSource(ClassCode, TickerCode, TimeFrame),

вы тем самым получаете «полный пакет» всех доступных данных.

              Нужно понимать, что вам для торгов нужны не все данные, а только часть, релевантная вашему торговому периоду. Все остальные должны быть отброшены, но отброшены по-настоящему. Ведь, когда вы в параметрах окна «График по инструменту» устанавливаете фильтр «Отображать данные за период…», вы не обрезаете базу. В ваш бот эта база закачивается вся!

              В самом деле, как при полной базе можно заставить RSI или ATR выдавать верные, с точки зрения вашей ТС, текущие параметры состояния рынка? Как на этих непрерывных данных можно строить именно внутридневную стратегию? Тем более, что даже эта ТС может быть, как минимум 2 видов: «чистая внутридневная» и совокупность «чистых внутридневных на протяжении более длительного суммарного периода торговли». Например, я использую именно совокупность внутридневных сессий, состоящих из чистых интрадеев, но объединенных одним временным рядом котировок.

              В случае чистых интрадеев, я торгую только период 10-00…18-40, без учета ценовой статистики предыдущих дней и периодов. Просто вырезаю этот период и рассчитываю свои (не предлагаемые терминалом торговой системы) индикаторы, каждый из которых получает свое первое значение именно в 10-00 каждого дня и последнее – в 18-40 того же дня. На следующий день первым значением индикатора опять же становится первая котировка в 10-00 этого дня. Данных за предыдущие дни в индикаторе нет, и они не обсчитываются и не влияют на текущие значения текущего дня.

              В случае использования, например, недельной совокупности интрадеев, мои индикаторы обрабатывают только нужные периоды с 10-00 до 18-40, а всё остальное отбрасывается еще на стадии подготовки данных на входе в бот.

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

              Пример такой функции уплотнения:

Сжатие базы котировок. Игнорирование «хвостов» вечерних сессий.



Здесь:

  1. «Начальная дата» вычислена отдельно. Если вы торгуете только текущий день, то «начальная дата» – это СЕГОДНЯ. Если торгуете совокупность интрадеев на протяжении недели, то «начальная дата» — это дата первого рабочего дня недели (понедельника, если неделя полная). Я торгую только периоды между неторговыми (в полном смысле слова) днями. Эти периоды вычисляются автоматически ботом на основании Торгового календаря MOEX.
  2. «date_to_number» и «time_to_number» — это функции преобразования даты и времени элементов базы котировок в численный формат для возможности оперирования этими параметрами.

 Одна особенность этого подхода: все используемые вами индикаторы теперь нужно прописывать в виде процедур в теле бота в полном аналитическом виде.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
5 Комментариев
  • Az72
    31 мая 2026, 14:56
    … а лучше вообще  без индикаторов, один график. чем проще система, тем лучше.
      • Az72
        31 мая 2026, 15:17
        Eugene Bright,  я имел ввиду, что график отображает все, остальное шум и интерпретация шума, как может индикатор что  то предсказывать, если он строится на основании прошедшего времени(данных), сколько уже я видел этих  перекупленностей перепроданностей по рси, стохастик,  и т.п. а толку то от них, они могут  сколько угодно диверить на эксремумах и давать ложные сигналы, показывая лишь то, что сильный тренд, который чихал на их дивера и перекупленность-проданность. И боты та же история, они торгуют  до поры до времени, и на резких -сильных изменениях «слетают с катушек» и уж  тем  более они плохо подходят с нашему рынку. Я понимаю, если робот торгует на насдаке в каком нить голдман саксе, джипиморган  банке. но не на нашем рынке. моя точка  зрения, спорить не хочу.
          • Az72
            31 мая 2026, 15:19
            Eugene Bright,  ну и славно

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

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