Python Pandas Dataframe Расчет - PullRequest
       46

Python Pandas Dataframe Расчет

2 голосов
/ 01 ноября 2019

У меня есть исторические данные о ценах на акции, и мне нужно рассчитать доходность покупки и удержания, используя pandas, у меня также есть столбец с решением купить или продать шорт. При расчете доходности следует использовать столбец решений: если решение для day(i) является покупкой, а на следующий день - короткой продажей, то P / L - ln(Price(i+1)/Price(i), однако, если следующим day(i+1) будет покупка, как и на следующий день (i + 2) идень (i + n) также является покупкой, тогда должна быть рассчитана доходность Price(i+n)/Price(i) с учетом Price(i+n), то есть до принятия решения о короткой продаже. Можно ли как-то подсказать python, используя этот логический блок для вычисления Return? Начальная часть моего кода

for row in range(len(df1)):
if (df1['Predicted_Linear_W5'].iloc[i]> df1['Predicted_Linear_W5'].iloc[i-1]):
    if (df1['dec'].iloc[i]== 'ignore'):
        if (df1['dec'].iloc[i+1]== 'buy'):
            df1['PL5'].iloc[i+1] = 100/df1['Predicted_Linear_W5'].iloc[i]
        elif (df1['dec'].iloc[i]== 'buy'):
            df1['PL5'].iloc[i+1] =  df1['PL5'].iloc[i]
        elif (df1['dec'].iloc[i]== 'sell short'): 
            df1['PL5'].iloc[i+1] =  100/df1['Predicted_Linear_W5'].iloc[i] - 100/df1['Predicted_Linear_W5'].iloc[i+1]

Однако, он не работает, и столбец PL5 пуст

...