Динамическая перебалансировка портфеля Python - PullRequest
1 голос
/ 10 ноября 2019

У меня проблема с моими данными. Я застрял с двух дней.

Я хочу рассчитать годовой доход моего портфеля на ежедневной основе, используя текущее значение и следующие 251 значения. Я должен делать этот расчет ежедневно, чтобы создать временные ряды возвратов.

e.g. Calculation 1: Day 1 + following 251 values
Calculation 2: Day 2 + following 251 values
Calculation 3: Day 3 + following 251

I tried to develop the dynamic structure of the calculation, but I failed.
Is it possible for some of you guys to come up with some ideas? 

Highly appreciate! 

# Starting at 18-03-2008, we compute the optimal annual weights an         
returns of our portfolio, day-by-day

DowJones['Number'] = range(1, 1711)

i = 1

while i < 1458:

DJ30=DowJones[DowJones['Number']< i+253]`
DJ30.iloc[1:]`
i=i+1`
DJ30.iloc[1]`
DJ30 = DJ30.iloc[i:]` 
DJ30 = DJ30.set_index('Date')`
returns = DJ30.pct_change()`

1 Ответ

0 голосов
/ 10 ноября 2019

Чтобы получить сумму из следующих 251 значений: сортировка, бросок, сумма:

df['one_year_sum'] = df.sort_values(by=['datetime'],ascending=False)['data'].rolling(251).sum()

Редактировать после комментария:

df['Number'].pct_change(251) # Or -251
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...