Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Displaying price and volume with a plotly chart is bugged in version yfinance==0.2.48 #2119

Open
MaximilianFreitag opened this issue Nov 9, 2024 · 2 comments

Comments

@MaximilianFreitag
Copy link

MaximilianFreitag commented Nov 9, 2024

Describe bug

yfinance version ... yfinance==0.2.48
environment google colab

If you want to display the price and volume over time of a certain stock ticker the code does not reproduces the same results as in previous yfinance version. See code example

Simple code that reproduces your problem

#code simply displays the price and volume of Tesla
#after you've run the code restart the kernel and change the yfinance version to !pip install yfinance==0.2.47 to see that #this fixes the problem

!pip install yfinance==0.2.48
import yfinance as yf
import plotly.graph_objects as go
from datetime import datetime, timedelta

start_date = '2023-01-01'
end_date = datetime.now().strftime('%Y-%m-%d')

data = yf.download("TSLA", start=start_date, end=end_date)

fig = go.Figure()
fig.add_trace(go.Scatter(x=data.index, y=data['Close'], name='Price'))
fig.add_trace(go.Bar(x=data.index, y=data['Volume'], name='Volume', yaxis='y2'))

fig.update_layout(
title='TSLA Price and Volume',
yaxis_title='Price',
yaxis2=dict(title='Volume', overlaying='y', side='right'),
xaxis=dict(
rangeselector=dict(
buttons=list([
dict(count=1, label="1m", step="month", stepmode="backward"),
dict(count=3, label="3m", step="month", stepmode="backward"),
dict(count=6, label="6m", step="month", stepmode="backward"),
dict(count=1, label="YTD", step="year", stepmode="todate"),
dict(count=1, label="1y", step="year", stepmode="backward"),
dict(step="all")
])
),
rangeslider=dict(visible=True),
type="date"
)
)
fig.show()

print(yf.version)

Debug log

