mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-14 05:14:19 +00:00
[BugFix] Fix yFinance end_date filter when not intraday. (#6302)
* fix filtering by date * timedelta as minutes --------- Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
This commit is contained in:
@@ -100,19 +100,22 @@ def yf_download(
|
||||
"""Get yFinance OHLC data for any ticker and interval available."""
|
||||
symbol = symbol.upper()
|
||||
_start_date = start_date
|
||||
|
||||
intraday = False
|
||||
if interval in ["60m", "1h"]:
|
||||
period = "2y" if period in ["5y", "10y", "max"] else period
|
||||
_start_date = None
|
||||
intraday = True
|
||||
|
||||
if interval in ["2m", "5m", "15m", "30m", "90m"]:
|
||||
_start_date = (datetime.now().date() - relativedelta(days=58)).strftime(
|
||||
"%Y-%m-%d"
|
||||
)
|
||||
intraday = True
|
||||
|
||||
if interval == "1m":
|
||||
period = "5d"
|
||||
_start_date = None
|
||||
intraday = True
|
||||
|
||||
if adjusted is False:
|
||||
kwargs = dict(auto_adjust=False, back_adjust=False)
|
||||
@@ -158,7 +161,6 @@ def yf_download(
|
||||
data = data.rename(columns={"Date": "date", "Datetime": "date"})
|
||||
data["date"] = data["date"].apply(pd.to_datetime)
|
||||
data = data[data["Open"] > 0]
|
||||
|
||||
if start_date is not None:
|
||||
data = data[data["date"] >= pd.to_datetime(start_date)]
|
||||
if (
|
||||
@@ -167,31 +169,19 @@ def yf_download(
|
||||
and pd.to_datetime(end_date) > pd.to_datetime(start_date)
|
||||
):
|
||||
data = data[
|
||||
data["date"] <= (pd.to_datetime(end_date) + relativedelta(days=1))
|
||||
data["date"]
|
||||
<= (
|
||||
pd.to_datetime(end_date)
|
||||
+ relativedelta(minutes=719 if intraday is True else 0)
|
||||
)
|
||||
]
|
||||
|
||||
if period not in [
|
||||
"max",
|
||||
"1d",
|
||||
"5d",
|
||||
"1wk",
|
||||
"1mo",
|
||||
"3mo",
|
||||
"6mo",
|
||||
"1y",
|
||||
"2y",
|
||||
"5y",
|
||||
"10y",
|
||||
]:
|
||||
if intraday is True:
|
||||
data["date"] = data["date"].dt.strftime("%Y-%m-%d %H:%M:%S")
|
||||
if interval not in ["1m", "2m", "5m", "15m", "30m", "90m", "60m", "1h"]:
|
||||
else:
|
||||
data["date"] = data["date"].dt.strftime("%Y-%m-%d")
|
||||
|
||||
if adjusted is False:
|
||||
data = data.drop(columns=["Adj Close"])
|
||||
|
||||
data.columns = data.columns.str.lower().str.replace(" ", "_").to_list()
|
||||
|
||||
return data
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user