Как проверить значение предыдущей строки (данные запаса OHLC)? - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь выполнить data-mine для фрейма данных запаса, где сгенерированный сигнал имеет следующий формат:

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

Как мне кодировать, чтобы проверить значение предыдущей строки и сравнить его с соответствующим значением строки (например: 1 бар назад> 10 баров назад) с сигналом, выполняемым на следующий день (или строку) после того, как логика верна?

1 Ответ

0 голосов
/ 15 марта 2019
>>> 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...