Files
crypto_trader/tests/unit/strategies/test_macd_strategy.py

46 lines
1.3 KiB
Python

"""Tests for MACD strategy."""
import pytest
import pandas as pd
from src.strategies.technical.macd_strategy import MACDStrategy
class TestMACDStrategy:
"""Tests for MACDStrategy."""
@pytest.fixture
def strategy(self):
"""Create MACD strategy instance."""
return MACDStrategy(
strategy_id=1,
name="test_macd",
symbol="BTC/USD",
timeframe="1h",
parameters={
"fast_period": 12,
"slow_period": 26,
"signal_period": 9
}
)
@pytest.mark.asyncio
async def test_macd_strategy_initialization(self, strategy):
"""Test MACD strategy initialization."""
assert strategy.fast_period == 12
assert strategy.slow_period == 26
assert strategy.signal_period == 9
@pytest.mark.asyncio
async def test_generate_signal(self, strategy):
"""Test signal generation."""
# Create minimal data
data = pd.DataFrame({
'close': [100 + i * 0.1 for i in range(50)]
})
strategy.current_data = data
signal = await strategy.generate_signal()
assert "signal" in signal
assert signal["signal"] in ["buy", "sell", "hold"]