Add edge case test for short history in _signal_vix_trend
Co-authored-by: aguzererler <6199053+aguzererler@users.noreply.github.com>
This commit is contained in:
parent
5799bb3f00
commit
433af4d1e4
|
|
@ -86,6 +86,12 @@ class TestSignalVixTrend:
|
||||||
score, desc = self.fn(vix)
|
score, desc = self.fn(vix)
|
||||||
assert score == 0
|
assert score == 0
|
||||||
|
|
||||||
|
def test_short_history_is_neutral(self):
|
||||||
|
vix = _make_series([20.0] * 20)
|
||||||
|
score, desc = self.fn(vix)
|
||||||
|
assert score == 0
|
||||||
|
assert "insufficient history" in desc
|
||||||
|
|
||||||
def test_none_series_is_neutral(self):
|
def test_none_series_is_neutral(self):
|
||||||
score, desc = self.fn(None)
|
score, desc = self.fn(None)
|
||||||
assert score == 0
|
assert score == 0
|
||||||
|
|
|
||||||
|
|
@ -92,8 +92,8 @@ def _signal_vix_level(vix_price: Optional[float]) -> tuple[int, str]:
|
||||||
|
|
||||||
def _signal_vix_trend(vix_series: Optional[pd.Series]) -> tuple[int, str]:
|
def _signal_vix_trend(vix_series: Optional[pd.Series]) -> tuple[int, str]:
|
||||||
"""VIX 5-day SMA vs 20-day SMA: rising VIX = risk-off."""
|
"""VIX 5-day SMA vs 20-day SMA: rising VIX = risk-off."""
|
||||||
if vix_series is None:
|
if vix_series is None or len(vix_series) < 21:
|
||||||
return 0, "VIX trend: unavailable (neutral)"
|
return 0, "VIX trend: insufficient history (neutral)"
|
||||||
sma5 = _sma(vix_series, 5)
|
sma5 = _sma(vix_series, 5)
|
||||||
sma20 = _sma(vix_series, 20)
|
sma20 = _sma(vix_series, 20)
|
||||||
if sma5 is None or sma20 is None:
|
if sma5 is None or sma20 is None:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue