pub struct ActivityFlexStatement {Show 45 fields
pub account_id: Option<String>,
pub from_date: Option<NaiveDate>,
pub to_date: Option<NaiveDate>,
pub when_generated: Option<String>,
pub period: Option<String>,
pub trades: TradesWrapper,
pub positions: PositionsWrapper,
pub cash_transactions: CashTransactionsWrapper,
pub corporate_actions: CorporateActionsWrapper,
pub securities_info: SecuritiesInfoWrapper,
pub conversion_rates: ConversionRatesWrapper,
pub account_information: Option<AccountInformation>,
pub change_in_nav: Option<ChangeInNAV>,
pub equity_summary: EquitySummaryWrapper,
pub cash_report: CashReportWrapper,
pub trade_confirms: TradeConfirmsWrapper,
pub option_eae: OptionEAEWrapper,
pub fx_transactions: FxTransactionsWrapper,
pub change_in_dividend_accruals: ChangeInDividendAccrualsWrapper,
pub open_dividend_accruals: OpenDividendAccrualsWrapper,
pub interest_accruals: InterestAccrualsWrapper,
pub transfers: TransfersWrapper,
pub mtm_performance_summary: MTMPerformanceSummaryWrapper,
pub fifo_performance_summary: FIFOPerformanceSummaryWrapper,
pub mtd_ytd_performance_summary: MTDYTDPerformanceSummaryWrapper,
pub statement_of_funds: StatementOfFundsWrapper,
pub change_in_position_values: ChangeInPositionValueWrapper,
pub unbundled_commission_details: UnbundledCommissionDetailWrapper,
pub client_fees: ClientFeesWrapper,
pub client_fees_detail: ClientFeesDetailWrapper,
pub slb_activities: SLBActivitiesWrapper,
pub slb_fees: SLBFeesWrapper,
pub hard_to_borrow_details: HardToBorrowDetailsWrapper,
pub fx_lots: FxLotsWrapper,
pub unsettled_transfers: UnsettledTransfersWrapper,
pub trade_transfers: TradeTransfersWrapper,
pub prior_period_positions: PriorPeriodPositionsWrapper,
pub tier_interest_details: TierInterestDetailsWrapper,
pub debit_card_activities: DebitCardActivitiesWrapper,
pub sales_tax: SalesTaxWrapper,
pub net_stock_positions: NetStockPositionsWrapper,
pub cfd_charges: CFDChargesWrapper,
pub slb_open_contracts: SLBOpenContractsWrapper,
pub stock_grant_activities: StockGrantActivitiesWrapper,
pub transaction_taxes: TransactionTaxesWrapper,
/* private fields */
}Expand description
Top-level Activity FLEX statement
Contains all data from an Activity FLEX query including trades, positions, cash transactions, and other portfolio data.
This is the main type returned by crate::parse_activity_flex.
§Example
use ib_flex::parse_activity_flex;
use rust_decimal::Decimal;
let xml = std::fs::read_to_string("activity.xml")?;
let statement = parse_activity_flex(&xml)?;
// Access account and date range
println!("Account: {:?}", statement.account_id);
println!("Period: {:?} to {:?}", statement.from_date, statement.to_date);
// Iterate through all trades
for trade in &statement.trades.items {
println!("{}: {} {} @ {}",
trade.symbol.as_deref().unwrap_or(""),
trade.buy_sell.as_ref().map(|b| format!("{:?}", b)).unwrap_or_default(),
trade.quantity.unwrap_or_default(),
trade.price.unwrap_or_default()
);
}
// Calculate total P&L
let total_pnl: Decimal = statement.trades.items.iter()
.filter_map(|t| t.fifo_pnl_realized)
.sum();
println!("Total realized P&L: {}", total_pnl);
// Access positions
for pos in &statement.positions.items {
println!("{}: {} shares @ {}",
pos.symbol.as_deref().unwrap_or(""),
pos.quantity.unwrap_or_default(),
pos.mark_price.unwrap_or_default()
);
}Fields§
§account_id: Option<String>IB account number
from_date: Option<NaiveDate>Statement date range - start date
to_date: Option<NaiveDate>Statement date range - end date
when_generated: Option<String>When the report was generated
period: Option<String>Reporting period descriptor (e.g. LastNCalendarDays, MonthToDate).
Present on multi-statement exports; useful for detecting that a backfill
query returned more than one ActivityFlexStatement (parse with
crate::parse_activity_flex_all, not crate::parse_activity_flex).
trades: TradesWrapperAll trades in the period
positions: PositionsWrapperOpen positions at end of period
cash_transactions: CashTransactionsWrapperCash transactions (deposits, withdrawals, dividends, interest)
corporate_actions: CorporateActionsWrapperCorporate actions (splits, mergers, spinoffs)
securities_info: SecuritiesInfoWrapperSecurities information (reference data)
conversion_rates: ConversionRatesWrapperCurrency conversion rates
account_information: Option<AccountInformation>Account information
Change in NAV - single element (not wrapped like other sections)
equity_summary: EquitySummaryWrapperEquity summary by report date in base currency
cash_report: CashReportWrapperCash report by currency
trade_confirms: TradeConfirmsWrapperTrade confirmations
option_eae: OptionEAEWrapperOption exercises, assignments, and expirations
fx_transactions: FxTransactionsWrapperForeign exchange transactions
change_in_dividend_accruals: ChangeInDividendAccrualsWrapperChange in dividend accruals
open_dividend_accruals: OpenDividendAccrualsWrapperOpen dividend accruals
interest_accruals: InterestAccrualsWrapperInterest accruals by currency
transfers: TransfersWrapperSecurity transfers
mtm_performance_summary: MTMPerformanceSummaryWrapperMTM performance summary by underlying
fifo_performance_summary: FIFOPerformanceSummaryWrapperFIFO performance summary by underlying
mtd_ytd_performance_summary: MTDYTDPerformanceSummaryWrapperMTD/YTD performance summary
statement_of_funds: StatementOfFundsWrapperStatement of funds (cash flow tracking)
change_in_position_values: ChangeInPositionValueWrapperChange in position value (reconciliation)
unbundled_commission_details: UnbundledCommissionDetailWrapperUnbundled commission details
client_fees: ClientFeesWrapperClient fees (advisory fees)
client_fees_detail: ClientFeesDetailWrapperClient fees detail
slb_activities: SLBActivitiesWrapperSecurities lending activities
slb_fees: SLBFeesWrapperSecurities lending fees
hard_to_borrow_details: HardToBorrowDetailsWrapperHard to borrow details
fx_lots: FxLotsWrapperFX position lots
unsettled_transfers: UnsettledTransfersWrapperUnsettled transfers
trade_transfers: TradeTransfersWrapperTrade transfers (inter-broker)
prior_period_positions: PriorPeriodPositionsWrapperPrior period positions
tier_interest_details: TierInterestDetailsWrapperTier interest details
debit_card_activities: DebitCardActivitiesWrapperDebit card activities
sales_tax: SalesTaxWrapperSales tax
net_stock_positions: NetStockPositionsWrapperNet stock positions (stock + option-equivalent exposure)
cfd_charges: CFDChargesWrapperCFD financing charges
slb_open_contracts: SLBOpenContractsWrapperOpen stock-loan/borrow contracts
stock_grant_activities: StockGrantActivitiesWrapperEmployee stock grant / vesting activity
transaction_taxes: TransactionTaxesWrapperPer-transaction taxes (stamp duty, FTT, etc.)
Trait Implementations§
Source§impl Clone for ActivityFlexStatement
impl Clone for ActivityFlexStatement
Source§fn clone(&self) -> ActivityFlexStatement
fn clone(&self) -> ActivityFlexStatement
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ActivityFlexStatement
impl Debug for ActivityFlexStatement
Source§impl<'de> Deserialize<'de> for ActivityFlexStatement
impl<'de> Deserialize<'de> for ActivityFlexStatement
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ActivityFlexStatement
impl PartialEq for ActivityFlexStatement
Source§fn eq(&self, other: &ActivityFlexStatement) -> bool
fn eq(&self, other: &ActivityFlexStatement) -> bool
self and other values to be equal, and is used by ==.