【发布时间】:2020-12-15 10:13:25
【问题描述】:
我试图找到价格值何时超过高点,我可以找到高点,但是当我将它与当前价格进行比较时,它给了我全部 1
我的代码:
peak = df[(df[‘price’] > df[‘price’].shift(-1)) & (df[‘price’] > df[‘price’].shift(1))]
df[‘peak’] = peak
df[‘breakout’] = df[‘price’] > df[‘peak’]
print(df)
出来:
| price | peak | breakout | |
|---|---|---|---|
| 1 | 2 | NaN | 1 |
| 2 | 2 | NaN | 1 |
| 3 | 4 | NaN | 1 |
| 4 | 5 | NaN | 1 |
| 5 | 6 | 6.0 | 1 |
| 6 | 5 | NaN | 1 |
| 7 | 4 | NaN | 1 |
| 8 | 3 | NaN | 1 |
| 9 | 12 | 12.0 | 1 |
| 10 | 10 | NaN | 1 |
| 11 | 50 | NaN | 1 |
| 12 | 100 | NaN | 1 |
| 13 | 110 | 110 | 1 |
| 14 | 84 | NaN | 1 |
预期:
| price | peak | high | breakout | |
|---|---|---|---|---|
| 1 | 2 | NaN | 0 | 0 |
| 2 | 2 | NaN | 0 | 0 |
| 3 | 4 | NaN | 0 | 0 |
| 4 | 5 | NaN | 0 | 0 |
| 5 | 6 | 6.0 | 1 | 1 |
| 6 | 5 | NaN | 0 | 0 |
| 7 | 4 | NaN | 0 | 0 |
| 8 | 3 | NaN | 0 | 0 |
| 9 | 12 | 12.0 | 1 | 1 |
| 10 | 10 | NaN | 0 | 0 |
| 11 | 50 | NaN | 0 | 1 |
| 12 | 100 | NaN | 0 | 1 |
| 13 | 110 | 110 | 1 | 1 |
| 14 | 84 | NaN | 0 | 0 |
使用填充:
price peak look breakout
0 2 NaN NaN False
1 4 NaN NaN False
2 5 NaN NaN False
3 6 6.0 6.0 False
4 5 NaN 6.0 False
5 4 NaN 6.0 False
6 3 NaN 6.0 False
7 12 12.0 12.0 False ----> this should be True because it it higher than 6 and it also the high for shift(-1) and shift(1)
8 10 NaN 12.0 False
9 50 NaN 12.0 True
10 100 100.0 100.0 False
11 40 NaN 100.0 False
12 45 45.0 45.0 False
13 30 NaN 45.0 False
14 200 NaN 45.0 True
【问题讨论】: