@@ -177,7 +177,7 @@ class FlexStatement(FlexElement):
177
177
TierInterestDetails : Tuple ["TierInterestDetail" , ...] = ()
178
178
HardToBorrowDetails : Tuple ["HardToBorrowDetail" , ...] = ()
179
179
HardToBorrowMarkupDetails : Tuple = ()
180
- SLBOpenContracts : Tuple = () # TODO
180
+ SLBOpenContracts : Tuple [ "SLBOpenContract" , ...] = ()
181
181
SLBActivities : Tuple ["SLBActivity" , ...] = ()
182
182
SLBFees : Tuple ["SLBFee" , ...] = ()
183
183
Transfers : Tuple ["Transfer" , ...] = ()
@@ -188,6 +188,9 @@ class FlexStatement(FlexElement):
188
188
HKIPOOpenSubscriptions : Tuple = () # TODO
189
189
CommissionCredits : Tuple = () # TODO
190
190
StockGrantActivities : Tuple = () # TODO
191
+ SLBCollaterals : Tuple = () # TODO
192
+ IncentiveCouponAccrualDetails : Tuple = () # TODO
193
+ DepositsOnHold : Tuple = () # TODO
191
194
192
195
def __repr__ (self ):
193
196
repr = (
@@ -250,6 +253,7 @@ class AccountInformation(FlexElement):
250
253
primaryEmail : Optional [str ] = None
251
254
accountRepName : Optional [str ] = None
252
255
accountRepPhone : Optional [str ] = None
256
+ lastTradedDate : Optional [datetime .date ] = None
253
257
254
258
255
259
# Type alias to work around https://github.com/python/mypy/issues/1775
@@ -313,7 +317,9 @@ class ChangeInNAV(FlexElement):
313
317
paxosTransfers : Optional [decimal .Decimal ] = None
314
318
commissionsAtPaxos : Optional [decimal .Decimal ] = None
315
319
referralFee : Optional [decimal .Decimal ] = None
316
-
320
+ currency : Optional [str ] = None
321
+ changeInIncentiveCouponAccruals : Optional [decimal .Decimal ] = None
322
+ otherIncome : Optional [decimal .Decimal ] = None
317
323
318
324
# Type alias to work around https://github.com/python/mypy/issues/1775
319
325
_ChangeInNAV = ChangeInNAV
@@ -366,7 +372,9 @@ class MTMPerformanceSummaryUnderlying(FlexElement):
366
372
weight : Optional [str ] = None
367
373
otherWithAccruals : Optional [decimal .Decimal ] = None
368
374
totalWithAccruals : Optional [decimal .Decimal ] = None
369
-
375
+ subCategory : Optional [str ] = None
376
+ figi : Optional [str ] = None
377
+ issuerCountryCode : Optional [str ] = None
370
378
371
379
@dataclass (frozen = True )
372
380
class EquitySummaryByReportDateInBase (FlexElement ):
@@ -461,6 +469,16 @@ class EquitySummaryByReportDateInBase(FlexElement):
461
469
physDelLong : Optional [decimal .Decimal ] = None
462
470
physDelShort : Optional [decimal .Decimal ] = None
463
471
currency : Optional [str ] = None
472
+ insuredBankDepositRedemptionCashComponentLong : Optional [decimal .Decimal ] = None
473
+ insuredBankDepositRedemptionCashComponentShort : Optional [decimal .Decimal ] = None
474
+ incentiveCouponAccrualsLong : Optional [decimal .Decimal ] = None
475
+ incentiveCouponAccrualsShort : Optional [decimal .Decimal ] = None
476
+ eventContractInterestAccrualsLong : Optional [decimal .Decimal ] = None
477
+ eventContractInterestAccrualsShort : Optional [decimal .Decimal ] = None
478
+ marginFinancingChargeAccrualsLong : Optional [decimal .Decimal ] = None
479
+ marginFinancingChargeAccrualsShort : Optional [decimal .Decimal ] = None
480
+ cryptoLong : Optional [decimal .Decimal ] = None
481
+ cryptoShort : Optional [decimal .Decimal ] = None
464
482
465
483
466
484
@dataclass (frozen = True )
@@ -690,6 +708,9 @@ class CashReportCurrency(FlexElement):
690
708
salesTaxMTD : Optional [decimal .Decimal ] = None
691
709
salesTaxYTD : Optional [decimal .Decimal ] = None
692
710
salesTaxPaxos : Optional [decimal .Decimal ] = None
711
+ otherIncome : Optional [decimal .Decimal ] = None
712
+ otherIncomeSec : Optional [decimal .Decimal ] = None
713
+ otherIncomeCom : Optional [decimal .Decimal ] = None
693
714
otherFeesMTD : Optional [decimal .Decimal ] = None
694
715
otherFeesYTD : Optional [decimal .Decimal ] = None
695
716
otherFeesPaxos : Optional [decimal .Decimal ] = None
@@ -1040,34 +1061,36 @@ class Trade(FlexElement):
1040
1061
accountId : Optional [str ] = None
1041
1062
currency : Optional [str ] = None
1042
1063
fxRateToBase : Optional [decimal .Decimal ] = None
1043
- symbol : Optional [str ] = None
1044
- description : Optional [str ] = None
1045
- conid : Optional [str ] = None
1046
- cusip : Optional [str ] = None
1047
- isin : Optional [str ] = None
1048
- listingExchange : Optional [str ] = None
1049
- multiplier : Optional [decimal .Decimal ] = None
1064
+ symbol : Optional [str ] = None # symbol of instrument traded, e.g. AAPL, not unique in IBKR as it can exist on different exchanges: (symbol, Exchange, Currency, Asset Type) is unique
1065
+ conid : Optional [str ] = None # IBKR identifier of instrument, unique key within IBKR
1066
+ cusip : Optional [str ] = None # S&P instrument ID, not unique as it is used on different exchanges
1067
+ isin : Optional [str ] = None # instrument ISIN (ISO standardized instrument ID)
1068
+ figi : Optional [str ] = None # instrument FIGI (Bloomberg ID - comparable to ISIN)
1069
+ description : Optional [str ] = None # instrument name, e.g. "Apple Inc."
1070
+ listingExchange : Optional [str ] = None # exchange, e.g. "NASDAQ"
1071
+ multiplier : Optional [decimal .Decimal ] = None # multiplier of contract traded
1050
1072
strike : Optional [decimal .Decimal ] = None
1051
1073
expiry : Optional [datetime .date ] = None
1052
1074
putCall : Optional [enums .PutCall ] = None
1053
1075
tradeID : Optional [str ] = None
1054
- reportDate : Optional [datetime .date ] = None
1055
- tradeDate : Optional [datetime .date ] = None
1056
- tradeTime : Optional [datetime .time ] = None
1057
- settleDateTarget : Optional [datetime .date ] = None
1076
+ reportDate : Optional [datetime .date ] = None # when the trade was included in IBKR's reporting system (e.g. corrections)
1077
+ tradeDate : Optional [datetime .date ] = None # date of the trade
1078
+ tradeTime : Optional [datetime .time ] = None # timestamp of the trade
1079
+ settleDateTarget : Optional [datetime .date ] = None # expected date of ownership transfer
1058
1080
exchange : Optional [str ] = None
1059
1081
quantity : Optional [decimal .Decimal ] = None
1060
1082
tradePrice : Optional [decimal .Decimal ] = None
1061
- tradeMoney : Optional [decimal .Decimal ] = None
1083
+ tradeMoney : Optional [decimal .Decimal ] = None # TradeMoney = Proceeds + Fees + Commissions
1084
+ proceeds : Optional [decimal .Decimal ] = None # Proceeds = Quantity * TradePrice * Multiplier
1085
+ netCash : Optional [decimal .Decimal ] = None # netCash = TradeMoney - Adjustments (e.g. fees in physical execution of options, or taxes)
1086
+ netCashInBase : Optional [decimal .Decimal ] = None # = NetCash × FX Rate
1062
1087
taxes : Optional [decimal .Decimal ] = None
1063
1088
ibCommission : Optional [decimal .Decimal ] = None
1064
1089
ibCommissionCurrency : Optional [str ] = None
1065
- netCash : Optional [decimal .Decimal ] = None
1066
- netCashInBase : Optional [decimal .Decimal ] = None
1067
- closePrice : Optional [decimal .Decimal ] = None
1090
+ closePrice : Optional [decimal .Decimal ] = None # closing market price of the asset on the trade date
1068
1091
notes : Tuple [enums .Code , ...] = () # separator = ";"
1069
1092
cost : Optional [decimal .Decimal ] = None
1070
- mtmPnl : Optional [decimal .Decimal ] = None
1093
+ mtmPnl : Optional [decimal .Decimal ] = None # PnL at the time of reportins
1071
1094
origTradePrice : Optional [decimal .Decimal ] = None
1072
1095
origTradeDate : Optional [datetime .date ] = None
1073
1096
origTradeID : Optional [str ] = None
@@ -1081,7 +1104,6 @@ class Trade(FlexElement):
1081
1104
orderTime : Optional [datetime .datetime ] = None
1082
1105
changeInPrice : Optional [decimal .Decimal ] = None
1083
1106
changeInQuantity : Optional [decimal .Decimal ] = None
1084
- proceeds : Optional [decimal .Decimal ] = None
1085
1107
fxPnl : Optional [decimal .Decimal ] = None
1086
1108
clearingFirmID : Optional [str ] = None
1087
1109
# Effective 2013, every Trade has a `transactionID` attribute that can't
@@ -1097,10 +1119,10 @@ class Trade(FlexElement):
1097
1119
traderID : Optional [str ] = None
1098
1120
isAPIOrder : Optional [bool ] = None
1099
1121
acctAlias : Optional [str ] = None
1100
- model : Optional [str ] = None
1122
+ model : Optional [str ] = None # some clients use model portfolios in account, i.e. virtual sub-accounts
1101
1123
securityID : Optional [str ] = None
1102
1124
securityIDType : Optional [str ] = None
1103
- principalAdjustFactor : Optional [decimal .Decimal ] = None
1125
+ principalAdjustFactor : Optional [decimal .Decimal ] = None # relevant e.g. in stock splits
1104
1126
dateTime : Optional [datetime .datetime ] = None
1105
1127
underlyingConid : Optional [str ] = None
1106
1128
underlyingSecurityID : Optional [str ] = None
@@ -1120,7 +1142,6 @@ class Trade(FlexElement):
1120
1142
relatedTransactionID : Optional [str ] = None
1121
1143
origTransactionID : Optional [str ] = None
1122
1144
subCategory : Optional [str ] = None
1123
- figi : Optional [str ] = None
1124
1145
issuerCountryCode : Optional [str ] = None
1125
1146
rtn : Optional [str ] = None
1126
1147
initialInvestment : Optional [decimal .Decimal ] = None
@@ -1324,7 +1345,14 @@ class UnbundledCommissionDetail(FlexElement):
1324
1345
regSection31TransactionFee : Optional [decimal .Decimal ] = None
1325
1346
regOther : Optional [decimal .Decimal ] = None
1326
1347
other : Optional [decimal .Decimal ] = None
1327
-
1348
+ subCategory : Optional [str ] = None
1349
+ figi : Optional [str ] = None
1350
+ issuerCountryCode : Optional [str ] = None
1351
+ serialNumber : Optional [decimal .Decimal ] = None
1352
+ deliveryType : Optional [decimal .Decimal ] = None # 0: Cash settlement, 1: physical settlement
1353
+ commodityType : Optional [str ] = None # z.B. "STK"=Aktie, "BND"=Anleihe, etc.
1354
+ fineness : Optional [decimal .Decimal ] = None # Reinheitsgrad bei Edelmetallen, z.B. 925 für 925 Sterling Silber
1355
+ weight : Optional [decimal .Decimal ] = None # Gewicht - Einheit ist Rohstoffabhängig
1328
1356
1329
1357
@dataclass (frozen = True )
1330
1358
class SymbolSummary (FlexElement ):
@@ -1892,7 +1920,8 @@ class TierInterestDetail(FlexElement):
1892
1920
code : Tuple [enums .Code , ...] = ()
1893
1921
fromAcct : Optional [str ] = None
1894
1922
toAcct : Optional [str ] = None
1895
-
1923
+ reportDate : Optional [datetime .date ] = None
1924
+ marginBalance : Optional [decimal .Decimal ] = None
1896
1925
1897
1926
@dataclass (frozen = True )
1898
1927
class HardToBorrowDetail (FlexElement ):
@@ -1969,7 +1998,17 @@ class SLBActivity(FlexElement):
1969
1998
markQuantity : Optional [decimal .Decimal ] = None
1970
1999
markPriorPrice : Optional [decimal .Decimal ] = None
1971
2000
markCurrentPrice : Optional [decimal .Decimal ] = None
1972
-
2001
+ subCategory : Optional [str ] = None
2002
+ figi : Optional [str ] = None
2003
+ listingExchange : Optional [str ] = None
2004
+ underlyingSecurityID : Optional [str ] = None
2005
+ underlyingListingExchange : Optional [str ] = None
2006
+ issuerCountryCode : Optional [str ] = None
2007
+ serialNumber : Optional [decimal .Decimal ] = None
2008
+ deliveryType : Optional [decimal .Decimal ] = None
2009
+ commodityType : Optional [str ] = None
2010
+ fineness : Optional [decimal .Decimal ] = None
2011
+ weight : Optional [decimal .Decimal ] = None
1973
2012
1974
2013
@dataclass (frozen = True )
1975
2014
class SLBFee :
@@ -2017,7 +2056,15 @@ class SLBFee:
2017
2056
code : Tuple [enums .Code , ...] = ()
2018
2057
fromAcct : Optional [str ] = None
2019
2058
toAcct : Optional [str ] = None
2020
-
2059
+ subCategory : Optional [str ] = None
2060
+ figi : Optional [str ] = None
2061
+ issuerCountryCode : Optional [str ] = None
2062
+ uniqueID : Optional [str ] = None
2063
+ serialNumber : Optional [decimal .Decimal ] = None
2064
+ deliveryType : Optional [decimal .Decimal ] = None
2065
+ commodityType : Optional [str ] = None
2066
+ fineness : Optional [decimal .Decimal ] = None
2067
+ weight : Optional [decimal .Decimal ] = None
2021
2068
2022
2069
@dataclass (frozen = True )
2023
2070
class Transfer (FlexElement ):
@@ -2137,7 +2184,14 @@ class PriorPeriodPosition(FlexElement):
2137
2184
expiry : Optional [datetime .date ] = None
2138
2185
putCall : Optional [enums .PutCall ] = None
2139
2186
principalAdjustFactor : Optional [decimal .Decimal ] = None
2140
-
2187
+ subCategory : Optional [str ] = None
2188
+ figi : Optional [str ] = None
2189
+ issuerCountryCode : Optional [str ] = None
2190
+ serialNumber : Optional [decimal .Decimal ] = None
2191
+ deliveryType : Optional [decimal .Decimal ] = None
2192
+ commodityType : Optional [str ] = None
2193
+ fineness : Optional [decimal .Decimal ] = None
2194
+ weight : Optional [decimal .Decimal ] = None
2141
2195
2142
2196
@dataclass (frozen = True )
2143
2197
class CorporateAction (FlexElement ):
@@ -2261,7 +2315,9 @@ class CashTransaction(FlexElement):
2261
2315
fineness : Optional [decimal .Decimal ] = None
2262
2316
weight : Optional [str ] = None
2263
2317
figi : Optional [str ] = None
2264
-
2318
+ issuerCountryCode : Optional [str ] = None
2319
+ availableForTradingDate : Optional [datetime .datetime ] = None
2320
+ exDate : Optional [datetime .datetime ] = None
2265
2321
2266
2322
@dataclass (frozen = True )
2267
2323
class DebitCardActivity (FlexElement ):
@@ -2324,7 +2380,16 @@ class ChangeInDividendAccrual(FlexElement):
2324
2380
toAcct : Optional [str ] = None
2325
2381
acctAlias : Optional [str ] = None
2326
2382
model : Optional [str ] = None
2327
-
2383
+ subCategory : Optional [str ] = None
2384
+ figi : Optional [str ] = None
2385
+ issuerCountryCode : Optional [str ] = None
2386
+ actionID : Optional [decimal .Decimal ] = None #unique numerical ID
2387
+ levelOfDetail : Optional [str ] = None
2388
+ serialNumber : Optional [decimal .Decimal ] = None
2389
+ deliveryType : Optional [decimal .Decimal ] = None
2390
+ commodityType : Optional [str ] = None
2391
+ fineness : Optional [decimal .Decimal ] = None
2392
+ weight : Optional [decimal .Decimal ] = None
2328
2393
2329
2394
# Type alias to work around https://github.com/python/mypy/issues/1775
2330
2395
_ChangeInDividendAccrual = ChangeInDividendAccrual
@@ -2488,7 +2553,9 @@ class FIFOPerformanceSummaryUnderlying(FlexElement):
2488
2553
commodityType : Optional [str ] = None
2489
2554
fineness : Optional [decimal .Decimal ] = None
2490
2555
weight : Optional [str ] = None
2491
-
2556
+ subCategory : Optional [str ] = None
2557
+ figi : Optional [str ] = None
2558
+ issuerCountryCode : Optional [str ] = None
2492
2559
2493
2560
@dataclass (frozen = True )
2494
2561
class NetStockPosition (FlexElement ):
@@ -2526,7 +2593,9 @@ class NetStockPosition(FlexElement):
2526
2593
commodityType : Optional [str ] = None
2527
2594
fineness : Optional [decimal .Decimal ] = None
2528
2595
weight : Optional [str ] = None
2529
-
2596
+ subCategory : Optional [str ] = None
2597
+ figi : Optional [str ] = None
2598
+ issuerCountryCode : Optional [str ] = None
2530
2599
2531
2600
@dataclass (frozen = True )
2532
2601
class ClientFee (FlexElement ):
@@ -2706,5 +2775,49 @@ class SalesTax(FlexElement):
2706
2775
code : Tuple [enums .Code , ...] = ()
2707
2776
2708
2777
2778
+ @dataclass (frozen = True )
2779
+ class SLBOpenContract (FlexElement ):
2780
+ accountId : Optional [str ] = None
2781
+ acctAlias : Optional [str ] = None
2782
+ model : Optional [str ] = None
2783
+ currency : Optional [str ] = None
2784
+ fxRateToBase : Optional [decimal .Decimal ] = None
2785
+ description : Optional [str ] = None
2786
+ conid : Optional [str ] = None
2787
+ securityID : Optional [str ] = None
2788
+ cusip : Optional [str ] = None
2789
+ isin : Optional [str ] = None
2790
+ assetCategory : Optional [str ] = None
2791
+ subCategory : Optional [str ] = None
2792
+ symbol : Optional [str ] = None
2793
+ securityIDType : Optional [str ] = None
2794
+ figi : Optional [str ] = None
2795
+ listingExchange : Optional [str ] = None
2796
+ underlyingConid : Optional [str ] = None
2797
+ underlyingSymbol : Optional [str ] = None
2798
+ underlyingSecurityID : Optional [str ] = None
2799
+ underlyingListingExchange : Optional [str ] = None
2800
+ issuer : Optional [str ] = None
2801
+ issuerCountryCode : Optional [str ] = None
2802
+ multiplier : Optional [decimal .Decimal ] = None
2803
+ strike : Optional [decimal .Decimal ] = None
2804
+ expiry : Optional [datetime .date ] = None
2805
+ putCall : Optional [enums .PutCall ] = None
2806
+ principalAdjustFactor : Optional [decimal .Decimal ] = None
2807
+ date : Optional [datetime .date ] = None
2808
+ type : Optional [str ] = None
2809
+ slbTransactionId : Optional [str ] = None
2810
+ exchange : Optional [str ] = None
2811
+ quantity : Optional [decimal .Decimal ] = None
2812
+ excessQuantity : Optional [decimal .Decimal ] = None
2813
+ feeRate : Optional [decimal .Decimal ] = None
2814
+ collateralAmount : Optional [decimal .Decimal ] = None
2815
+ levelOfDetail : Optional [str ] = None
2816
+ serialNumber : Optional [decimal .Decimal ] = None
2817
+ deliveryType : Optional [decimal .Decimal ] = None
2818
+ commodityType : Optional [str ] = None
2819
+ fineness : Optional [decimal .Decimal ] = None
2820
+ weight : Optional [decimal .Decimal ] = None
2821
+
2709
2822
# Type alias to work around https://github.com/python/mypy/issues/1775
2710
2823
_ClientFeesDetail = ClientFeesDetail
0 commit comments