def position(self, account, contract, posSize, avgCost): contract = self._getContract(contract) position = Position(account, contract, posSize, avgCost) positions = self.positions[account] if posSize == 0: positions.pop(contract.conId, None) else: positions[contract.conId] = position self._logger.info(f'position: {position}') results = self._results.get('positions') if results is not None: results.append(position) self._ib.positionEvent.emit(position)
def positionMulti(self, reqId, account, modelCode, contract, posSize, avgCost): contract = Contract(**contract.__dict__) position = Position(account, contract, posSize, avgCost) positionsModel = self.positionsModel[modelCode] if posSize == 0: positionsModel.pop(contract.conId, None) else: positionsModel[contract.conId] = position self._logger.info(f'position: {position}') results = self._results.get('positionsModel') self._ib.positionEvent.emit(position) if results is not None: results.append(position)
def position(self, account: str, contract: Contract, posSize: float, avgCost: float): contract = Contract.create(**dataclassAsDict(contract)) position = Position(account, contract, posSize, avgCost) positions = self.positions[account] if posSize == 0: positions.pop(contract.conId, None) else: positions[contract.conId] = position self._logger.info(f'position: {position}') results = self._results.get('positions') if results is not None: results.append(position) self.ib.positionEvent.emit(position)