Пример #1
0
def test_prices(date, ticker, price):
    """Тесты на тип и размер результата и для выборочных значений и заполнение пропусков."""
    df = quotes.prices(("AKRN", "GMKN", "MSTT"), pd.Timestamp("2020-10-09"))

    assert isinstance(df, pd.DataFrame)
    assert len(df) > 1452
    assert df.shape[1] == 3
    assert df.index[-1] == pd.Timestamp("2020-10-09")
    assert df.loc[date, ticker] == pytest.approx(price)
Пример #2
0
 def __init__(self, ticker: str, params: DataParams):
     super().__init__(ticker, params)
     p_low = quotes.prices(params.tickers, params.end, col.LOW)[ticker]
     price = params.price(ticker)
     p_low = p_low.reindex(
         price.index,
         method="ffill",
         axis=0,
     )
     self.low = torch.tensor(p_low.values, dtype=torch.float, device=DEVICE)
     self.price = torch.tensor(params.price(ticker).values, dtype=torch.float, device=DEVICE)
     self.history_days = params.history_days
Пример #3
0
    def price(self) -> pd.Series:
        """Цены позиций.

        CASH - 1 и PORTFOLIO - расчетная стоимость.
        """
        price = quotes.prices(tuple(self.index[:-2]), self.date)
        try:
            price = price.iloc[-1]
        except KeyError:
            raise config.POptimizerError(
                f"Для даты {self._date.date()} отсутствуют исторические "
                f"котировки")
        price[CASH] = 1
        price[PORTFOLIO] = (self.shares[:-1] * price).sum(axis=0)
        price.name = "PRICE"

        return price
Пример #4
0
def test_t2_shift(date, t2):
    """Различные варианты сдвига около выходных."""
    index = quotes.prices(("NLMK", "GMKN"), pd.Timestamp("2018-10-08")).index
    assert quotes._t2_shift(pd.Timestamp(date), index) == pd.Timestamp(t2)