TRADING_GAP_SQUEEZE_ENABLED=0 rejects >=150% gappers in the population gate (watcher pre-filter and entry gate) and zeroes the trigger book's squeeze arm. One switch covers all three paths. Why: while testing the trader's "trade the leading gainers" idea on 1,093 live-band v1 ORB breaks (Jun-Sep 2026, current exits), top-3 gainers at the break did WORSE (diff -0.48R Jun-Jul, -0.40R Aug-Sep, 90% CIs excluding 0). That turned out to be almost entirely the >=150% squeeze-exception names: gap 10-35% Jun-Jul +0.27R (n=342) Aug-Sep +0.13R (n=327) gap >=150% Jun-Jul -0.21R (n=65) Aug-Sep -0.30R (n=53) Our own squeeze fills: -0.31R / -0.33R realized (n=16). By the time a squeeze name breaks its opening range the move has happened; the trader catches these names premarket, which the bot does not. This finding was post-hoc (not the pre-registered direction), but it held in both halves and in the real fills. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E3S5EFKThFVrjmN4HHsHMN
20 lines
1.0 KiB
Python
20 lines
1.0 KiB
Python
"""TRADING_GAP_SQUEEZE_ENABLED=0 turns the >=150% squeeze exception off everywhere."""
|
|
|
|
from strategy.population import PopulationConfig, population_reject
|
|
from trading_execution import ExecutionSettings
|
|
|
|
|
|
def test_population_config_switch():
|
|
on = PopulationConfig.from_env({"TRADING_MIN_ENTRY_GAP_PCT": "0.10"})
|
|
off = PopulationConfig.from_env({"TRADING_MIN_ENTRY_GAP_PCT": "0.10", "TRADING_GAP_SQUEEZE_ENABLED": "0"})
|
|
assert on.squeeze_enabled and not off.squeeze_enabled
|
|
assert population_reject(on, gap_pct=2.0, price=5.0, volume=None, rvol=20.0) is None
|
|
reason = population_reject(off, gap_pct=2.0, price=5.0, volume=None, rvol=20.0)
|
|
assert reason and "squeeze exception off" in reason
|
|
assert population_reject(off, gap_pct=0.20, price=5.0, volume=None, rvol=3.0) is None # core band untouched
|
|
|
|
|
|
def test_execution_settings_carry_the_switch():
|
|
assert ExecutionSettings.from_env({}).gap_squeeze_enabled is True
|
|
assert ExecutionSettings.from_env({"TRADING_GAP_SQUEEZE_ENABLED": "0"}).gap_squeeze_enabled is False
|