Желаемым результатом будет новый столбец с заголовком «xOver», при этом значения в xOver определяются оператором if.
Значения xOver будут либо: 1, 2, либо NaN.
Значение будет равно 1, если: data ['Close']> data ['sma_5'] и data ['Close'] [- 1] Value будет NaN, если этот критерий не выполняется.
Значение будет равно 2, если выполняются другие критерии if и Statement (но для простоты мы можем просто игнорировать это для целей решения этой проблемы).
Это фрейм данных, который называется: данные. введите описание изображения здесь
Это код, который я пробовал до сих пор:
import pandas as pd
import mplfinance as mpf
import numpy as np
data = pd.read_excel('SPY.xlsx', index_col=0, parse_dates=True)
#Create the moving avergae
data['sma_5'] = data['Close'].rolling(33).mean()
print(data)
def xOver(data):
if data['Close'] > data['sma_5'] and data['Close'][-1] < data['sma_5']:
return 1
else:
np.nan
data['xOver'] = xOver
print(data)
, который возвращает это: введите описание изображения здесь
SPY.xlsx
введите описание изображения здесь