1

我有一个日期时间索引为 1990-2015 的熊猫 df。

它具有标普 500 的 adj 收盘价、FOR(财务义务比率)、PE 比率等列。我创建了图表来查看不同比率和市场之间的关系。我现在正在尝试回测投资策略。我已经在 Quantopian 中做过一些这样的事情,但从来没有靠我自己做过,而且我还是 pandas 的新手。

我的表的前两列如下所示:

在此处输入图像描述

我弄乱了一些代码,但不知道该怎么做。想法如下:在 FOR 跌至 16.5 以下的第一个月投资 1,000,000 美元的起始投资组合。骑标准普尔,直到 FOR 达到 16.5,卖出。当它再次跌至下方时买回。我认为我需要使用 while 语句

for idx in df.index:
    if df['Financial Obligation Ratio'].loc[idx]<16.5:

       print idx, df['Adj Close'].loc[idx]

这会打印出我想要投资的所有时间段。有没有办法使用“while”和“next idx”来使这个程序成功

4

1 回答 1

0

您不需要迭代:

In [21]: df
Out[21]:
            Adj Close    FOR
date
1990-01-09     329.07  16.23
1990-01-08     329.07  16.92

In [22]: df[df['FOR'] < 16.5]
Out[22]:
            Adj Close    FOR
date
1990-01-09     329.07  16.23

In [23]:
于 2017-02-15T21:12:10.980 回答