37 lines
916 B
Python
37 lines
916 B
Python
import pytest
|
|
import os
|
|
from src.risk_manager import RiskManager
|
|
from src.config import Config
|
|
|
|
|
|
@pytest.fixture
|
|
def config():
|
|
os.environ.update({
|
|
"BINANCE_API_KEY": "k",
|
|
"BINANCE_API_SECRET": "s",
|
|
"SYMBOL": "XRPUSDT",
|
|
"LEVERAGE": "10",
|
|
"RISK_PER_TRADE": "0.02",
|
|
})
|
|
return Config()
|
|
|
|
|
|
def test_max_drawdown_check(config):
|
|
rm = RiskManager(config, max_daily_loss_pct=0.05)
|
|
rm.daily_pnl = -60.0
|
|
rm.initial_balance = 1000.0
|
|
assert rm.is_trading_allowed() is False
|
|
|
|
|
|
def test_trading_allowed_normal(config):
|
|
rm = RiskManager(config, max_daily_loss_pct=0.05)
|
|
rm.daily_pnl = -10.0
|
|
rm.initial_balance = 1000.0
|
|
assert rm.is_trading_allowed() is True
|
|
|
|
|
|
def test_position_size_capped(config):
|
|
rm = RiskManager(config, max_daily_loss_pct=0.05)
|
|
rm.open_positions = ["pos1", "pos2", "pos3"]
|
|
assert rm.can_open_new_position() is False
|