如何检查前一行的值(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
我正在尝试对股票数据框进行数据挖掘,其中生成的信号采用以下格式:
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