Перейти к содержимому

Portfolio Rebalancer

Вычислите суммы покупки и продажи для переб аланса инвестиционного портфеля в целевые распределения.

%
%
%
АктивТекущая ($)Текущий %Целевой процентДействие
US Stocks$50,000.0055.56%60.00%+$4,000.00
Bonds$30,000.0033.33%30.00%-$3,000.00
International$10,000.0011.11%10.00%-$1,000.00
Итого$90,000.00100%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.