원클릭으로
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).