Локальный кэш данных

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

Senzoukria · Глоссарий · Обновлено: сентябрь 2026


Что кэш хранит и зачем

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

  • Бары с объёмом по bid и ask на каждом ценовом уровне, чтобы футпринты и профили пересчитывались прямо с диска.
  • Тики для повтора, когда источник их отдаёт.
  • Метаданные покрытия: какие окна были запрошены, какие пришли, какие вернулись пустыми.
  • Истории стакана нет, если не использовался источник с записью глубины: сделки книгу не восстанавливают.

Кэш и покрытие

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

В Senzoukria

Страница настроек отсылает к странице Account за потоками данных, брокерами и локальным кэшем. Когда график открывается офлайн, он сообщает возраст последнего кэшированного бара и число баров в кэше на этом таймфрейме и предлагает воспроизвести кэшированную сессию; уведомление о выходных говорит, что любая сессия, уже лежащая в локальном кэше, открывается, прокручивается и считается как обычно, и что открытый рынок нужен только для новой истории. Панель данных бэктеста читает кэш, показывает, сколько окон из запрошенных закэшировано, и умеет докачать недостающее; инструмент с неизвестным шагом цены не кэшируется и скачивается заново при каждой загрузке, пока шаг цены не добавлен в каталог инструментов. Тиковый экспорт пишет кэшированную сессию в gzip-CSV с меткой времени, ценой, размером и стороной агрессора.

Типичные ошибки

  • Принимать последнее кэшированное закрытие за живую цену: экран приветствия помечает его как «последнее закрытие из кэша — не в реальном времени».
  • Считать, что кэшированная сессия на одной детализации покрывает бэктест на другой.
  • Удалять кэш ради устранения проблемы с отображением и потом платить за скачивание заново.
  • Ждать от кэша истории глубины для тепловой карты, когда записывались только сделки.

Эта страница на других языках

Частые вопросы

Можно ли работать с графиком вообще без подключения?
Да, по инструментам, которые уже есть в кэше. График открывается на кэшированных барах, индикаторы считаются, кэшированную сессию можно воспроизвести. Новое не приходит, пока не подключён источник и не открыт рынок. У инструмента, который вы никогда не открывали, локальных данных нет, и офлайн он не откроется.
Заполняет ли кэш пропущенные интервалы?
Нет. Кэш хранит то, что пришло, и фиксирует то, что не пришло. Пропущенное окно остаётся помеченным как отсутствующее, пока новый запрос не выполнится успешно. Заполнение дыр нулями испортило бы накопленную дельту, профили и бэктесты, поэтому приложение оставляет их видимыми.