使用Pandas进行SIMPLE Backtesting:使用直到

时间:2017-02-15 20:52:14

标签: python pandas finance back-testing

我有一只熊猫df,其日期时间指数为1990-2015。

它具有与S& P 500相邻的列,FOR(财务义务比率),PE比率等等。我创建了图表来研究不同比率和市场之间的关系。我现在正试图回溯一项投资策略。我在Quantopian做过一些这样的事情,但从来没有我自己做过熊猫的新手。

我桌子的前两列看起来像这样:

enter image description here

我已经搞砸了一些代码,但不知道该怎么做。这个想法如下:在FOR降至16.5以下的第一个月投资1,000,000美元的初始投资组合。骑着S& P直到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]

这将打印我想要投资的所有时间段。有没有办法使用&#34;而#34;以及&#34;下一个idx&#34;使该计划成功

1 个答案:

答案 0 :(得分: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]: