Current Account Value using the IBrokers API for Interactive Brokers

1.5k views Asked by At

I'm trying to get my account's total net liquidation amount. This is essentially the total amount in my portfolio of all positions, plus cash. However, the enclosed code is as close as I can get. I can then manually obtain it from the data below:

library(IBrokers)
tws <- twsConnect()
test<-reqAccountUpdates(tws)
test

I get the following data:

  AccountCode                      XXXX              
  AccountOrGroup                   XXXX      USD     
  AccountReady                     true                  
  AccountType                      PARTNERSHIP           
  AccruedCash                      0             USD     
  AccruedCash.S                    0.00          USD     
  AccruedDividend                  0.00          USD     
  AccruedDividend.S                0.00          USD     
  AvailableFunds                   1478.69    USD     
  AvailableFunds.S                 1478.69    USD     
  Billable                         0.00          USD     
  Billable.S                       0.00          USD     
  BuyingPower                      9812.27    USD     
  CashBalance                      1478       USD     
  CorporateBondValue               0             USD     
  Currency                         USD           USD     
  Cushion                          1                     
  DayTradesRemaining               -1                    
  DayTradesRemainingT.1            -1                    
  DayTradesRemainingT.2            -1                    
  DayTradesRemainingT.3            -1                    
  DayTradesRemainingT.4            -1                    
  EquityWithLoanValue              1478.69    USD     
  EquityWithLoanValue.S            1478.69    USD     
  ExcessLiquidity                  1478.69    USD     
  ExcessLiquidity.S                1478.69    USD     
  ExchangeRate                     1.00          USD     
  FullAvailableFunds               1478.69    USD     
  FullAvailableFunds.S             1478.69    USD     
  FullExcessLiquidity              1478.69    USD     
  FullExcessLiquidity.S            1478.69    USD     
  FullInitMarginReq                0.00          USD     
  FullInitMarginReq.S              0.00          USD     
  FullMaintMarginReq               0.00          USD     
  FullMaintMarginReq.S             0.00          USD     
  FundValue                        0             USD     
  FutureOptionValue                0             USD     
  FuturesPNL                       0             USD     
  FxCashBalance                    0             USD     
  GrossPositionValue               0.00          USD     
  GrossPositionValue.S             0.00          USD     
  IndianStockHaircut               0.00          USD     
  IndianStockHaircut.S             0.00          USD     
  InitMarginReq                    0.00          USD     
  InitMarginReq.S                  0.00          USD     
  IssuerOptionValue                0             USD     
  Leverage.S                       0.00                  
  LookAheadAvailableFunds          1478.69    USD     
  LookAheadAvailableFunds.S        1478.69    USD     
  LookAheadExcessLiquidity         1478.69    USD     
  LookAheadExcessLiquidity.S       1478.69    USD     
  LookAheadInitMarginReq           0.00          USD     
  LookAheadInitMarginReq.S         0.00          USD     
  LookAheadMaintMarginReq          0.00          USD     
  LookAheadMaintMarginReq.S        0.00          USD     
  LookAheadNextChange              0                     
  MaintMarginReq                   0.00          USD     
  MaintMarginReq.S                 0.00          USD     
  MoneyMarketFundValue             0             USD     
  MutualFundValue                  0             USD     
  NetDividend                      0             USD     
  NetLiquidation                   1478.69    USD     
  NetLiquidation.S                 1478.69    USD     
  NetLiquidationByCurrency         1479       USD     
  OptionMarketValue                0             USD     
  PASharesValue                    0.00          USD     
  PASharesValue.S                  0.00          USD     
  PostExpirationExcess             0.00          USD     
  PostExpirationExcess.S           0.00          USD     
  PostExpirationMargin             0.00          USD     
  PostExpirationMargin.S           0.00          USD     
  PreviousDayEquityWithLoanValue   1478.69    USD     
  PreviousDayEquityWithLoanValue.S 1478.69    USD     
  RealCurrency                     USD           USD     
  RealizedPnL                      0             USD     
  SegmentTitle.S                   US Securities         
  StockMarketValue                 0             USD     
  TBillValue                       0             USD     
  TBondValue                       0             USD     
  TotalCashBalance                 1479       USD     
  TotalCashValue                   1478.69    USD     
  TotalCashValue.S                 1478.69    USD     
  TradingType.S                    PMRGN                 
  UnrealizedPnL                    0             USD     
  WarrantValue                     0             USD     

I also tried messing with twsPortfolioValue, but wasn't able to get it to work.

Ideally, I'd like to specify the field, instead of reading X number of records down. IE I want to specify "NetLiquidation" as opposed to "row 58."

Any thoughts? Thank you so much for your help!

1

There are 1 answers

2
GSee On BEST ANSWER

test is a list. The first component is an object classed as eventAccountValue, which has its own print method to make it look like a data.frame. However, if you call unclass(test[[1]]), you'll see that it's really just a list.

So, you can access the "NetLiquidation" component of the first component of your test object like this

test[[1]][["NetLiquidation"]]
#    value*   currency 
# "1478.69"      "USD" 

*value changed to match OP's value.