def positions(self): ''' pos = self._api.list_positions() return pos ''' z_positions = zp.Positions() positions = self._api.list_positions() position_map = {} symbols = [] for pos in positions: symbol = pos.symbol try: z_position = zp.Position(symbol_lookup(symbol)) except SymbolNotFound: continue z_position.amount = int(pos.qty) z_position.cost_basis = float(pos.cost_basis) / float(pos.qty) z_position.last_sale_price = None z_position.last_sale_date = None z_positions[symbol_lookup(symbol)] = z_position z_position.last_sale_price = np.nan z_position.last_sale_date = pd.NaT symbols.append(symbol) position_map[symbol] = z_position return z_positions
def positions(self): z_positions = zp.Positions() positions = self._api.list_positions() position_map = {} symbols = [] for pos in positions: symbol = pos.symbol try: z_position = zp.Position(symbol_lookup(symbol)) except SymbolNotFound: continue z_position.amount = int(pos.qty) z_position.cost_basis = float(pos.cost_basis) / float(pos.qty) z_position.last_sale_price = None z_position.last_sale_date = None z_positions[symbol_lookup(symbol)] = z_position symbols.append(symbol) position_map[symbol] = z_position trades = self._symbol_trades(symbols) for symbol, trade in trades.items(): z_position = position_map[symbol] if trade is None: z_position.last_sale_price = np.nan z_position.last_sale_date = pd.NaT else: z_position.last_sale_price = float(trade.price) z_position.last_sale_date = trade.timestamp return z_positions
def positions(self): z_positions = zp.Positions() positions = self._api.list_positions() position_map = {} symbols = [] for pos in positions: symbol = pos.symbol try: z_position = zp.Position(symbol_lookup(symbol)) except SymbolNotFound: continue z_position.amount = int(pos.qty) z_position.cost_basis = float(pos.cost_basis) / float(pos.qty) z_position.last_sale_price = None z_position.last_sale_date = None z_positions[symbol_lookup(symbol)] = z_position symbols.append(symbol) position_map[symbol] = z_position quotes = self._api.list_quotes(symbols) for quote in quotes: price = quote.last dt = quote.last_timestamp z_position = position_map[quote.symbol] z_position.last_sale_price = float(price) z_position.last_sale_date = dt return z_positions
def __init__(self, cash=1e6, size=50, clock=None): ''' paramters: cash: initial cash balance size: the number of stocks in universe clock: soft clock ''' self._account = zp.Account() self._account.buying_power = cash self._account.total_position_value = 0 self._portfolio = zp.Portfolio() self._portfolio.cash = cash self._portfolio.positions = self._positions = zp.Positions() self._order_seq = 0 self._orders = {} self._clock = clock self._last_process_time = None self._data_proxy = FakeDataBackend(size=size, clock=clock)
class portfolio: portfolio_value = 1000.0 positions = proto.Positions()