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 sess = uuid.uuid4().hex
capital = float(os.environ.get("DOLPHIN_VIOLET_SHADOW_CAPITAL", "69000")) 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 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) journal = VioletDecisionJournal(sink=ch_put_violet, session_id=sess)
LOGGER.warning( LOGGER.warning(
"VIOLET DECISION SHADOW ON (session=%s ref_capital=%.0f) — journaling muted " "VIOLET DECISION SHADOW ON (session=%s ref_capital=%.0f entry_thr=%.4f%s) — "
"decisions to dolphin_violet.violet_decisions; NO orders.", sess, capital, "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} return {"engine": engine, "journal": journal, "capital": capital, "mono_ns": mono_ns}

View File

@@ -74,24 +74,8 @@ environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus
rlimit_as=2GB rlimit_as=2GB
rlimit_nofile=1024 rlimit_nofile=1024
[program:dolphin_live]
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dolphin_bingx.py
directory=/mnt/dolphinng5_predict/prod
autostart=false
autorestart=false
startsecs=15
startretries=3
stopwaitsecs=30
stopasgroup=true
killasgroup=true
stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dolphin_live_prodgreen.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
redirect_stderr=true
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PREFECT_API_URL="http://localhost:4200/api",PYTHONUNBUFFERED="1",DOLPHIN_DATA_VENUE="BINANCE",DOLPHIN_EXEC_VENUE="BINGX",DOLPHIN_BINGX_ENV="VST",DOLPHIN_BINGX_ALLOW_MAINNET="0",DOLPHIN_TRADER_ID="DOLPHIN-PRODGREEN-001",DOLPHIN_BINGX_DEFAULT_LEVERAGE="1",DOLPHIN_BINGX_PREFER_WEBSOCKET="1",DOLPHIN_BINGX_RECV_WINDOW_MS="60000"
[program:dolphin_pink] [program:dolphin_pink]
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dolphin_pink.py command=/mnt/dolphinng5_predict/prod/supervisor/run_with_dolphin_env.sh /home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dolphin_pink.py
directory=/mnt/dolphinng5_predict/prod directory=/mnt/dolphinng5_predict/prod
autostart=false autostart=false
autorestart=true autorestart=true
@@ -126,11 +110,11 @@ stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dolphin_live_violet.log
stdout_logfile_maxbytes=50MB stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10 stdout_logfile_backups=10
redirect_stderr=true redirect_stderr=true
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PYTHONUNBUFFERED="1",DOLPHIN_DATA_VENUE="BINANCE",DOLPHIN_EXEC_VENUE="BINGX",DOLPHIN_BINGX_ENV="VST",DOLPHIN_BINGX_ALLOW_MAINNET="0",DOLPHIN_TRADER_ID="DOLPHIN-VIOLET-001",DITA_V2_PREFIX="violet",DOLPHIN_BINGX_RECV_WINDOW_MS="60000",DOLPHIN_VIOLET_DARK_DIVERGENCE="1",DOLPHIN_VIOLET_VENUE_MID_MODE="ws" environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PYTHONUNBUFFERED="1",DOLPHIN_DATA_VENUE="BINANCE",DOLPHIN_EXEC_VENUE="BINGX",DOLPHIN_BINGX_ENV="VST",DOLPHIN_BINGX_ALLOW_MAINNET="0",DOLPHIN_TRADER_ID="DOLPHIN-VIOLET-001",DITA_V2_PREFIX="violet",DOLPHIN_BINGX_RECV_WINDOW_MS="60000",DOLPHIN_VIOLET_DARK_DIVERGENCE="1",DOLPHIN_VIOLET_VENUE_MID_MODE="ws",DOLPHIN_VIOLET_DECISION_SHADOW="1",DOLPHIN_VIOLET_SHADOW_CAPITAL="69000"
; DITAv2 — supervised kernel, launched separately from the legacy PINK/BLUE stack. ; DITAv2 — supervised kernel, launched separately from the legacy PINK/BLUE stack.
[program:dita_v2] [program:dita_v2]
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dita_v2.py command=/mnt/dolphinng5_predict/prod/supervisor/run_with_dolphin_env.sh /home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dita_v2.py
directory=/mnt/dolphinng5_predict/prod directory=/mnt/dolphinng5_predict/prod
autostart=false autostart=false
autorestart=true autorestart=true
@@ -268,7 +252,7 @@ environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus
; ============================================================================= ; =============================================================================
[group:dolphin] [group:dolphin]
programs=nautilus_trader,dolphin_live,scan_bridge,clean_arch_trader,paper_portfolio,dita_v2 programs=nautilus_trader,scan_bridge,clean_arch_trader,paper_portfolio,dita_v2
priority=999 priority=999
[group:dita_v2] [group:dita_v2]