Hi Mark,
The download error seems to be random. Each day when I update the historical prices, the error message is for a different ticker or two. Might be a throttling issue by IP address.
FYI, I stumbled upon this Python library:
https://ranaroussi.github.io/yfinance/It is very fast. Below is a sample code you can test in a Python environment (I use Google Colab). I might use it and use the Generic price import. Sharing it with you in case this can be an avenue to speed up the Retrieve Selected Historical Prices with Yahoo Historical.
Code generated with this prompt in ChatGPT:
Use the yfinance library in python. Code to extract these values in a csv format. Code will run in Google Colab.
SCHD 39.1863 1/2/2025 17005200 39.5887 39.0281 39.4881
SCHD 39.5218 1/3/2025 11448800 39.5794 39.1762 39.3922
...
(quote data is a copy paste from FundManager Export/Prices/Comma separated)
# Install required libraries (if not already installed)
!pip install yfinance pandas --quiet
# Import necessary libraries
import yfinance as yf
import pandas as pd
from google.colab import files
# Define the tickers and the date range.
tickers = ['SCHD', 'VUN.TO', 'SOBO.TO']
start_date = '2025-01-02'
# Set end_date one day after the last desired date to include 2025-02-06.
end_date = '2025-02-07'
# List to hold each ticker's data.
dataframes = []
# Loop over each ticker, download its historical data, and reformat the columns.
for ticker in tickers:
____# Download historical data for the ticker.
____df = yf.Ticker(ticker).history(start=start_date, end=end_date)
____# Reset the index so that 'Date' becomes a column.
____df.reset_index(inplace=True)
____# Add a column with the ticker symbol.
____df['Ticker'] = ticker
____# Re-order the columns to match the desired output:
____# Ticker, Open, Date, Volume, High, Low, Close.
____df = df[['Ticker', 'Open', 'Date', 'Volume', 'High', 'Low', 'Close']]
____dataframes.append(df)
# Concatenate the data from all tickers into one DataFrame.
result = pd.concat(dataframes, ignore_index=True)
# Save the resulting DataFrame to a CSV file.
csv_filename = 'historical_data.csv'
result.to_csv(csv_filename, index=False)
print(f"CSV file saved as '{csv_filename}'")
# Download the CSV file (automatic download in browser download folder).
files.download(csv_filename)