fix: marketable entries price from live last + time-of-day rvol arms fast path
Day-22 forensic (BIYA session): 6 entry submissions, 0 fills — IREX missed +1.7R, IRE +1.65R by one cent. Two root causes fixed: 1. Slow-path limit rested AT the trigger while price ran 2% past it, and retries reused the same stale price. Marketable model now prices from max(trigger, live last) via price_provider; the anti-chase extension gate gets the live ref too (was an entry_ref==trigger no-op on this path). TRADING_ENTRY_FILL_MODEL flipped to marketable. 2. Fast trigger path armed nothing all day: legacy rvol (cum-so-far / full-day MEAN) is ~0.1-0.3 minutes after the open for a normal heavy name and its mean is poisoned by reverse-split/prior-squeeze days (BIYA legacy 1.27 vs real activity 481x median). New rvol_tod = cum / (MEDIAN(20d) * elapsed-session fraction) drives arm eligibility and the scanner keep-filter; legacy rvol untouched for validated boundaries (gap-squeeze rvol>=5). Also: stagnation time-stop (TRADING_EXIT_STAGNATION_MIN/_R, default OFF) in simulate_exit + manage_live with sweep_exits.py variants for validation before any live enable. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f10a8033a1
commit
5597250ff1
11 files changed
+894
-8
No files matched your search
@@ -80,6 +80,11 @@ def variants() -> dict[str, ExitConfig]:
|
||||
profit_lock_tiers=[(.12, .05), (.25, .16), (.40, .30)])
|
||||
v["lock_only_mid"] = ExitConfig(target_r=10.0,
|
||||
profit_lock_tiers=[(.08, .03), (.15, .09), (.25, .18), (.40, .30)])
|
||||
# --- STAGNATION time-stop layered on the live trail: exit if high-water
|
||||
# never reached +min_r within N minutes (dead-money reclaim) ---
|
||||
for mins, min_r in ((15, 0.25), (30, 0.25), (45, 0.25), (60, 0.25), (30, 0.5)):
|
||||
v[f"stag{mins}_r{int(min_r*100)}"] = ExitConfig(
|
||||
**_trail, stagnation_minutes=mins, stagnation_min_r=min_r)
|
||||
return v
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user