research.rolling_returns

Documentation for eth_defi.research.rolling_returns Python module.

Used in vault report notebooks to calculate and rolling returns for vaults.

Functions

calculate_daily_returns_for_all_vaults(df_work)

Calculate daily returns for each vault in isolation.

calculate_rolling_returns(returns_df[, ...])

Calculate rolling returns stats for vaults.

visualise_rolling_returns(rolling_returns_df)

Visualise rolling returns from a DataFrame.

wrap_legend_text(text[, max_length])

Wrap long legend text by inserting line breaks.

wrap_legend_text(text, max_length=30)

Wrap long legend text by inserting line breaks.

Parameters
  • text (str) –

  • max_length (int) –

Return type

str

calculate_rolling_returns(returns_df, interesting_vaults=None, filtered_vault_list_df=None, period=Timedelta('150 days 00:00:00'), cap=None, clip_down=None, clip_up=None, drop_threshold=None, benchmark_count=10, returns_column='returns_1h', chainify=True, logger=<built-in function print>)

Calculate rolling returns stats for vaults.

  • Take a snapshot of returns from the return data pool of all vaults

  • Calculate rolling return chart metrics for those vaults

Parameters
  • returns_df (pandas.core.frame.DataFrame) –

    Hourly cleaned return data of all vaults as a DataFrame.

    See notebook examples.

  • interesting_vaults (pandas.core.series.Series | None) –

    A Series of vault ids to limit the results to.

    A list of chain id-address strings.

  • chainify – Add the chain name in the title.

  • filtered_vault_list_df (pandas.core.frame.DataFrame | None) –

  • period (pandas._libs.tslibs.timedeltas.Timedelta) –

  • cap (float) –

  • clip_down (float) –

  • clip_up (float) –

  • drop_threshold (float) –

  • benchmark_count (int) –

  • returns_column (str) –

Returns

A DataFrame with MultiIndex(id, timestamp) and columns like rolling_1m_returns_annualized.

Return type

pandas.core.frame.DataFrame

calculate_daily_returns_for_all_vaults(df_work)

Calculate daily returns for each vault in isolation.

Parameters

df_work (pandas.core.frame.DataFrame) – DataFrame with hourly share price values.

Return type

pandas.core.frame.DataFrame

visualise_rolling_returns(rolling_returns_df, title='1M rolling returns by vault')

Visualise rolling returns from a DataFrame.

Parameters
  • df – Calculated with :py:func`calculate_rolling_returns`.

  • rolling_returns_df (pandas.core.frame.DataFrame) –

Return type

plotly.graph_objs._figure.Figure