Commit Graph

3 Commits

Author SHA1 Message Date
Andrew Kaszubski 13f2bba0b3 feat(portfolio): add Australian CGT Calculator with 50% discount - Issue #32 (66 tests)
Implements comprehensive Australian Capital Gains Tax calculator:
- CGT calculation with 50% discount for assets held >12 months
- FIFO (First In, First Out) cost basis matching
- Australian financial year support (July 1 - June 30)
- Capital loss tracking and carry-forward
- Tax year summary generation
- ATO-compliant tax report generation
- Foreign currency conversions
- Unrealised gains calculation

Classes:
- CGTMethod enum (discount, indexation, other)
- AssetType enum (shares, ETF, crypto, property, etc.)
- CGTAssetAcquisition dataclass (cost base parcel)
- CGTDisposal dataclass (sale record)
- CGTEvent dataclass (gain/loss event)
- TaxYearSummary dataclass (annual summary)
- AustralianCGTCalculator class (main calculator)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 21:53:27 +11:00
Andrew Kaszubski bedb59bce0 feat(portfolio): add Performance Metrics with Sharpe, drawdown, returns - Issue #31 (63 tests)
Implements comprehensive portfolio performance analytics:
- Returns calculation (daily, monthly, yearly, cumulative)
- Risk-adjusted metrics (Sharpe, Sortino, Calmar ratios)
- Volatility and downside deviation
- Drawdown analysis with period tracking
- Trade statistics (win rate, profit factor, expectancy)
- Benchmark comparison (alpha, beta, information ratio, tracking error)
- Utility functions (CAGR, rolling returns, period aggregation)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 21:44:15 +11:00
Andrew Kaszubski 6642047eaa feat(portfolio): add Portfolio State for holdings and mark-to-market - Issue #29 (68 tests)
Implements comprehensive portfolio state management:
- Holding dataclass with long/short support and P&L calculations
- CashBalance for multi-currency cash management
- PortfolioState class with:
  - Real-time mark-to-market valuation
  - Multi-currency support with exchange rate conversion
  - Thread-safe state updates
  - Position tracking with average cost calculation
  - Portfolio snapshots for historical tracking
- PriceProvider and ExchangeRateProvider protocols
- Serialization/deserialization support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 21:37:17 +11:00