股价回报

时间:2019-10-27 18:13:06

标签: python

我有一份股票退货清单,需要查找逐年退货。

我为退货创建了一个空列表,并尝试遍历该列表以追加逐年退货。

lst = [10.82, 18.89, 52.62, 44.29, 47.15, 39.46, 92.64, 51.28, 134.52, 180.0, 173.1, 250.87, 398.79, 310.35, 675.89, 749.87]

返回= []

for i in range(len(lst)): 
    returns.append((lst[i+1]//lst[i])-1)

返回

IndexError                                
Traceback (most recent call last)
<ipython-input-37-526d26c5b374> in <module>
      2 
      3 for i in range(len(lst)):
----> 4     returns.append((lst[i+1]//lst[i])-1)
      5 
      6 print(returns)

IndexError: list index out of range

2 个答案:

答案 0 :(得分:1)

for i in range(len(AMZN_stock_prices)):

将导致i0len(AMZN_stock_prices)-1之间变化。当其最高值时,i+1在列表的边界之外。使用

for i in range(len(AMZN_stock_prices)-1):

这样i+1永远不会超出范围。

答案 1 :(得分:0)

科林,

假设您是python的新手。因此,我可能会在一个结构良好的结构内部进行操作。

import pandas as pd
import numpy as np
price_series = pd.Series(lst)
return_series = np.log(price_series/price_series.shift(1))  # assuming daily returns
rolling_one_year = return_series.rolling(252).sum()

从此处开始。出于多种原因,强烈建议您不要接触熊猫,以开始从事金融系列数据的研究。这些库在堆栈溢出方面有很多帮助。

祝你好运!