from horizon.fund import FundManager, FundConfig, FundCluster
# Create individual funds
crypto_fund = FundManager(FundConfig(
total_capital=50_000,
max_fund_drawdown_pct=20.0,
))
politics_fund = FundManager(FundConfig(
total_capital=30_000,
max_fund_drawdown_pct=10.0,
))
sports_fund = FundManager(FundConfig(
total_capital=20_000,
max_fund_drawdown_pct=15.0,
))
# Create cluster
cluster = FundCluster()
cluster.add_fund("crypto", crypto_fund)
cluster.add_fund("politics", politics_fund)
cluster.add_fund("sports", sports_fund)
# Start all funds
cluster.start_all()
# Aggregate status
status = cluster.aggregate_status()
# {
# "total_nav": 100000.0,
# "fund_count": 3,
# "funds": {
# "crypto": {"nav": 50000.0, "drawdown_pct": 0.0, ...},
# "politics": {"nav": 30000.0, "drawdown_pct": 0.0, ...},
# "sports": {"nav": 20000.0, "drawdown_pct": 0.0, ...},
# }
# }
# Stop all
cluster.stop_all()