59 lines
1.4 KiB
Python
59 lines
1.4 KiB
Python
import pandas as pd
|
|
|
|
from fincal.fincal import TimeSeries, create_date_series
|
|
|
|
dfd = pd.read_csv("test_files/nav_history_daily - Copy.csv")
|
|
dfd = dfd[dfd["amfi_code"] == 118825].reset_index(drop=True)
|
|
ts = TimeSeries([(i.date, i.nav) for i in dfd.itertuples()], frequency="D")
|
|
repr(ts)
|
|
# print(ts[['2022-01-31', '2021-05-28']])
|
|
|
|
# rr = ts.calculate_rolling_returns(from_date='2021-01-01', to_date='2022-01-01', frequency='D', interval_type='days', interval_value=30, compounding=False)
|
|
|
|
|
|
# data = [
|
|
# ("2020-01-01", 10),
|
|
# ("2020-02-01", 12),
|
|
# ("2020-03-01", 14),
|
|
# ("2020-04-01", 16),
|
|
# ("2020-05-01", 18),
|
|
# ("2020-06-01", 20),
|
|
# ("2020-07-01", 22),
|
|
# ("2020-08-01", 24),
|
|
# ("2020-09-01", 26),
|
|
# ("2020-10-01", 28),
|
|
# ("2020-11-01", 30),
|
|
# ("2020-12-01", 32),
|
|
# ("2021-01-01", 34),
|
|
# ]
|
|
|
|
# ts = TimeSeries(data, frequency="M")
|
|
# rr = ts.calculate_rolling_returns(
|
|
# "2020-02-01",
|
|
# "2021-01-01",
|
|
# if_not_found="nan",
|
|
# compounding=False,
|
|
# interval_type="months",
|
|
# interval_value=1,
|
|
# as_on_match="exact",
|
|
# )
|
|
|
|
# for i in rr:
|
|
# print(i)
|
|
|
|
# returns = ts.calculate_returns(
|
|
# "2020-04-25",
|
|
# return_actual_date=True,
|
|
# closest_max_days=15,
|
|
# compounding=True,
|
|
# interval_type="days",
|
|
# interval_value=90,
|
|
# closest="previous",
|
|
# if_not_found="fail",
|
|
# )
|
|
|
|
# print(returns)
|
|
|
|
volatility = ts.volatility(start_date="2018-01-01", end_date="2021-01-01")
|
|
print(volatility)
|