/
desmitry
/
market-data-analysis
Обзор
Документация
Войти
/
desmitry
/
market-data-analysis
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/data_loader.py
29 строк
1018 B
desmitry
Create project
25 ноя 2025, 09:14
25 ноя 2025, 09:14
c2a71d5
Код
Авторство
О чём код?
import yfinance as yf import pandas as pd import numpy as np def fetch_data(symbol: str = "NQ=F", period: str = "max") -> pd.DataFrame: """Fetches and preprocesses financial data.""" df = yf.Ticker(symbol).history(period=period, interval="1d") if df.empty: raise ValueError(f"No data found for symbol {symbol}") # Data cleaning from your notebook df["Previous Close"] = df["Close"].shift(1).fillna(df["Open"]) # Log returns df["Close Return"] = np.log(df["Close"] / df["Open"]) df["High Return"] = np.log(df["High"] / df["Open"]) df["Low Return"] = np.log(df["Low"] / df["Open"]) # Clean dividends/splits cols_to_drop = ["Dividends", "Stock Splits"] df.drop([c for c in cols_to_drop if c in df.columns], axis=1, inplace=True) # Filter invalid rows (High < 0 or Low > 0 logic) locator = (df["High Return"] < 0) | (df["Low Return"] > 0) df.loc[locator] = np.nan df.interpolate(method="time", inplace=True) return df.dropna()