DEBUG Entering download()
DEBUG:yfinance:Entering download()
DEBUG Disabling multithreading because DEBUG logging enabled
DEBUG:yfinance: Disabling multithreading because DEBUG logging enabled
DEBUG Entering history()
DEBUG:yfinance: Entering history()
DEBUG Entering _fetch_ticker_tz()
DEBUG:yfinance: Entering _fetch_ticker_tz()
DEBUG Entering get()
DEBUG:yfinance: Entering get()
DEBUG Entering _make_request()
DEBUG:yfinance: Entering _make_request()
DEBUG url=https://query2.finance.yahoo.com/v8/finance/chart/TSLA
DEBUG:yfinance: url=https://query2.finance.yahoo.com/v8/finance/chart/TSLA
DEBUG params=frozendict.frozendict({'range': '1d', 'interval': '1d'})
DEBUG:yfinance: params=frozendict.frozendict({'range': '1d', 'interval': '1d'})
DEBUG Entering _get_cookie_and_crumb()
DEBUG:yfinance: Entering _get_cookie_and_crumb()
DEBUG cookie_mode = 'basic'
DEBUG:yfinance: cookie_mode = 'basic'
DEBUG Entering _get_cookie_and_crumb_basic()
DEBUG:yfinance: Entering _get_cookie_and_crumb_basic()
DEBUG fetched basic cookie = <Cookie A3=d=AQABBKA0L2cCEE1e05jvPT8ruI6YyALs_jYFEgEBAQGGMGc5Z9xT0iMA_eMAAA&S=AQAAAvny0wTW1KSO2Do0qcUIK6M for .yahoo.com/>
DEBUG:yfinance: fetched basic cookie = <Cookie A3=d=AQABBKA0L2cCEE1e05jvPT8ruI6YyALs_jYFEgEBAQGGMGc5Z9xT0iMA_eMAAA&S=AQAAAvny0wTW1KSO2Do0qcUIK6M for .yahoo.com/>
DEBUG reusing cookie
DEBUG:yfinance: reusing cookie
DEBUG crumb = 'UGDMfqi49g4'
DEBUG:yfinance: crumb = 'UGDMfqi49g4'
DEBUG Exiting _get_cookie_and_crumb_basic()
DEBUG:yfinance: Exiting _get_cookie_and_crumb_basic()
DEBUG Exiting _get_cookie_and_crumb()
DEBUG:yfinance: Exiting _get_cookie_and_crumb()
DEBUG response code=200
DEBUG:yfinance: response code=200
DEBUG Exiting _make_request()
DEBUG:yfinance: Exiting _make_request()
DEBUG Exiting get()
DEBUG:yfinance: Exiting get()
DEBUG Exiting _fetch_ticker_tz()
DEBUG:yfinance: Exiting _fetch_ticker_tz()
DEBUG Entering history()
DEBUG:yfinance: Entering history()
DEBUG TSLA: Yahoo GET parameters: {'period1': '2023-01-01 00:00:00-05:00', 'period2': '2024-11-09 00:00:00-05:00', 'interval': '1d', 'includePrePost': False, 'events': 'div,splits,capitalGains'}
DEBUG:yfinance: TSLA: Yahoo GET parameters: {'period1': '2023-01-01 00:00:00-05:00', 'period2': '2024-11-09 00:00:00-05:00', 'interval': '1d', 'includePrePost': False, 'events': 'div,splits,capitalGains'}
DEBUG Entering get()
DEBUG:yfinance: Entering get()
DEBUG Entering _make_request()
DEBUG:yfinance: Entering _make_request()
DEBUG url=https://query2.finance.yahoo.com/v8/finance/chart/TSLA
DEBUG:yfinance: url=https://query2.finance.yahoo.com/v8/finance/chart/TSLA
DEBUG params=frozendict.frozendict({'period1': 1672549200, 'period2': 1731128400, 'interval': '1d', 'includePrePost': False, 'events': 'div,splits,capitalGains'})
DEBUG:yfinance: params=frozendict.frozendict({'period1': 1672549200, 'period2': 1731128400, 'interval': '1d', 'includePrePost': False, 'events': 'div,splits,capitalGains'})
DEBUG Entering _get_cookie_and_crumb()
DEBUG:yfinance: Entering _get_cookie_and_crumb()
DEBUG cookie_mode = 'basic'
DEBUG:yfinance: cookie_mode = 'basic'
DEBUG Entering _get_cookie_and_crumb_basic()
DEBUG:yfinance: Entering _get_cookie_and_crumb_basic()
DEBUG reusing cookie
DEBUG:yfinance: reusing cookie
DEBUG reusing crumb
DEBUG:yfinance: reusing crumb
DEBUG Exiting _get_cookie_and_crumb_basic()
DEBUG:yfinance: Exiting _get_cookie_and_crumb_basic()
DEBUG Exiting _get_cookie_and_crumb()
DEBUG:yfinance: Exiting _get_cookie_and_crumb()
DEBUG response code=200
DEBUG:yfinance: response code=200
DEBUG Exiting _make_request()
DEBUG:yfinance: Exiting _make_request()
DEBUG Exiting get()
DEBUG:yfinance: Exiting get()
DEBUG TSLA: yfinance received OHLC data: 2023-01-03 14:30:00 -> 2024-11-08 14:30:00
DEBUG:yfinance: TSLA: yfinance received OHLC data: 2023-01-03 14:30:00 -> 2024-11-08 14:30:00
DEBUG TSLA: OHLC after cleaning: 2023-01-03 09:30:00-05:00 -> 2024-11-08 09:30:00-05:00
DEBUG:yfinance: TSLA: OHLC after cleaning: 2023-01-03 09:30:00-05:00 -> 2024-11-08 09:30:00-05:00
DEBUG TSLA: OHLC after combining events: 2023-01-03 00:00:00-05:00 -> 2024-11-08 00:00:00-05:00
DEBUG:yfinance: TSLA: OHLC after combining events: 2023-01-03 00:00:00-05:00 -> 2024-11-08 00:00:00-05:00
DEBUG TSLA: yfinance returning OHLC: 2023-01-03 00:00:00-05:00 -> 2024-11-08 00:00:00-05:00
DEBUG:yfinance: TSLA: yfinance returning OHLC: 2023-01-03 00:00:00-05:00 -> 2024-11-08 00:00:00-05:00
DEBUG Exiting history()
DEBUG:yfinance: Exiting history()
DEBUG Exiting history()
DEBUG:yfinance: Exiting history()
DEBUG Exiting download()
DEBUG:yfinance:Exiting download()

Bad data proof

#!pip install yfinance==0.2.48

Bildschirmfoto 2024-11-09 um 11 09 37

#!pip install yfinance==0.2.47

Bildschirmfoto 2024-11-09 um 11 12 46

yfinance version

0.2.48

Python version

newest

Operating system

macOS

@ValueRaider
Copy link
Collaborator

Probably duplicate of #2101 (comment)

@ValueRaider
Copy link
Collaborator

Is this fixed now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants