chore: 스윙 자본 상한 70%로 상향 (스윙:DT = 70:30)

스윙이 이미 47%라 신규 매수가 swing_capital_cap 에 막혀(오늘 60건) 표본이 쌓이지 않았다.
- SWING_MAX_CAPITAL_RATIO 0.50 → 0.70
- DAY_TRADE_MAX_RATIO_DT 0.50 → 0.30, DAY_TRADE_MAX_POSITIONS 8 → 5 (5×6%=30%)
- 두 상한의 합이 100%를 넘지 않는지 테스트로 고정

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-23 14:48:34 +09:00
parent 9774c1249b
commit 78ab3d7d4e
3 changed files with 18 additions and 14 deletions

View File

@@ -101,11 +101,15 @@ async def test_entry_no_lunch_block_and_cutoff_from_settings():
def test_capital_split_settings():
assert settings.DAY_TRADE_MAX_RATIO_DT == 0.50
assert settings.SWING_MAX_CAPITAL_RATIO == 0.50
assert settings.DAY_TRADE_MAX_POSITIONS * settings.DAY_TRADE_MAX_CAPITAL_RATIO >= 0.48
# 2026-09-23: 스윙:DT = 70:30 (스윙 표본 확보)
assert settings.DAY_TRADE_MAX_RATIO_DT == 0.30
assert settings.SWING_MAX_CAPITAL_RATIO == 0.70
# 두 전략 합이 100%를 넘지 않아야 현금 여력이 남는다
assert settings.SWING_MAX_CAPITAL_RATIO + settings.DAY_TRADE_MAX_RATIO_DT <= 1.0
# 동시 보유 한도 × 종목당 비중이 전체 한도를 채울 수 있어야 한다
assert settings.DAY_TRADE_MAX_POSITIONS * settings.DAY_TRADE_MAX_CAPITAL_RATIO >= settings.DAY_TRADE_MAX_RATIO_DT
assert (settings.DAY_TRADE_ENTRY_CUTOFF_HOUR, settings.DAY_TRADE_ENTRY_CUTOFF_MIN) == (15, 0)
from app.services.day_trading_strategy import calculate_day_trade_position_size
# 총자산 1,000만: 종목당 60만, DT 합산 500만
# 총자산 1,000만: 종목당 60만, DT 합산 300만
assert calculate_day_trade_position_size(10_000_000, 5_000_000, 0) == 600_000
assert calculate_day_trade_position_size(10_000_000, 5_000_000, 4_800_000) == 200_000
assert calculate_day_trade_position_size(10_000_000, 5_000_000, 2_800_000) == 200_000