deploy: 2026-03-20 07:49
This commit is contained in:
52
tests/test_signal_generator.py
Normal file
52
tests/test_signal_generator.py
Normal file
@@ -0,0 +1,52 @@
|
||||
"""Tests for the signal generator module."""
|
||||
|
||||
import pytest
|
||||
from datetime import datetime
|
||||
|
||||
from indicators.multi_timeframe import TradeDirection
|
||||
from strategy.signal_generator import TradeSignal
|
||||
|
||||
|
||||
class TestTradeSignal:
|
||||
"""Tests for TradeSignal dataclass."""
|
||||
|
||||
def test_risk_reward_ratio(self):
|
||||
signal = TradeSignal(
|
||||
symbol="BTC/USDT",
|
||||
direction=TradeDirection.LONG,
|
||||
entry_price=50000,
|
||||
stop_loss=49000,
|
||||
take_profit=52000,
|
||||
confidence=4,
|
||||
timeframe="15m",
|
||||
)
|
||||
assert signal.risk_reward_ratio == 2.0
|
||||
|
||||
def test_risk_reward_zero_risk(self):
|
||||
signal = TradeSignal(
|
||||
symbol="BTC/USDT",
|
||||
direction=TradeDirection.LONG,
|
||||
entry_price=50000,
|
||||
stop_loss=50000,
|
||||
take_profit=52000,
|
||||
confidence=3,
|
||||
timeframe="15m",
|
||||
)
|
||||
assert signal.risk_reward_ratio == 0.0
|
||||
|
||||
def test_to_dict(self):
|
||||
signal = TradeSignal(
|
||||
symbol="ETH/USDT",
|
||||
direction=TradeDirection.SHORT,
|
||||
entry_price=3000,
|
||||
stop_loss=3100,
|
||||
take_profit=2800,
|
||||
confidence=5,
|
||||
timeframe="1h",
|
||||
reasons=["BOS", "OB", "FVG"],
|
||||
)
|
||||
d = signal.to_dict()
|
||||
assert d["symbol"] == "ETH/USDT"
|
||||
assert d["direction"] == "SHORT"
|
||||
assert d["confidence"] == 5
|
||||
assert len(d["reasons"]) == 3
|
||||
Reference in New Issue
Block a user