sei sorveglianti registrano i giri e stanno in monitor_health (Fixes #16)
src/live/giri.registra_giro: una riga jsonl {ts ms, campi} dopo una misura completata,
mai un'eccezione. edge_watch, fee_watch, scale_watch, vrp_f_watch, venue_news (cron_daily)
e venue_watch (cron_book, orario) scrivono data/<dir>/runs.jsonl; niente riga senza misura.
monitor_health: sei MonitorSpec (30h i giornalieri, 3h venue_watch), open_labeled=False.
Stessa riparazione di cc01 (#10, #12), generalizzata. Primo giro notturno: NUOVO, non allerta.
Test: incrocio P1 percorso/RUNS, misura -> una riga, non-misura -> nessuna. Suite: 1098 passed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -42,10 +42,13 @@ import pandas as pd
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from src.live.giri import registra_giro # noqa: E402
|
||||
from src.live.notifier import notify # noqa: E402
|
||||
from src.portfolio.portfolio import combine_outer # noqa: E402
|
||||
from src.portfolio.sleeves import deribit_book_sleeves, tp01_sleeve # noqa: E402
|
||||
|
||||
RUNS = ROOT / "data" / "edge_watch" / "runs.jsonl"
|
||||
|
||||
# --- soglie CONGELATE (cambiarle invalida la taratura di r0726_edge_death.py) ---
|
||||
WIN_MONTHS = 36
|
||||
SHARPE_KILL = -0.5
|
||||
@@ -119,6 +122,7 @@ def run() -> dict:
|
||||
|
||||
def main() -> int:
|
||||
r = run()
|
||||
registra_giro(RUNS, sharpe=r["sharpe"], n_alert=len(r["alerts"]))
|
||||
if "--quiet" not in sys.argv:
|
||||
print("=" * 78)
|
||||
print(" EDGE WATCH — il book live sta ancora funzionando?")
|
||||
|
||||
Reference in New Issue
Block a user