MCPcopy
hub / github.com/ranaroussi/quantstats / _prepare_returns

Function _prepare_returns

quantstats/utils.py:207–235  ·  view source on GitHub ↗

Converts price data into returns + cleanup

(data, rf=0.0, nperiods=None)

Source from the content-addressed store, hash-verified

205
206
207def _prepare_returns(data, rf=0.0, nperiods=None):
208 """Converts price data into returns + cleanup"""
209 data = data.copy()
210 function = inspect.stack()[1][3]
211 if isinstance(data, _pd.DataFrame):
212 for col in data.columns:
213 if data[col].dropna().min() >= 0 and data[col].dropna().max() > 1:
214 data[col] = data[col].pct_change()
215 elif data.min() >= 0 and data.max() > 1:
216 data = data.pct_change()
217
218 # cleanup data
219 data = data.replace([_np.inf, -_np.inf], float("NaN"))
220
221 if isinstance(data, (_pd.DataFrame, _pd.Series)):
222 data = data.fillna(0).replace([_np.inf, -_np.inf], float("NaN"))
223 unnecessary_function_calls = [
224 "_prepare_benchmark",
225 "cagr",
226 "gain_to_pain_ratio",
227 "rolling_volatility",
228 ]
229
230 if function not in unnecessary_function_calls:
231 if rf > 0:
232 return to_excess_returns(data, rf, nperiods)
233
234 data = data.tz_localize(None)
235 return data
236
237
238def download_returns(ticker, period="max", proxy=None):

Callers 5

to_returnsFunction · 0.85
to_log_returnsFunction · 0.85
exponential_stdevFunction · 0.85
_prepare_benchmarkFunction · 0.85
make_portfolioFunction · 0.85

Calls 1

to_excess_returnsFunction · 0.85

Tested by

no test coverage detected