如何检查前一行的值(OHLC 股票数据)?

How do I check a previous row's value, (OHLC Stock Data)?

我正在尝试对股票数据框进行数据挖掘,其中生成的信号采用以下格式:

Signal = (stratdf['High'].shift() > (stratdf['Open'].shift()))

我如何编写代码来检查前一行的值并将其与相应行的值(例如:1 条柱前 > 10 条柱前)进行比较,并在逻辑完成后的第二天(或行)执行信号是吗?

>>> import pandas as pd
>>> df = pd.DataFrame([[4, 5, 9, 7, 10], [5, 4, 11, 8, 9]]).T
>>> df.columns = ['High', 'Open']
>>> df
   High  Open
0     4     5
1     5     4
2     9    11
3     7     8
4    10     9
>>> df['pre_high'] = df['High'].shift(1)
>>> df
   High  Open  pre_high
0     4     5       NaN
1     5     4       4.0
2     9    11       5.0
3     7     8       9.0
4    10     9       7.0

现在如果您想检查 pre_high 大于 current open 的位置,那么您可以执行以下操作:

>>> df['Signal'] = df['High'].shift(1) > df['Open']
>>> df
   High  Open  pre_high  Signal
0     4     5       NaN   False
1     5     4       4.0   False
2     9    11       5.0   False
3     7     8       9.0    True
4    10     9       7.0   False