pub struct ActivityFlexStatement {Show 39 fields
pub account_id: String,
pub from_date: NaiveDate,
pub to_date: NaiveDate,
pub when_generated: 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,
/* 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,
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,
pos.quantity,
pos.mark_price
);
}Fields§
§account_id: StringIB account number
from_date: NaiveDateStatement date range - start date
to_date: NaiveDateStatement date range - end date
when_generated: StringWhen the report was generated
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
Trait Implementations§
Source§impl Clone for ActivityFlexStatement
impl Clone for ActivityFlexStatement
Source§fn clone(&self) -> ActivityFlexStatement
fn clone(&self) -> ActivityFlexStatement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more