VIOLET V3e: enable shadow soak (faithful -0.02) + relaxable entry threshold

launch_dolphin_violet.py: _build_shadow reads DOLPHIN_VIOLET_ENTRY_VEL_DIV_THRESHOLD
(VIOLET-only gate relaxation for low-vol validation; logs RELAXED:not-parity-faithful).
supervisord.conf: DOLPHIN_VIOLET_DECISION_SHADOW=1 (faithful -0.02 default).
20-min validation soak PASSED: decisions journaled (sizer cubic curve reproduced
live), 0 bad rows, 0 orders, 0 errors. Findings for next: vel_div/asset pairing
parity (engine sizes IRP-picked asset w/ scan top-level vel_div), USDC-in-universe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Codex
2026-06-14 21:28:41 +02:00
parent 75e71ef66d
commit 02ecc55c16
2 changed files with 13 additions and 23 deletions

View File

@@ -327,11 +327,17 @@ def _build_shadow():
sess = uuid.uuid4().hex
capital = float(os.environ.get("DOLPHIN_VIOLET_SHADOW_CAPITAL", "69000"))
# engine defaults == live BLUE base curve (max_leverage 9.0, vel_div_threshold -0.02).
engine = VioletDecisionEngine()
# DOLPHIN_VIOLET_ENTRY_VEL_DIV_THRESHOLD relaxes the entry gate VIOLET-ONLY (e.g. to
# exercise the journal on a low-vol day). NOT BLUE-parity-faithful while relaxed.
thr = float(os.environ.get("DOLPHIN_VIOLET_ENTRY_VEL_DIV_THRESHOLD", "-0.02"))
relaxed = abs(thr - (-0.02)) > 1e-9
engine = VioletDecisionEngine(entry_vel_div_threshold=thr)
journal = VioletDecisionJournal(sink=ch_put_violet, session_id=sess)
LOGGER.warning(
"VIOLET DECISION SHADOW ON (session=%s ref_capital=%.0f) — journaling muted "
"decisions to dolphin_violet.violet_decisions; NO orders.", sess, capital,
"VIOLET DECISION SHADOW ON (session=%s ref_capital=%.0f entry_thr=%.4f%s) — "
"journaling muted decisions to dolphin_violet.violet_decisions; NO orders.",
sess, capital, thr,
" RELAXED:not-parity-faithful" if relaxed else "",
)
return {"engine": engine, "journal": journal, "capital": capital, "mono_ns": mono_ns}