Esempio n. 1
0
def index(
    ticker: str = "MCFTRR",
    viewer: viewers.Viewer = bootstrap.VIEWER,
) -> pd.Series:
    """Загрузка данных по индексу полной доходности с учетом российских налогов - MCFTRR."""
    df = viewer.get_df(ports.INDEX, ticker)
    return df.loc[bootstrap.START_DATE :, col.CLOSE]  # type: ignore
Esempio n. 2
0
def div_ext(
    ticker: str,
    viewer: viewers.Viewer = bootstrap.VIEWER,
) -> pd.DataFrame:
    """Сводная информация из внешних источников по дивидендам."""
    df = viewer.get_df(ports.DIV_EXT, ticker)
    return df.loc[bootstrap.START_DATE:]  # type: ignore
Esempio n. 3
0
def dividends(
    ticker: str,
    viewer: viewers.Viewer = bootstrap.VIEWER,
) -> pd.DataFrame:
    """Дивиденды для данного тикера."""
    df = viewer.get_df(ports.DIVIDENDS, ticker)
    return df.loc[bootstrap.START_DATE:]  # type: ignore
Esempio n. 4
0
def quotes(
    tickers: tuple[str, ...],
    viewer: viewers.Viewer = bootstrap.VIEWER,
) -> list[pd.DataFrame]:
    """Информация о котировках для заданных тикеров."""
    dfs = viewer.get_dfs(ports.QUOTES, tickers)
    start_date = bootstrap.START_DATE
    return [df.loc[start_date:] for df in dfs]  # type: ignore
Esempio n. 5
0
def dividends_all(
    tickers: Tuple[str, ...],
    viewer: viewers.Viewer = bootstrap.VIEWER,
) -> pd.DataFrame:
    """Дивиденды по заданным тикерам после уплаты налогов.

    Значения для дат, в которые нет дивидендов у данного тикера (есть у какого-то другого),
    заполняются 0.
    """
    dfs = viewer.get_dfs(ports.DIVIDENDS, tickers)
    dfs = [df.loc[bootstrap.START_DATE:] for df in dfs]  # type: ignore

    df = pd.concat(dfs, axis=1)
    df = df.reindex(columns=tickers)
    df = df.fillna(0, axis=0)
    return df.mul(bootstrap.AFTER_TAX)
Esempio n. 6
0
def _securities_info(
        viewer: viewers.Viewer = bootstrap.VIEWER) -> pd.DataFrame:
    """Сводная информация о торгуемых бумагах - кэшируется при первом вызове."""
    return viewer.get_df(ports.SECURITIES, ports.SECURITIES)
Esempio n. 7
0
def last_history_date(
        viewer: viewers.Viewer = bootstrap.VIEWER) -> pd.Timestamp:
    """Последняя доступная дата исторических котировок."""
    df = viewer.get_df(ports.TRADING_DATES, ports.TRADING_DATES)
    return df.loc[0, "till"]
Esempio n. 8
0
def cpi(viewer: viewers.Viewer = bootstrap.VIEWER) -> pd.Series:
    """Потребительская инфляция."""
    df = viewer.get_df(ports.CPI, ports.CPI)
    return df.loc[bootstrap.START_DATE :, col.CPI]  # type: ignore
Esempio n. 9
0
def usd(viewer: viewers.Viewer = bootstrap.VIEWER) -> pd.Series:
    """Курс доллара."""
    df = viewer.get_df(ports.USD, ports.USD)
    return df.loc[bootstrap.START_DATE :, col.CLOSE]  # type: ignore
Esempio n. 10
0
def _new_div_all(viewer: viewers.Viewer = bootstrap.VIEWER) -> pd.DataFrame:
    """Информация по дивидендам с smart-lab.ru."""
    raw_data = viewer.get_df(ports.DIV_NEW, ports.DIV_NEW)
    indexed = raw_data.set_index(col.DATE, append=True)
    grouped = indexed.groupby(level=[0, 1]).sum(min_count=1)
    return grouped.reset_index(level=1)
Esempio n. 11
0
def _new_div_all(viewer: viewers.Viewer = bootstrap.VIEWER) -> pd.DataFrame:
    """Информация по дивидендам с smart-lab.ru."""
    return viewer.get_df(ports.DIV_NEW, ports.DIV_NEW)