2017-02-15 91 views
1

我有一個熊貓df,日期時間指數從1990-2015。使用熊貓進行簡單回溯測試:直到使用

它具有SP500,FOR(財務義務比率),PE比率等等的列。我創建了圖表來查看不同比率和市場之間的關係。我現在試圖回溯一個投資策略。我在Quantopian做了一些這樣的工作,但從來沒有做過我自己的工作,是熊貓的新手。

前兩個我的表列如下所示:

enter image description here

我曾與一些代碼的好惹的,但不知道該怎麼做。這個想法如下:在FOR第一個月下降到16.5以下的時候,投資1,000,000美元的起始投資組合。乘坐S & P直到FOR達到16.5,賣出。當它再次下跌時回購。我認爲我需要使用一段時間的聲明

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

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

這打印所有時間段,我希望投資$$。有沒有用「而」與「未來IDX」一起做這個節目成功的方式

+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]: 
+0

這適用於查找可以接受的日期;但是它不會幫助我們前進,直到它達到第一個中斷點時,它的時間大於16.5。相反,它會跳到下一個<16.5的時間點。 –

+0

當然,你可以看到時間連續的差距。但我仍然認爲這不是一個有效的方法來完全回溯這個想法。看起來好像我處於我之前所處的同一阻塞點。 –