Я исследую влияние настроений в новостных статьях, связанных с финансовым инструментом, и его потенциальное влияние на цену его инструментов. Я попытался получить временную метку каждого новостного элемента, урезать ее до минутных данных (т.е. удалить вторые и микросекундные компоненты) и получить базовую долю инструмента в это время, а также через несколько itervals после этого времени, в нашем случае t + 2. Тем не менее, программа создала twoM в файл, но не возвращает рассчитанные изменения цены
Ранее я использовал Reuters Eikon и его функции для проведения исследования, описанного в статье ниже.
https://developers.refinitiv.com/article/introduction-news-sentiment-analysis-eikon-data-apis-python-example
Однако вместо использования данных, доступных в Eikon, я хотел бы использовать свой собственный файл новостей csv с моими собственными данными о ценах из другого файла csv. Я пытаюсь соответствовать
excel_file = 'C:\\Users\\Artur\\PycharmProjects\\JRA\\sentimenteikonexcel.xlsx'
df = pd.read_excel(excel_file)
sentiment = df.Sentiment
print(sentiment)
start = df['GMT'].min().replace(hour=0,minute=0,second=0,microsecond=0).strftime('%Y/%m/%d')
end = df['GMT'].max().replace(hour=0,minute=0,second=0,microsecond=0).strftime('%Y/%m/%d')
spot_data = 'C:\\Users\\Artur\\Desktop\\stocksss.csv'
spot_price_10 = pd.read_csv(spot_data)
print(spot_price_10)
df['twoM'] = np.nan
for idx, newsDate in enumerate(df['GMT'].values):
sTime = df['GMT'][idx]
sTime = sTime.replace(second=0, microsecond=0)
try:
t0 = spot_price_10.iloc[spot_price_10.index.get_loc(sTime),2]
df['twoM'][idx] = ((spot_price_10.iloc[spot_price_10.index.get_loc((sTime + datetime.timedelta(minutes=10))),3]/(t0)-1)*100)
except:
pass
print(df)
Однако программа не может вернуть два значения изменения цены