Retire completed GTL tuning harnesses
This commit is contained in:
@@ -2,10 +2,7 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from app.services.sr_service import (
|
||||
GateTargetLadderConfig,
|
||||
MAX_LEVELS,
|
||||
_bar_respect_weight,
|
||||
_cap_levels,
|
||||
@@ -317,70 +314,6 @@ class TestDetectSrLevels:
|
||||
|
||||
assert detect_gate_target_ladder(highs, lows, closes) == expected
|
||||
|
||||
def test_configured_gate_target_ladder_defaults_preserve_parity(self):
|
||||
highs, lows, closes, volumes = _make_series(n=500)
|
||||
expected = detect_sr_levels_legacy(
|
||||
highs,
|
||||
lows,
|
||||
closes,
|
||||
volumes,
|
||||
explicit_range_grid=True,
|
||||
)
|
||||
|
||||
configured = detect_gate_target_ladder(
|
||||
highs,
|
||||
lows,
|
||||
closes,
|
||||
config=GateTargetLadderConfig(),
|
||||
)
|
||||
|
||||
assert configured == expected
|
||||
|
||||
def test_configured_gate_target_ladder_bounds_history(self):
|
||||
old_highs = [1_000.0] * 40
|
||||
old_lows = [10.0] * 40
|
||||
old_closes = [100.0] * 40
|
||||
recent_highs = [110.0] * 40
|
||||
recent_lows = [90.0] * 40
|
||||
recent_closes = [100.0] * 40
|
||||
config = GateTargetLadderConfig(
|
||||
lookback_bars=40,
|
||||
include_pivots=False,
|
||||
)
|
||||
|
||||
levels = detect_gate_target_ladder(
|
||||
old_highs + recent_highs,
|
||||
old_lows + recent_lows,
|
||||
old_closes + recent_closes,
|
||||
config=config,
|
||||
)
|
||||
|
||||
assert levels
|
||||
assert all(90.0 <= level["price_level"] <= 110.0 for level in levels)
|
||||
|
||||
def test_configured_gate_target_ladder_separates_merge_tolerance(self):
|
||||
highs, lows, closes, _ = _make_series(n=300)
|
||||
tight = detect_gate_target_ladder(
|
||||
highs,
|
||||
lows,
|
||||
closes,
|
||||
config=GateTargetLadderConfig(merge_tolerance=0.0025),
|
||||
)
|
||||
wide = detect_gate_target_ladder(
|
||||
highs,
|
||||
lows,
|
||||
closes,
|
||||
config=GateTargetLadderConfig(merge_tolerance=0.01),
|
||||
)
|
||||
|
||||
assert len(wide) <= len(tight)
|
||||
|
||||
def test_gate_target_ladder_config_rejects_invalid_values(self):
|
||||
with pytest.raises(ValueError, match="lookback_bars"):
|
||||
GateTargetLadderConfig(lookback_bars=19)
|
||||
with pytest.raises(ValueError, match="touch_tolerance"):
|
||||
GateTargetLadderConfig(touch_tolerance=-0.1)
|
||||
|
||||
def test_explicit_range_grid_is_volume_independent(self):
|
||||
highs, lows, closes, volumes = _make_series(n=500)
|
||||
shifted_volumes = [volume * (i + 1) for i, volume in enumerate(volumes)]
|
||||
|
||||
Reference in New Issue
Block a user