【问题标题】:Looping through an investment strategy循环投资策略
【发布时间】:2016-06-04 11:33:17
【问题描述】:

我已经创建了一个投资策略,我希望循环遍历数据集中的每个开始日期。例如,如果策略于 2015 年 12 月 31 日开始,第一个单元格将是未来回报,如果策略于 16 年 1 月 1 日开始,第二个单元格将是未来回报。只要我能得到一个最终值,我就应该没有问题,以 % 的形式获得回报。到目前为止,我的代码还没有成功。以下是我试图完成此操作的代码部分。我目前得到的未来回报值不正确。

value = []
for i in range(1,len(l)):
    df.loc[l[i], 'S&P Future Return'] = sum(value) 
    for i in range(1,len(l)):
        value.append(df.loc[l[i], 'Returns']) 

【问题讨论】:

  • 我建议您查看MCVE。从您发布的代码中,尚不清楚问题是什么,或者您要完成什么。您是否收到错误或与预期不同的输出?
  • 我得到的值不正确。我的目标是让输出变成这样。如果您在 2015 年 12 月 31 日投资,您未来的回报将是 XX%。但我的代码只是一遍又一遍地添加相同的值。
  • @Evy555 在我们为您提供帮助之前,我们需要一个带有示例输入和预期值的 MCVE。

标签: python python-3.x pandas finance


【解决方案1】:

这是在黑暗中拍摄的,因为您有一个逻辑错误,并且不完全清楚逻辑应该是什么。用绝对的基本输入集将它扔到 Python 中,我得到:

f = [0, 0, 0, 0, 0]
g = [1, 2, 1, 2, 1]

value = []
for i in range(1,len(f)):
    f[i] = sum(value) 
    for i in range(1,len(g)):
        value.append(g[i])

print(f)

[0, 0, 6, 12, 18]

通过“一遍又一遍地添加相同的值”,您是在谈论 sum(value) 在每个循环中增加相同的数量吗?每次,您的第二个 for 循环都会将相同单元格的内容附加到值: [(l[1],l[2],l[3], ... l[len(l)], 'Returns'] in您的代码或 [2, 1, 2, 1] 在我的示例中。

如果这是预期的结果,或者我误解了您的代码,请尝试给我们一些示例。无需透露您的投资策略(尽管一定数量的上下文总是有帮助的),将一些随机输入放入代码 sn-p,然后将输出与您的预期一起提供给我们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多