수정본
This commit is contained in:
@@ -124,23 +124,28 @@ class TestVolumeRegime:
|
||||
|
||||
class TestTradingMode:
|
||||
def test_crisis_high_atr(self):
|
||||
result = _determine_trading_mode(atr_percentile=96.0, adx_value=20.0, recent_5d_return=0.0, mdd_current=0.0)
|
||||
# CLAUDE.md 8.5: ATR백분위 > 90 → Crisis
|
||||
result = _determine_trading_mode(atr_percentile=91.0, adx_value=20.0, recent_5d_return=0.0, mdd_current=0.0)
|
||||
assert result == TradingMode.CRISIS.value
|
||||
|
||||
def test_crisis_deep_loss(self):
|
||||
result = _determine_trading_mode(atr_percentile=50.0, adx_value=20.0, recent_5d_return=-9.0, mdd_current=0.0)
|
||||
# CLAUDE.md 8.5: 5일수익 < -5% → Crisis
|
||||
result = _determine_trading_mode(atr_percentile=50.0, adx_value=20.0, recent_5d_return=-6.0, mdd_current=0.0)
|
||||
assert result == TradingMode.CRISIS.value
|
||||
|
||||
def test_crisis_mdd(self):
|
||||
result = _determine_trading_mode(atr_percentile=50.0, adx_value=20.0, recent_5d_return=0.0, mdd_current=-16.0)
|
||||
# CLAUDE.md 8.5: MDD < -10% → Crisis
|
||||
result = _determine_trading_mode(atr_percentile=50.0, adx_value=20.0, recent_5d_return=0.0, mdd_current=-11.0)
|
||||
assert result == TradingMode.CRISIS.value
|
||||
|
||||
def test_defensive_high_atr(self):
|
||||
result = _determine_trading_mode(atr_percentile=85.0, adx_value=20.0, recent_5d_return=0.0, mdd_current=0.0)
|
||||
# CLAUDE.md 8.5: ATR백분위 > 70 → Defensive (but < 90 so not Crisis)
|
||||
result = _determine_trading_mode(atr_percentile=75.0, adx_value=20.0, recent_5d_return=0.0, mdd_current=0.0)
|
||||
assert result == TradingMode.DEFENSIVE.value
|
||||
|
||||
def test_defensive_moderate_loss(self):
|
||||
result = _determine_trading_mode(atr_percentile=50.0, adx_value=20.0, recent_5d_return=-6.0, mdd_current=0.0)
|
||||
# CLAUDE.md 8.5: 5일수익 < -3% → Defensive (but > -5% so not Crisis)
|
||||
result = _determine_trading_mode(atr_percentile=50.0, adx_value=20.0, recent_5d_return=-4.0, mdd_current=0.0)
|
||||
assert result == TradingMode.DEFENSIVE.value
|
||||
|
||||
def test_aggressive(self):
|
||||
@@ -157,8 +162,8 @@ class TestTradingMode:
|
||||
assert result == TradingMode.NORMAL.value
|
||||
|
||||
def test_crisis_takes_priority_over_defensive(self):
|
||||
# ATR=96 triggers both crisis (>95) and defensive (>80), crisis wins
|
||||
result = _determine_trading_mode(atr_percentile=96.0, adx_value=30.0, recent_5d_return=3.0, mdd_current=0.0)
|
||||
# ATR=92 triggers both crisis (>90) and defensive (>70), crisis wins
|
||||
result = _determine_trading_mode(atr_percentile=92.0, adx_value=30.0, recent_5d_return=3.0, mdd_current=0.0)
|
||||
assert result == TradingMode.CRISIS.value
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user