Обновить значение на основе текущей строки и строки, в которой выполняется условие в pandas - PullRequest
0 голосов
/ 17 июня 2020

У меня есть эта таблица: (строки 4-19 скрыты для удобства), и я хочу обновить значение, если условие выполняется, сравнивая текущее значение строки и предыдущее значение строки, где выполняется условие

    close   id  SMA20       RSI14        MACD        signal
0   9200.0  100 9196.450    69.381191    1.921696    1
1   9300.0  100 9196.450    69.381191   -1.921696   -1
2   9215.0  101 9198.400    79.360997   -1.044195   -1
3   9214.0  102 9200.300    77.546365   -0.605997   -1
20  9150.0  120 9190.675    17.256473   -4.207557   -1
21  9149.5  121 9187.400    17.094844   -4.734598   

в этом примере моя текущая строка - 21, я хочу сравнить 9149,5 с предыдущей строкой, где сигнал такой же, как и в моей предыдущей строке 20 (-1), поэтому самой ранней строкой будет строка 1 с 9300 и I хочу сравнить это с каждой строкой. если разница> 150, сигнал должен возвращать значение, противоположное значению самой ранней строки, в противном случае оно останется таким же. Это функция, которую я еще не включил, но ниже представлена ​​текущая функция для столбца сигналов, и используемый df применяется к:

if price > sma20 and macd >1 and rsi14 > 40: #buy
    return 1
elif price < sma20 or macd <1 or rsi14 < 40: #sell
    return -1
else:
    return 0

Я действительно застрял и не уверен, какую функцию использовать. Есть ли способ применить df в функции для включения строк выше? Или, если мы можем изменить функцию сигнала, чтобы было проще. Любая помощь приветствуется. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...