使用 Pandas 和 Matplotlib 开发交易策略

Developing trading strategy using Pandas and Matplotlib

我正在尝试根据以下公式确定看涨点:

Bullish  Bar  =  Today’s  Low  <  Lowest  (Low  ,  13  Days)  AND  Today’s  Close  >  (((Todays  High  –  Todays  Low)  /  2)  +  Today  Low) 

此外,我想计算给定时间段(比如 2010 年到 2017 年)内一只股票的平均 2 天 returns。例如:

( Close ( Day 2 ) - Open ( Day 1 ) )/ Open ( Day1 ) 

我正在使用 Pandas 获取数据。这是数据框的样子:

              Date   Close      High       Low    Open     Volume
Symbol                                                           
SPY     2010-01-01  111.44  112.8000  111.3900  112.77          0
SPY     2010-01-04  113.33  113.3900  111.5100  112.37  118944600
SPY     2010-01-05  113.63  113.6800  112.8500  113.26  111579900

我的 objective 是创建一个单独的列,其中在日期旁边指示看涨点,以便我可以用绿色箭头绘制它。

目前,我正在将所有内容转换为列表,并使用列表的索引来计算 returns;但是,这很乏味。

有没有办法以更简单的方式完成这项工作?

如果您的数据框名为 df,并且您希望结果位于新列中 Return,可以用下面的代码计算出return:

df['Return'] = (df.Close.shift(2) - df.Open.shift(1)) / df.Open.shift(1)

要计算看涨信号,您可以使用以下方法:

    df['bullishSignal'] = (df.Low < df.Low.shift(1).rolling(13).min()) & 
                              (df.Close > ((df.High - df.Low) / 2 + df.Low))