Versions in this module Expand all Collapse all v1 v1.0.0 Jun 16, 2026 Changes in this version + type Analyzer interface + RecordTrade func(TradeRecord) + type AnalyzerFunc func(TradeRecord) + func (f AnalyzerFunc) RecordTrade(record TradeRecord) + type Portfolio struct + func New(c *cache.Cache) *Portfolio + func (p *Portfolio) ApplyFill(fill model.FillReport) error + func (p *Portfolio) ApplyFillWithPosition(fill model.FillReport, previous *model.PositionStatusReport, ...) error + func (p *Portfolio) ApplyMarketEvent(event model.MarketEvent) error + func (p *Portfolio) AvailableEquity(accountID model.AccountID) map[model.Currency]decimal.Decimal + func (p *Portfolio) BalancesLocked(accountID model.AccountID) map[model.Currency]decimal.Decimal + func (p *Portfolio) Commission(accountID model.AccountID, currency model.Currency) decimal.Decimal + func (p *Portfolio) Equity(accountID model.AccountID) map[model.Currency]decimal.Decimal + func (p *Portfolio) Exposure(accountID model.AccountID, quote model.Currency) decimal.Decimal + func (p *Portfolio) HandleExecutionEvent(event model.ExecutionEvent) error + func (p *Portfolio) MarginsInit(accountID model.AccountID) map[model.InstrumentID]decimal.Decimal + func (p *Portfolio) MarginsMaint(accountID model.AccountID) map[model.InstrumentID]decimal.Decimal + func (p *Portfolio) MarkValue(accountID model.AccountID, instrumentID model.InstrumentID) decimal.Decimal + func (p *Portfolio) MarkValues(accountID model.AccountID) map[model.Currency]decimal.Decimal + func (p *Portfolio) NetExposuresByAccount(target model.Currency) map[model.AccountID]decimal.Decimal + func (p *Portfolio) NetExposuresByInstrument(accountID model.AccountID, target model.Currency) map[model.InstrumentID]decimal.Decimal + func (p *Portfolio) NetExposuresByVenue(target model.Currency) map[model.Venue]decimal.Decimal + func (p *Portfolio) NetPosition(accountID model.AccountID, instrumentID model.InstrumentID) decimal.Decimal + func (p *Portfolio) NetPositionsByInstrument(accountID model.AccountID) map[model.InstrumentID]decimal.Decimal + func (p *Portfolio) RealizedPnL(accountID model.AccountID, instrumentID model.InstrumentID) decimal.Decimal + func (p *Portfolio) RealizedPnLs(accountID model.AccountID) map[model.Currency]decimal.Decimal + func (p *Portfolio) SetAnalyzer(analyzer Analyzer) + func (p *Portfolio) SetConversionRate(from model.Currency, to model.Currency, rate decimal.Decimal) error + func (p *Portfolio) SetMark(accountID model.AccountID, instrumentID model.InstrumentID, ...) + func (p *Portfolio) TotalPnLs(accountID model.AccountID) map[model.Currency]decimal.Decimal + func (p *Portfolio) UnrealizedPnL(accountID model.AccountID, instrumentID model.InstrumentID) decimal.Decimal + func (p *Portfolio) UnrealizedPnLs(accountID model.AccountID) map[model.Currency]decimal.Decimal + func (p *Portfolio) UpdateAccount(account model.AccountSnapshot) error + type TradeRecord struct + AccountCurrency model.Currency + AccountCurrencyPnL decimal.Decimal + AccountID model.AccountID + Currency model.Currency + InstrumentID model.InstrumentID + PositionID model.PositionID + RealizedPnL decimal.Decimal