포트폴리오 리밸런서
목표 배분에 맞게 포트폴리오를 리밸런싱하기 위한 매수/매도 금액을 계산합니다.
| 자산 | 현재 ($) | 현재 % | 목표 % | 행동 |
|---|---|---|---|---|
| US Stocks | $50,000.00 | 55.56% | 60.00% | +$4,000.00 |
| Bonds | $30,000.00 | 33.33% | 30.00% | -$3,000.00 |
| International | $10,000.00 | 11.11% | 10.00% | -$1,000.00 |
| 합계 | $90,000.00 | 100% | 100.00% |
이 도구 소개
포트폴리오 리밸런서는 시간이 지남에 따라 목표 자산 배분을 유지하고자 하는 투자자들에게 필수적인 도구입니다. 시장 변동으로 인해 포트폴리오의 실제 배분이 의도된 목표에서 벗어나며, 이는 위험 증가나 수익 감소를 초래할 수 있습니다. 이 도구는 포트폴리오를 목표 배분으로 복구하기 위해 각 자산을 얼마나 매수하거나 매도해야 하는지를 신속하게 계산하는 데 도움을 줍니다.
포트폴리오 리밸런서를 사용하려면 현재 보유 자산과 현재 시장 가치를 입력한 후 각 자산 클래스의 목표 배분 비율을 지정합니다. 도구는 즉시 저평가된 자산을 매수하거나 고평가된 자산을 매도할 필요가 있는 금액 또는 백분율을 계산합니다. 이는 여러 자산 클래스를 관리하는 투자자, 분기 또는 연간 리밸런싱을 수행하는 사람, 또는 감정적인 거래 결정을 피하고 전략적 계획을 지키고자 하는 모든 사람에게 특히 유용합니다.
정기적인 리밸런싱은 실적이 좋은 자산에서 이익을 확정하면서 동시에 실적이 안 좋은 자산의 하락장을 매수하는 데 도움이 됩니다. 이는 추세를 좇는 유혹을 줄이는 규율 있는 투자 접근 방식입니다. 세금과 거래 비용이 적용될 수 있다는 점을 명심하고, 거래를 실행하기 전에 금융 자문가와 상담하는 것을 고려하세요. 도구는 계산을 제공하며, 변경 사항을 언제 어떻게 실행할지는 당신이 결정합니다.
자주 묻는 질문
코드 구현
def rebalance_portfolio(holdings: dict, total_value: float = None) -> dict:
"""
holdings: {'AssetName': {'current_value': 50000, 'target_pct': 60}}
Returns buy/sell amounts needed
"""
if total_value is None:
total_value = sum(h['current_value'] for h in holdings.values())
results = {}
for name, h in holdings.items():
current = h['current_value']
target_pct = h['target_pct']
current_pct = (current / total_value) * 100 if total_value > 0 else 0
target_value = (target_pct / 100) * total_value
diff = target_value - current
results[name] = {
'current': current,
'current_pct': round(current_pct, 2),
'target_pct': target_pct,
'target_value': round(target_value, 2),
'action': round(diff, 2),
'action_type': 'BUY' if diff > 0 else 'SELL' if diff < 0 else 'HOLD'
}
return results
# Example
portfolio = {
'US Stocks': {'current_value': 50000, 'target_pct': 60},
'Bonds': {'current_value': 30000, 'target_pct': 30},
'International': {'current_value': 10000, 'target_pct': 10},
}
result = rebalance_portfolio(portfolio)
total = sum(h['current_value'] for h in portfolio.values())
print(f"Total Portfolio: ${total:,.0f}")
for name, r in result.items():
action = "BUY" if r['action'] > 0 else "SELL"
print(f"{name}: {r['current_pct']}% → {r['target_pct']}% | {action} ${abs(r['action']):,.0f}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.