MagicTradeBot 5.2+는 완전히 새롭게 설계된 포지션 사이징 엔진을 도입하여, 자본 할당을 트레이딩 및 DCA 로직과 분리함으로써 명확성, 유연성, 리스크 관리를 크게 향상시켰습니다.
이번 업데이트는 모든 포지션 크기 계산을 다음 파일로 중앙 집중화합니다:
position_sizing.yaml
🚀 버전 5.2+에서 변경된 내용
✅ 1. 새로운 전용 설정 파일
모든 거래 금액 및 익스포저 로직이 다음으로 이동되었습니다:
position_sizing.yaml
이를 통해 다음을 보장합니다:
- 더 깔끔한 아키텍처
- DCA와 자본 로직 간 중복 제거
- 더 정확한 시뮬레이션
- 향후 고급 사이징 모델 지원 (Kelly, Risk-of-Ruin, 변동성 기반 등)
✅ 2. 기존 설정 대체
다음 설정들은 이제 사용 중단(deprecated)되었습니다:
| 기존 설정 | 상태 |
|---|---|
CalculateAmountDynamically |
❌ 제거됨 |
TradeAmountPer |
❌ 제거됨 |
이제 완전히 다음으로 대체되었습니다:
auto_calculate_initial_amount: true
✅ 3. initial_trade_amount 이동
기존에 trading.yaml에 있던 항목이 이제 다음으로 이동되었습니다:
position_sizing.yaml
이로써 모든 포지션 사이징 로직이 한 곳에 모이게 됩니다.
📂 새로운 설정 구조
# --------------------------------------------------------------------------
# 거래 금액 & 자본 할당
# --------------------------------------------------------------------------
initial_trade_amount: 10.0
# --------------------------------------------------------------------------
# 포지션 크기 계산
# --------------------------------------------------------------------------
auto_calculate_initial_amount: true
balance: 5000
total_percent_investment_per_trade: 2.0
# --------------------------------------------------------------------------
# 고급 사이징 기능
# --------------------------------------------------------------------------
mode: percent
kelly_fraction: 0.5
target_risk_of_ruin_percent: 1.0
max_drawdown_threshold: 40.0
⚙️ 포지션 사이징 작동 방식 (로직 흐름)
1️⃣ 고정 모드
만약:
auto_calculate_initial_amount: false
그러면 봇은:
initial_trade_amount를 사용- 익스포저 계산을 수행하지 않음
- DCA 계산 생략
- 퍼센트 로직 생략
✔ 고정 로트 트레이더에게 이상적
✔ 간단하고 예측 가능
2️⃣ 자동 계산 모드
만약:
auto_calculate_initial_amount: true
그러면:
- 초기 금액이 잔고로부터 동적으로 계산됨
- 총 익스포저(초기 + 모든 DCA + Grid DCA)가 다음에 의해 제한됨:
total_percent_investment_per_trade
3️⃣ 고급 모드
Kelly 기준
- 과거 승률과 평균 PnL per trade 사용
- kelly_fraction을 통해 Kelly의 일부만 적용 가능
- 변동성을 줄이면서 성장 잠재력 유지
파산 위험(Risk-of-Ruin)
- 계좌 파산 확률을 안전 수준으로 유지하는 최대 포지션 크기 계산
- target_risk_of_ruin_percent로 제어
- 치명적 손실 방지를 위한 max_drawdown_threshold 강제 적용
- 장기 리스크 관리에 이상적
🧮 익스포저 계산 규칙
케이스 A — DCA 비활성화 + Grid 비활성화
둘 다 비활성화 시 봇은 단순히 다음을 사용:
잔고의 10%
(기하학적 계산 미적용)
케이스 B — DCA 활성화
시스템이 계산:
- 모든 DCA 주문에 대한 기하급수
- 배수 기반 익스포저
- 총 유닛 수
자본을 비례적으로 배분
케이스 C — Grid DCA 활성화
Grid 익스포저를 추가 유닛으로 포함:
grid_orders × order_percent
이 유닛들이 총 익스포저 계산에 포함됨
케이스 D — DCA + Grid 결합
두 익스포저 모델을 하나의 총 익스포저 상한으로 통합:
총 익스포저 ≤ total_percent_investment_per_trade % of balance
초기 금액은 다음에서 도출:
target_total_investment / total_units
💰 잔고 동작 방식
실시간(Live) 모드
만약:
balance: 0
봇은 실제 거래소 잔고를 사용합니다.
데모(Demo) 모드
만약:
balance: 5000
봇은 다음을 사용:
balance ± total_pnl
정확한 복리 시뮬레이션을 보장합니다.
🎯 total_percent_investment_per_trade 설명
이는 거래당 최대 총 자본 익스포저를 정의하며 다음을 포함합니다:
- 초기 진입
- 모든 DCA 주문
- 모든 Grid DCA 주문
예시
| 값 | 특징 |
|---|---|
| 2.0 | 보수적 |
| 5.0 | 균형 |
| 10.0 | 공격적 |
🔥 예시 시나리오
잔고 = 5000
total_percent_investment_per_trade = 2%
허용되는 최대 익스포저:
5000 × 2% = 100 USDT
봇은 초기 주문 크기를 다음과 같이 계산합니다:
초기 + 모든 DCA + Grid 주문 = 100 USDT
이 한도를 절대 초과하지 않습니다.
🏗️ 이 아키텍처가 더 나은 이유
- ✔ 책임 분리가 더 명확함
- ✔ DCA 모듈 내 자본 로직 제거
- ✔ 결정론적 리스크 제어
- ✔ AI 최적화와 호환
- ✔ 시뮬레이션이 실제 동작과 일치
- ✔ Kelly / Risk-of-Ruin 대비 미래 지향적
⚠️ 마이그레이션 체크리스트 (5.1.x → 5.2+)
- 제거:
CalculateAmountDynamicallyTradeAmountPer
- 이동:
initial_trade_amount→position_sizing.yaml
- 이동:
balanceauto_calculate_initial_amounttotal_percent_investment_per_trademodekelly_fractiontarget_risk_of_ruin_percentmax_drawdown_threshold
- 확인:
- DCA 설정은
dca.yaml에 그대로 유지 - 트레이딩 실행 로직은
trading.yaml에 유지
- DCA 설정은
📌 추천 설정 프로필
🛡 보수적
auto_calculate_initial_amount: true
total_percent_investment_per_trade: 2.0
mode: percent
⚖ 균형
auto_calculate_initial_amount: true
total_percent_investment_per_trade: 5.0
mode: percent
🚀 공격적
auto_calculate_initial_amount: true
total_percent_investment_per_trade: 10.0
mode: percent
🧠 고급 사용자向け
버전 5.2+는 다음의 기반을 마련합니다:
- Kelly 기준 사이징
- 파산 위험 타겟팅
- 변동성 기반 사이징
- 전략별 자본 버킷
- AI 최적화 익스포저
모든 미래 모델은 position_sizing.yaml에 통합됩니다.
✅ 요약
MagicTradeBot 5.2+는 다음을 도입합니다:
- 전용 포지션 사이징 엔진
- 구형 동적 사이징 옵션 제거
- 자본 제어 중앙화
- 결정론적 총 익스포저 상한
- 고급 모드: Kelly & Risk-of-Ruin
- 자동 모드에서 머니 매니지먼트 모듈 자동 비활성화
이번 업그레이드는 리스크 관리, 명확성, 장기 확장성을 크게 향상시킵니다.