Local changes: Updated model training, removed debug instrumentation, and configuration improvements
This commit is contained in:
55
tests/unit/strategies/test_bollinger_mean_reversion.py
Normal file
55
tests/unit/strategies/test_bollinger_mean_reversion.py
Normal file
@@ -0,0 +1,55 @@
|
||||
"""Tests for Bollinger Bands mean reversion strategy."""
|
||||
|
||||
import pytest
|
||||
from decimal import Decimal
|
||||
from src.strategies.technical.bollinger_mean_reversion import BollingerMeanReversionStrategy
|
||||
from src.strategies.base import SignalType
|
||||
|
||||
|
||||
class TestBollingerMeanReversionStrategy:
|
||||
"""Tests for BollingerMeanReversionStrategy."""
|
||||
|
||||
@pytest.fixture
|
||||
def strategy(self):
|
||||
"""Create Bollinger mean reversion strategy instance."""
|
||||
return BollingerMeanReversionStrategy(
|
||||
name="test_bollinger_mr",
|
||||
parameters={
|
||||
'period': 20,
|
||||
'std_dev': 2.0,
|
||||
'trend_filter': True,
|
||||
'trend_ma_period': 50,
|
||||
'entry_threshold': 0.95,
|
||||
'exit_threshold': 0.5
|
||||
}
|
||||
)
|
||||
|
||||
def test_initialization(self, strategy):
|
||||
"""Test strategy initialization."""
|
||||
assert strategy.period == 20
|
||||
assert strategy.std_dev == 2.0
|
||||
assert strategy.trend_filter is True
|
||||
assert strategy.trend_ma_period == 50
|
||||
assert strategy.entry_threshold == 0.95
|
||||
assert strategy.exit_threshold == 0.5
|
||||
|
||||
def test_on_tick_insufficient_data(self, strategy):
|
||||
"""Test that strategy returns None with insufficient data."""
|
||||
signal = strategy.on_tick(
|
||||
symbol="BTC/USD",
|
||||
price=Decimal("50000"),
|
||||
timeframe="1h",
|
||||
data={'volume': 1000}
|
||||
)
|
||||
assert signal is None
|
||||
|
||||
def test_position_tracking(self, strategy):
|
||||
"""Test position tracking."""
|
||||
assert strategy._in_position is False
|
||||
assert strategy._entry_price is None
|
||||
|
||||
def test_strategy_metadata(self, strategy):
|
||||
"""Test strategy metadata."""
|
||||
assert strategy.name == "test_bollinger_mr"
|
||||
assert strategy.enabled is False
|
||||
|
||||
Reference in New Issue
Block a user