Is there a way to get StockMarketValue in IBController that accounts for short and long positions, plus different currencies?
ibc.GetAccountValue("StockMarketValue") treats shorts as negative values, so if I was long 100K USD and short 100K USD, then StockMarketValue is equal to 0 USD, while I'd want to end up with 200K USD.
If I get ibc.GetPositionList() and try to loop through all positions and get ibc.GetPositionInfo( op, "Currency"), then it comes back as 0.0, expected USD JPY EUR. Based on ibc.GetPositionInfo( op, "Position") I can figure out the side (negative shares are short), but I cannot convert all positions to USD without knowing their currency.