#python #pandas #dataframe #data-analysis #stock
#python #pandas #фрейм данных #анализ данных #запас
Вопрос:
Как определить (медвежьи) периоды во временном ряду, когда снижение цен превышает определенный порог, в течение определенного промежутка времени, а время передачи данных не является периодическим?
Например, идентифицированные (медвежьи) периоды должны снизиться в цене на 3 процента или более в течение 2 часов.
import yfinance as yf
import pandas as pd
from datetime import datetime
import random
def random_times(stime, etime, n):
frmt = '%Y-%m-%d %H:%M:%S'
stime = datetime.strptime(stime, frmt)
etime = datetime.strptime(etime, frmt)
td = etime - stime
return [random.random() * td stime for _ in range(n)]
# Getting historical, daily ohlc data from yfinance
msft = yf.Ticker("MSFT")
hist = msft.history(period="max")
# Generating random datetimes for rows in yfinance data
datetimes = random_times('2020-01-01 00:00:00','2021-01-30 00:00:00',len(hist.index))
datetimes = pd.to_datetime(datetimes)
datetimes = datetimes.sort_values()
# Dataframe with random datetimes and real MSTF close prices
df = pd.DataFrame({ 'time': datetimes,
'close': hist['Close']})
df = df.set_index('time')
df.plot(figsize=(50,30))
Комментарии:
1. Анализ данных о запасах с помощью Python может вам помочь. Там есть раздел об обнаружении медвежьих тенденций.
2. Спасибо @TrentonMcKinney! Читая статью по вашей ссылке, я нашел информацию о том, как определять медвежьи периоды только на основе скользящих средних, не принимая во внимание степень снижения цен и временные ограничения. Однако было много другой полезной информации, так что еще раз большое вам спасибо 🙂