введите здесь описание изображения
Код: Выделить всё
z_score
2024-05-23 21:00:00 0.639482
2024-05-23 22:00:00 1.133366
2024-05-23 23:00:00 -0.267677
2024-05-24 00:00:00 0.681130
2024-05-24 01:00:00 2.283615
2024-05-24 02:00:00 1.916469
2024-05-24 03:00:00 2.284099
2024-05-24 04:00:00 2.283456
2024-05-24 05:00:00 2.699485
2024-05-24 06:00:00 2.393399
2024-05-24 07:00:00 1.871835
2024-05-24 08:00:00 1.824887
Я думаю, это не так уж и сложно сделать. Но мне как-то не удалось.
Код: Выделить всё
import pandas as pd
import numpy as np
df = pd.read_excel("gate.xlsx", sheet_name="Sheet3")
# Assuming your data is in a DataFrame called df
# Initialize sell and positions columns with zeros
df['sell'] = 0
df['positions'] = 0
df['short_exit'] = 0
df['sell'] = np.where((df['z_score'] > 2) & (df['positions'].shift(1) == 0), 1, 0)
df['positions'] = np.where(((df['sell'] == 1) | (df['positions'].shift(1) == 1)) & (df['short_exit'] == 0), 1, df['positions'])
df['short_exit'] = np.where((df['z_score'] < 0) & (df['positions'] == 1), 1 ,0)
# Display the resulting DataFrame
print(df)
Введите здесь описание изображения
Любая помощь или подсказка приветствуются.
Кстати, это возможно сделать это нумпи? На одном форуме мне сказали, что для этого требуется рекурсия, поэтому сделать так, как я хочу, невозможно.
Подробнее здесь: https://stackoverflow.com/questions/785 ... ependent-w