Initial commit: Crypto trader application

This commit is contained in:
2025-12-25 20:20:40 -05:00
commit 07a04c1bb8
47895 changed files with 2042266 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
"""Tests for position sizing."""
import pytest
from src.risk.position_sizing import get_position_sizer, PositionSizing
class TestPositionSizing:
"""Tests for PositionSizing."""
@pytest.fixture
def position_sizer(self):
"""Create position sizer instance."""
return get_position_sizer()
def test_fixed_percentage(self, position_sizer):
"""Test fixed percentage sizing."""
size = position_sizer.fixed_percentage(10000.0, 0.02) # 2%
assert size == 200.0
def test_fixed_amount(self, position_sizer):
"""Test fixed amount sizing."""
size = position_sizer.fixed_amount(500.0)
assert size == 500.0
def test_volatility_based(self, position_sizer):
"""Test volatility-based sizing."""
size = position_sizer.volatility_based(
capital=10000.0,
atr=100.0,
risk_per_trade_percentage=0.01 # 1%
)
assert size > 0
def test_kelly_criterion(self, position_sizer):
"""Test Kelly Criterion."""
fraction = position_sizer.kelly_criterion(
win_probability=0.6,
payout_ratio=1.5
)
assert 0 <= fraction <= 1