Skip to content

Финальный pre-reset backup торговой сессии harvester-engine — 2026-08-16 ​

Назначение ​

Это локальная форензическая копия production-сессии harvester-engine, сделанная после завершения всех её позиций и перед сбросом/удалением состояния. Она сохраняет фактические события, сигналы, решения, ордера и позиции для последующего offline-разбора штатным scripts/analysis/forensics.sh.

Артефакты лежат в data/harvester-engine-session-20260816T144518Z/. Независимая серверная копия оставлена на VPS в /home/deploy/pm-backtest/.deploy/backups/manual-trading-session-harvester-engine-20260816T144518Z.

Происхождение снимка ​

ПолеЗначение
Instanceharvester-engine
Контейнерpm-engine-harvester-engine
Начало снимка2026-08-16T14:45:18Z
Завершение engine.db2026-08-16T14:45:19Z
Завершение config.db2026-08-16T14:45:19Z
Исходный engine.db/home/deploy/pm-backtest/instances/harvester-engine/data/engine.db
Исходный config.db/home/deploy/pm-backtest/instances/harvester-engine/config/config.db
МетодSQLite online .backup при работающем движке
Остановка/рестарт движкаНет / нет
Terminal preflight38 CLOSED + 4 REDEEMED, активных позиций нет, unresolved_submits=0
SHA-256 бинаря движка73ce2fe5cc4298764c127bf6447481ea6a8d455afc96e6078fbf7618007d6cce
wallets.dbНе копировалась; ключей и секретов в наборе нет

Состав и проверка ​

ФайлНазначение
engine.dbСобытия, сигналы, решения, ордера и позиции торговой сессии
config.dbВерсии strategy config, действовавшие в момент снимка
engine-schema.sqlЗафиксированная схема engine.db
config-schema.sqlЗафиксированная схема config.db
table-counts.tsvКонтрольные количества строк в основных таблицах
METADATA.txtProvenance и способ получения снимка
SHA256SUMSКонтроль целостности всех остальных файлов набора

Контрольные SHA-256 баз:

БазаSHA-256Размер
engine.db78d617d6753a3de5af4e07bbfa740bd3879c1ad137cce7a085a2fbf0daa14e7258,241,024 bytes
config.db9e6dd2f6ceb7dd81008780f9de3ba8a1b076dfda20220537689cb2852a56ad4c798,720 bytes

Проверка без изменения баз:

bash
cd docs/analysis/data/harvester-engine-session-20260816T144518Z
sha256sum -c SHA256SUMS
sqlite3 'file:engine.db?mode=ro&immutable=1' 'PRAGMA integrity_check;'
sqlite3 'file:config.db?mode=ro&immutable=1' 'PRAGMA integrity_check;'

Покрытие данных ​

Таблица/состояниеСтрок
events9,553
signals2,381
orders2,431
positions42
selection_signals206
decision_liquidity_profiles5,091
stop_dip_contexts8,548
unresolved_submits0
Ордера FILLED / CANCELLED / REJECTED74 / 2,164 / 193
Позиции CLOSED / REDEEMED / активные38 / 4 / 0

Диапазон времени events.ts_ms: 1786549938601..1786847540754; positions: 1786550384143..1786847540754. В config.db присутствуют weather-harvester (latest_version=42, published_version=42) и weather-motion (latest_version=1, published_version=1); первая строка включена, вторая выключена в момент снимка.

Offline-анализ ​

Новые ad-hoc SQL-скрипты для этой копии не нужны. Используется существующая форензическая поверхность:

bash
FORENSICS_TESTDATA=docs/analysis/data/harvester-engine-session-20260816T144518Z/engine.db \
  scripts/analysis/forensics.sh positions --engine

FORENSICS_TESTDATA=docs/analysis/data/harvester-engine-session-20260816T144518Z/engine.db \
  scripts/analysis/forensics.sh stops --engine

FORENSICS_TESTDATA=docs/analysis/data/harvester-engine-session-20260816T144518Z/engine.db \
  scripts/analysis/forensics.sh liquidity-profile --engine

Смысл колонок, инварианты fill-check/no-survivorship и ограничения каждой подкоманды описаны в scripts/analysis/README.md.

Ограничения доказательности ​

  • Online .backup даёт внутренне согласованный снимок каждой SQLite-БД, но engine.db и config.db копировались последовательно. Даже при одинаковой секундной метке завершения набор не является общей атомарной транзакцией между двумя базами.
  • Это срез до указанного времени. Записи, появившиеся после завершения соответствующего .backup, в него не входят.
  • В наборе нет CLOB price history, Gamma ground truth и capture-потока. Команды, которым нужны эти источники, должны явно получить их отдельно и не должны молча обращаться в сеть из offline-режима.
  • Snapshot сохраняет наблюдавшееся поведение кода и пригоден для диагностики. Сам по себе он не доказывает доходность и не разрешает тюнинг: EV-вердикт требует реальных FILLED входов/стопов, разрешения открытых позиций и пост-фикс форвард-данных по правилам Harvester EV.
  • Это evidence-набор, а не автоматический rollback bundle. Восстановление в production нельзя делать поверх работающего контейнера без отдельной процедуры и проверки целевых путей.