How to download new stock data

How to download new stock data#

1import mplfinance as mpl
2import yfinance as yf
3
4from src.utils.misc import init_notebook
1init_notebook()
1data_folder = "data/raw"
1# change these to the stock you want to download
2stock_name = "AAPL"
3start = "2019-01-01"
4end = "2021-12-31"
1df = yf.download(stock_name, start, end)
2print(f"{df.shape = }")
/tmp/ipykernel_2331/1572055018.py:1: FutureWarning: YF.download() has changed argument auto_adjust default to True
  df = yf.download(stock_name, start, end)
[*********************100%***********************]  1 of 1 completed
df.shape = (756, 5)

1# plot the data to verify your needs
2mpl.plot(df, type="candle", style="yahoo")
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[6], line 2
      1 # plot the data to verify your needs
----> 2 mpl.plot(df, type="candle", style="yahoo")

File ~/work/stock-analysis/stock-analysis/.venv/lib/python3.13/site-packages/mplfinance/plotting.py:417, in plot(data, **kwargs)
    414 # translate alias types:
    415 config['type'] = _get_valid_plot_types(config['type'])
--> 417 dates,opens,highs,lows,closes,volumes = _check_and_prepare_data(data, config)
    419 config['xlim'] = _check_and_convert_xlim_configuration(data, config)
    421 if config['type'] in VALID_PMOVE_TYPES and config['addplot'] is not None:

File ~/work/stock-analysis/stock-analysis/.venv/lib/python3.13/site-packages/mplfinance/_arg_validators.py:74, in _check_and_prepare_data(data, config)
     72 for col in cols:
     73     if not all( isinstance(v,(float,int)) for v in data[col] ):
---> 74         raise ValueError('Data for column "'+str(col)+'" must be ALL float or int.')
     76 if config['tz_localize']:
     77     dates   = mdates.date2num(data.index.tz_localize(None).to_pydatetime())

ValueError: Data for column "Open" must be ALL float or int.
1df.to_csv(f"{data_folder}/{stock_name}.csv")