Я не очень хорошо справляюсь с операциями csv, так как ненавижу ошибки индекса или длины массива. Поэтому, пожалуйста, помогите мне с данной проблемой ниже. Возьмите любой набор данных фондового рынка, который состоит из открытого закрытия и следующего закрытия.
Я пробовал некоторые другие методы, такие как лямбда-функции, но не работал
Dfa = pd.read_csv('ACC.csv',header=0, index_col='Date', parse_dates=True)
short_window = 5
long_window = 21
signals = pd.DataFrame()
signals['signal'] = 0.0
signals['short_ema']
=Dfa['Close'].ewm(span=short_window,adjust=False).mean()
signals['long_ema'] = Dfa['Close'].ewm(span=long_window,
adjust=False).mean()
signals['signal'][short_window:] = np.where(signals['short_ema']
[short_window:]> signals['long_ema'][short_window:], 1.0, 0.0)
signals['positions'] = signals['signal'].diff()
Dfa['positions'] = []
if signals['positions'] is not None:
Dfa['positions'] = Dfa['Close']
else:
Dfa['positions'] = None
print(signals)
print(Dfa.head())
Мне нужен новый столбец в основном наборе данных, который уже есть, но только если сигнал положительный или отрицательный, тогда значения закрытия должны быть равны их 0. Если новый столбец создается по формуле (close [i] - close [+ 1]) / закрыть [я]
и индекс должен быть датами. Итерация не должна выполняться с 0 значениями.