@Override
public void updatePortfolio(Contract iBContract, int positionAmt, double marketPrice, double marketValue, double averageCost, double unrealizedPNL, double realizedPNL, String accountName) {
if (accountName.equals(accountId)) {
final IContract contract = ContractBean.copyOf(new IBContract(iBContract, constantTranslator));
final PositionBean position = new PositionBean(new Date(), positionAmt, marketPrice, marketValue, averageCost, unrealizedPNL, realizedPNL);
if (!positionUpdaters.containsKey(contract)) { // setup price listener for that contract: since IB sends too few updates, we update automatically based on price changes
PositionPriceUpdater positionPriceUpdater = new PositionPriceUpdater();
positionPriceUpdater.position = position;
final ITickListener tickListener = new ITickListener() {