ワンクリックで
portfolio-update
Fetches live prices for equities and forex for investment portfolio.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Fetches live prices for equities and forex for investment portfolio.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Build today's mapped ZEP time-log plan from Google Calendar, preview it against ZEP, and enter it through guarded Playwright automation only after explicit approval.
Help users create structured decision matrices by suggesting criteria, options, and weights — output as comparison tables
Backup CLAUDE.md, TASKS.md, and memory/ to a private Git repo using `bash .claude/skills/memory-backup/backup.sh`.
Pull recent Notion Journal entries into memory/journals/YYYY/month_YYYY-MM_text.txt.
Sync work context from external sources, update tasks and memory, and report changes
Process pasted meeting notes, infer context, extract candidate tasks and memory updates, and ask for confirmation before making changes.
| name | portfolio-update |
| description | Fetches live prices for equities and forex for investment portfolio. |
| tools | ["Bash"] |
PORTFOLIO_FILE: Find the equities holdings file (search by name, then ask user):
*investment*portfolio* or *equity*portfolio*Refresh your equities holdings table in PORTFOLIO_FILE by fetching the latest Yahoo Finance prices for each ticker plus MYR/USD forex rate.
PYTHON=./.claude/skills/portfolio-update/equity-price-fetcher.py
python3 $PYTHON "XXX|YYY|ZZZ" # fetches all at once
python3 $PYTHON --forex=USDMYR=X # MYR/USD rate
If PORTFOLIO_FILE doesn't exist, create a template with your tickers:
| Symbol | Shares | Cost Price | Live Price | RM Cost Basis | Live Value (USD) | Live Value (RM)* | Unrealized |
|--------|--------|------------|------------|---------------|------------------|------------------|------------|
Fill in your tickers, shares, and cost prices. Then run the update skill to fetch live prices:
PYTHON=./.claude/skills/portfolio-update/equity-price-fetcher.py
python3 $PYTHON "XXX|YYY|ZZZ" # batch fetch all at once
python3 $PYTHON --forex=USDMYR=X # get MYR/USD rate
PYTHON=./.claude/skills/portfolio-update/equity-price-fetcher.py
python3 $PYTHON XXX --period 5d # latest price
python3 $PYTHON YYY --period 6mo # historical
python3 $PYTHON --forex=USDMYR=X # MYR/USD rate
The holdings table in PORTFOLIO_FILE must be in this table format:
| Symbol | Shares | Cost Price | Live Price | RM Cost Basis | Live Value (USD) | Live Value (RM)* | Unrealized |
|---|---|---|---|---|---|---|---|
| XXX | 10 | $50.00 | $52.30 | RM 2,615 | $523 | RM 2,040 | RM +230 |
| YYY | 5 | $200.00 | $198.50 | RM 993 | $992.5 | RM 3,871 | RM -7.5 |
| ZZZ | 20 | $15.00 | $16.10 | RM 483 | $322 | RM 1,256 | RM +22 |
| Total | RM 4,091 | $1,837.5 | RM 7,167 | RM +244.5 ✅ |
The update script reads this table, fetches live prices for each symbol via the equity-price-fetcher.py in the skill directory, and rewrites the Holdings section with current values (price, RM value, unrealized P/L).