У меня есть исторические данные о ценах на акции, и мне нужно рассчитать доходность покупки и удержания, используя 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 пуст