Exemple #1
0
 def get_position_set_by_position_type(
         cls, positions_type: str,
         positions_id: str) -> Tuple[Instrument, ...]:
     root = 'deals' if positions_type == 'ETI' else 'books/' + positions_type
     url = '/risk-internal/{}/{}/positions'.format(root, positions_id)
     results = GsSession.current._get(url, timeout=181)
     return [PositionSet.from_dict(res) for res in results['positionSets']]
Exemple #2
0
 def get_position_set_by_position_type(cls, positions_type: str, positions_id: str,
                                       activity_type: str = 'position') -> Tuple[Instrument, ...]:
     root = 'deals' if positions_type == 'ETI' else 'books/' + positions_type
     if activity_type != 'position':
         url = '/risk-internal/{}/{}/positions?activityType={}'.format(root, positions_id, activity_type)
     else:
         url = '/risk-internal/{}/{}/positions'.format(root, positions_id)
     results = GsSession.current._get(url, timeout=181)
     return tuple(PositionSet.from_dict(res) for res in results['positionSets'])
Exemple #3
0
    def get_positions(cls, portfolio_id: str, start_date: dt.date = None, end_date: dt.date = None, position_type: str = 'close') -> Tuple[PositionSet, ...]:
        url = '/portfolios/{id}/positions?type={positionType}'.format(id=portfolio_id, positionType=position_type)
        if start_date is not None:
            url += '&startDate={sd}'.format(sd=start_date.isoformat())
        if end_date is not None:
            url += '&endDate={sd}'.format(sd=end_date.isoformat())

        res = GsSession.current._get(url)
        return tuple(PositionSet.from_dict(v) for v in res.get('positionSets', ()))
Exemple #4
0
    def get_latest_positions(cls, portfolio_id: str, position_type: str = 'close') -> Union[PositionSet, dict]:
        url = '/portfolios/{id}/positions/last?type={ptype}'.format(id=portfolio_id, ptype=position_type)
        results = GsSession.current._get(url)['results']

        # Annoyingly, different types are returned depending on position_type

        if isinstance(results, dict) and 'positions' in results:
            results['positions'] = tuple(Position.from_dict(p) for p in results['positions'])

        return PositionSet.from_dict(results)