Skills stock-price-updater
Update Excel files with latest stock market data including open, high, low, close prices, volume, and price changes. Supports multiple data sources (Yahoo Finance, AkShare) and automatically matches stocks by code or name. Use when users need to: (1) Update stock prices in Excel spreadsheets, (2) Fetch latest market data for multiple stocks, (3) Add trading data columns to existing stock lists, (4) Work with Chinese A-shares, Hong Kong stocks, or US stocks in Excel format.
git clone https://github.com/insight68/Skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/insight68/Skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/stock-price-updater" ~/.claude/skills/insight68-skills-stock-price-updater && rm -rf "$T"
skills/stock-price-updater/SKILL.mdStock Price Updater
Overview
Update Excel files with latest stock market data from multiple sources. The script automatically detects stock markets, fetches real-time prices, and writes comprehensive trading data including open/high/low/close prices, volume, and price changes.
Quick Start
Basic usage:
python3 scripts/update_stock_prices.py <excel_file>
Save to a different file:
python3 scripts/update_stock_prices.py input.xlsx -o output.xlsx
Installation
Install required dependencies:
pip install pandas openpyxl yfinance akshare
Minimum requirements:
andpandas
(required for Excel handling)openpyxl- At least one of:
oryfinance
(for fetching stock data)akshare
Excel File Requirements
The Excel file must contain a stock code column with one of these names (case-insensitive):
,股票代码
(Chinese)代码
,code
,symbol
(English)ticker
Optional stock name column:
,股票名称
(Chinese)名称
,name
(English)stock_name
The script will add or update these columns:
(Open),开盘价
(High),最高价
(Low),最低价
(Close)收盘价
(Volume)成交量
(Change),涨跌额
(Change %)涨跌幅(%)
(Update Date)更新日期
For detailed format specifications and examples, see references/excel-format.md.
Supported Stock Markets
The script automatically detects the market based on code format:
Chinese A-Shares:
- Shanghai:
,600000
,601000
(or with688000
prefix)sh - Shenzhen:
,000001
(or with300001
prefix)sz - Uses AkShare (preferred) or Yahoo Finance
Hong Kong Stocks:
- Format:
,0700.HK
or just9988.HK
,07009988 - Uses Yahoo Finance
US Stocks:
- Format:
,AAPL
,TSLAGOOGL - Uses Yahoo Finance
Other Markets:
- Supported through Yahoo Finance with appropriate suffixes
For detailed information about data sources, see references/data-sources.md.
Workflow
When a user requests to update stock prices in an Excel file:
- Verify file exists and is accessible
- Check dependencies: Ensure pandas, openpyxl, and at least one data source library (yfinance or akshare) are installed
- Run the script: Execute
python3 scripts/update_stock_prices.py <file_path> - Review output: The script reports success/failure for each stock
- Verify results: Check the updated Excel file for new data columns
Script Features
- Automatic market detection: Identifies Chinese, Hong Kong, US, and other markets by code format
- Multiple data sources: Tries AkShare for Chinese stocks, falls back to Yahoo Finance
- Flexible column matching: Finds stock code columns by multiple possible names
- Data caching: Avoids redundant API calls for duplicate stocks
- Comprehensive output: Adds 8 data columns with complete trading information
- Error handling: Reports which stocks succeeded or failed to update
Troubleshooting
"Cannot find stock code column" error:
- Ensure Excel has a column named:
,股票代码
,代码
,code
, orsymbolticker - Column names are case-insensitive
Missing data for specific stocks:
- Stock may be suspended, delisted, or code format is incorrect
- Check the code format matches the market (e.g., US stocks need ticker symbols like
, not numbers)AAPL
Import errors:
- Install missing libraries:
pip install yfinance akshare pandas openpyxl - At minimum, need pandas, openpyxl, and one data source library
Slow performance:
- Fetching many stocks takes time (each API call takes 1-3 seconds)
- Script includes caching to avoid duplicate requests
- Consider running during off-peak hours for large files
Network errors:
- AkShare requires stable connection to Chinese data sources
- Yahoo Finance may rate-limit excessive requests
- Try again after a few minutes if rate-limited
For detailed troubleshooting, see references/data-sources.md.