#!/bin/bash # BOOK DERIBIT-ONLY (TP01+SKH01 nettati) — esecuzione LIVE a cadenza ORARIA. v2.0.0+. # SKH01 decide su griglia 230m -> serve girare piu' spesso del daily; orario IDEMPOTENTE: # riconcilia al target NETTO corrente (se non cambia nulla -> HOLD). Il feed 5m fresco per il # segnale SKH e' preso IN MEMORIA dentro book_execute (livefeed.fresh_5m): NON tocca i dati # certificati su disco. Esecuzione reale gated da config/live.json (execution_enabled) + --execute. # # INSTALLATO AL MINUTO :07, NON :00 (`7 * * * *`, spostato il 2026-07-29 durante l'incidente del # feed 5m). Motivo: IPOTESI di contesa al minuto tondo (l'ora esatta e' quando parte tutto il # resto della VPS). ⚠️ NON e' un fix verificato — e' un ripiego da un'osservazione sola, preso # perche' costa zero. Se il feed torna stantio anche al :07, l'ipotesi e' morta e la causa vera # la dira' `skh_feed_errors` nel report (instrumentazione del 29/07, vedi src/live/livefeed.py). export PATH="/home/adriano/.local/bin:$PATH" cd /opt/docker/PythagorasGoal || exit 1 mkdir -p logs { echo "===== $(date -u '+%Y-%m-%dT%H:%M:%SZ') cron_book =====" # Tripwire di venue PRIMA dell'esecuzione: se Deribit e' in stress l'allarme deve # partire anche quando book_execute fallisce per la stessa ragione. Non blocca (exit 2 # = allarme inviato); l'azione a un allarme e' manuale, vedi src/live/venue_watch.py. uv run python scripts/live/venue_watch.py --quiet || true uv run python scripts/live/book_execute.py --execute echo "===== done $(date -u '+%H:%M:%SZ') =====" } >> logs/cron_book.log 2>&1