Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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)