feat: 프로젝트 개요 및 컴포넌트별 명세, 로드맵 등 문서 추가
This commit is contained in:
169
components/phase1/risk.md
Normal file
169
components/phase1/risk.md
Normal file
@@ -0,0 +1,169 @@
|
||||
# risk - 리스크 관리
|
||||
|
||||
## 개요
|
||||
|
||||
**risk** 컴포넌트는 사전 주문 검증과 포지션 리스크 모니터링을 담당합니다.
|
||||
|
||||
### 책임
|
||||
|
||||
- 주문 전 리스크 체크 (잔고, 포지션 한도, 레버리지)
|
||||
- 포지션 리스크 지표 계산 (VaR, 베타, 집중도)
|
||||
- 손절/익절 조건 관리 및 트리거 평가
|
||||
- 리스크 한도 설정 및 위반 감지
|
||||
|
||||
### 의존성
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
Risk[risk] --> Mgmt[mgmt]
|
||||
Risk --> Balance[balance]
|
||||
Risk --> Data[data]
|
||||
Risk --> DB[(Database)]
|
||||
|
||||
Scheduler[scheduler] --> Risk
|
||||
Monitor[monitor] --> Risk
|
||||
|
||||
style Risk fill:#E53935,color:#fff
|
||||
```
|
||||
|
||||
## 주요 기능
|
||||
|
||||
### 1. 사전 주문 검증
|
||||
|
||||
```typescript
|
||||
validateOrder(order: Order, container: Container): RiskCheckResult
|
||||
validateOrderBatch(orders: Order[], container: Container): RiskCheckResult[]
|
||||
```
|
||||
|
||||
- 잔고 충분성, 포지션 사이즈, 집중도, 레버리지를 검증합니다.
|
||||
|
||||
### 2. 포지션 리스크 모니터링
|
||||
|
||||
```typescript
|
||||
calculatePositionRisk(containerId: string): PositionRisk
|
||||
checkRiskLimits(containerId: string): LimitViolation[]
|
||||
```
|
||||
|
||||
### 3. 손절/익절 관리
|
||||
|
||||
```typescript
|
||||
setStopLoss(containerId: string, symbol: string, config: StopLossConfig): void
|
||||
setTakeProfit(containerId: string, symbol: string, level: number): void
|
||||
checkStopConditions(containerId: string): StopTrigger[]
|
||||
```
|
||||
|
||||
### 4. 리스크 한도 설정
|
||||
|
||||
```typescript
|
||||
setRiskLimits(containerId: string, limits: RiskLimits): void
|
||||
getRiskProfile(containerId: string): RiskProfile
|
||||
```
|
||||
|
||||
### 5. 포트폴리오 리스크 분석
|
||||
|
||||
```typescript
|
||||
calculatePortfolioVaR(containerId: string, confidence: number, horizon: number): VaRResult
|
||||
calculateCorrelationMatrix(containerId: string): CorrelationMatrix
|
||||
stressTest(containerId: string, scenarios: Scenario[]): StressTestResult[]
|
||||
```
|
||||
|
||||
## 데이터 모델
|
||||
|
||||
```typescript
|
||||
interface RiskLimits {
|
||||
containerId: string
|
||||
position: {
|
||||
maxSinglePositionPct: number
|
||||
maxSectorPct: number
|
||||
maxTotalLeverage: number
|
||||
}
|
||||
loss: {
|
||||
maxDailyLossPct: number
|
||||
maxDrawdownPct: number
|
||||
stopLossEnabled: boolean
|
||||
}
|
||||
exposure: {
|
||||
maxLongExposure: number
|
||||
maxShortExposure: number
|
||||
maxGrossExposure: number
|
||||
}
|
||||
}
|
||||
|
||||
interface RiskCheckResult {
|
||||
passed: boolean
|
||||
violations: {
|
||||
rule: string
|
||||
severity: 'BLOCKING' | 'WARNING'
|
||||
message: string
|
||||
currentValue: number
|
||||
limitValue: number
|
||||
}[]
|
||||
recommendations?: string[]
|
||||
}
|
||||
|
||||
interface PositionRisk {
|
||||
containerId: string
|
||||
positions: {
|
||||
symbol: string
|
||||
marketValue: number
|
||||
weightPct: number
|
||||
VaR95: number
|
||||
beta: number
|
||||
sector: string
|
||||
}[]
|
||||
portfolio: {
|
||||
totalValue: number
|
||||
totalVaR95: number
|
||||
beta: number
|
||||
correlationRisk: number
|
||||
}
|
||||
limits: {
|
||||
type: string
|
||||
current: number
|
||||
limit: number
|
||||
utilizationPct: number
|
||||
}[]
|
||||
calculatedAt: Date
|
||||
}
|
||||
|
||||
interface StopLossConfig {
|
||||
type: 'FIXED' | 'TRAILING' | 'TIME_BASED'
|
||||
fixedPrice?: number
|
||||
fixedPct?: number
|
||||
trailingPct?: number
|
||||
holdingPeriodDays?: number
|
||||
autoExecute: boolean
|
||||
}
|
||||
|
||||
interface VaRResult {
|
||||
confidence: number
|
||||
horizon: number
|
||||
VaR: number
|
||||
VaRPct: number
|
||||
method: 'HISTORICAL' | 'PARAMETRIC' | 'MONTE_CARLO'
|
||||
calculatedAt: Date
|
||||
}
|
||||
```
|
||||
|
||||
## API 명세
|
||||
|
||||
### POST /api/risk/check
|
||||
주문 리스크 체크
|
||||
|
||||
### GET /api/risk/containers/:containerId
|
||||
리스크 프로필 조회
|
||||
|
||||
## 구현 고려사항
|
||||
|
||||
- 리스크 위반은 monitor 알림과 연동합니다.
|
||||
- 한도 변경은 감사 로그로 추적합니다.
|
||||
|
||||
## 관련 문서
|
||||
|
||||
- [공통 데이터 모델](../../docs/03-data-models.md)
|
||||
- [주요 워크플로우](../../docs/04-workflows.md)
|
||||
|
||||
### 관련 컴포넌트
|
||||
- [mgmt - 컨테이너 관리](./mgmt.md)
|
||||
- [balance - 계좌 관리](./balance.md)
|
||||
- [strategy - 전략 관리](./strategy.md)
|
||||
Reference in New Issue
Block a user