stock-portfolio
npx skills add https://github.com/okikusan-public/stock_skills --skill stock-portfolio
Agent 安装分布
Skill 文档
ãã¼ããã©ãªãªç®¡çã¹ãã«
$ARGUMENTS ãè§£æãã¦ã³ãã³ããå¤å®ãã以ä¸ã®ã³ãã³ããå®è¡ãã¦ãã ããã
å®è¡ã³ãã³ã
python3 /Users/kikuchihiroyuki/stock-skills/.claude/skills/stock-portfolio/scripts/run_portfolio.py <command> [args]
ã³ãã³ãä¸è¦§
snapshot — PFã¹ãããã·ã§ãã
ç¾å¨ä¾¡æ ¼ã»æçã»é貨æç®ãå«ããã¼ããã©ãªãªã®ã¹ãããã·ã§ãããçæããã
python3 .../run_portfolio.py snapshot
buy — è³¼å ¥è¨é²è¿½å
python3 .../run_portfolio.py buy --symbol <sym> --shares <n> --price <p> [--currency JPY] [--date YYYY-MM-DD] [--memo ããã¹ã] [--yes]
--yes (-y) ãçç¥ããã¨è³¼å
¥å
容ã®ç¢ºèªãã¬ãã¥ã¼ã表示ãã¦çµäºããã--yes ãæå®ããã¨ç¢ºèªãã¹ããããã¦ç´æ¥è¨é²ããï¼KIK-444ï¼ã
sell — 売å´è¨é²
python3 .../run_portfolio.py sell --symbol <sym> --shares <n> [--price <売å´å価>] [--date YYYY-MM-DD] [--yes]
--yes (-y) ãçç¥ããã¨å£²å´å
容ã®ç¢ºèªãã¬ãã¥ã¼ï¼åå¾åä¾¡ã»æ¨å®å®ç¾æçï¼ã表示ãã¦çµäºããã--yes ãæå®ããã¨ç¢ºèªãã¹ããããã¦ç´æ¥è¨é²ããï¼KIK-444ï¼ã
--price ãæå®ããã¨å®ç¾æçã»æççã»ç¨å¼å¾æ¦ç®ãè¨ç®ãã¦è¡¨ç¤ºããdata/history/trade/*.json ã«ä¿åããï¼KIK-441ï¼ã
review — 売買ããã©ã¼ãã³ã¹ã¬ãã¥ã¼ (KIK-441)
éå»ã®å£²å´è¨é²ï¼--price ä»ãã§è¨é²ãããã®ï¼ããæççµ±è¨ãéè¨ãã¦è¡¨ç¤ºããã
python3 .../run_portfolio.py review [--year 2026] [--symbol NVDA]
åºåå 容:
- åå¼å±¥æ´ãã¼ãã«ï¼éæã»å£²å´æ¥ã»æ ªæ°ã»åå¾å価ã»å£²å´å価ã»ä¿ææ¥æ°ã»å®ç¾æçã»æççï¼
- çµ±è¨ï¼åå¼ä»¶æ°ã»åçã»å¹³åãªã¿ã¼ã³ã»å¹³åä¿ææéã»åè¨å®ç¾æçï¼
analyze — æ§é åæ
å°å/ã»ã¯ã¿ã¼/é貨/è¦æ¨¡ã®HHIï¼ãã¼ãã£ã³ãã¼ã«ææ°ï¼ãç®åºãããã¼ããã©ãªãªã®åããåæãããè¦æ¨¡å¥æ§æï¼å¤§å/ä¸å/å°å/ETF/䏿ï¼ãã¼ãã«ãå«ã4軸åæï¼KIK-438, KIK-469 P2: ETFåé¡ï¼ãETFã¯ã»ã¯ã¿ã¼ãETFããè¦æ¨¡ãETFãã¨ãã¦ç¬ç«åé¡ãããã
python3 .../run_portfolio.py analyze
health — ãã«ã¹ãã§ãã¯
ä¿æéæã®æè³ä»®èª¬ãã¾ã æå¹ãããã§ãã¯ããããã¯ãã«ã«ï¼SMA50/200, RSI, ã´ã¼ã«ãã³ã¯ãã¹/ãããã¯ãã¹æ¤åºï¼ã¨ãã¡ã³ãã¡ã³ã¿ã«ï¼å¤åã¹ã³ã¢ãæ ªä¸»éå å®å®åº¦ï¼ã®å¤è»¸ã§3段éã¢ã©ã¼ããåºåãå°åæ ªã¯èªåçã«æåº¦ãå¼ãä¸ãï¼KIK-438ï¼ã
python3 .../run_portfolio.py health
ãã¯ãã«ã«åæï¼KIK-356/374/438ï¼:
- SMA50/200 ã®ãã¬ã³ãå¤å®ï¼ä¸æ/横ã°ã/ä¸éï¼
- ã´ã¼ã«ãã³ã¯ãã¹/ãããã¯ãã¹æ¤åº: 60æ¥ lookback ã§ã¯ãã¹ã¤ãã³ããæ¤åºããçºçæ¥ã¨çµéæ¥æ°ã表示
- å°åæ ªã¯ãã¹ã«ãã¯ããã¯ç縮ï¼KIK-438ï¼: å°åæ ªã¯ lookback=30æ¥ã§ç´è¿ã®å¤åãæ©ææ¤åº
æ ªä¸»éå å®å®åº¦ï¼KIK-403ï¼:
- é å½+èªç¤¾æ ªè²·ãã®ç·éå çããå®å®åº¦ãè©ä¾¡ï¼â å®å®é«éå /ðå¢å å¾å/â ï¸ä¸æçé«éå /ðæ¸å°å¾åï¼
- 䏿çé«éå ï¼temporaryï¼â æ©æè¦åã«ææ ¼
- æ¸å°å¾åï¼decreasingï¼â ã¢ã©ã¼ã詳細ã«çç±è¿½å
- 鷿驿§å¤å®ã«ç·éå çï¼é å½+èªç¤¾æ ªè²·ãï¼ã使ç¨
å°åæ ªã¢ãã±ã¼ã·ã§ã³ï¼KIK-438ï¼:
- éæãã¨ã«æä¾¡ç·é¡ããè¦æ¨¡åé¡ï¼å¤§å/ä¸å/å°å/䏿ï¼ã
[å°å]ããã¸ã表示 - å°åæ ªã¯ EARLY_WARNING â CAUTION ã«èªåã¨ã¹ã«ã¬ã¼ã·ã§ã³
- PFå ¨ä½ã®å°åæ ªæ¯çãç®åºãã>25% ã§è¦åã>35% ã§å±éºã表示
ETFãã«ã¹ãã§ãã¯ï¼KIK-469 Phase 2ï¼:
- å奿 ªã¨ETFã®ãã¼ãã«ãåé¢è¡¨ç¤º
- ETFãã¼ãã«: éæ/æç/ãã¬ã³ã/çµè²»ç/AUM/ETFã¹ã³ã¢/ã¢ã©ã¼ã
- å奿 ªãã¼ãã«: 徿¥éãï¼å¤åã®è³ª/鷿驿§/éå å®å®åº¦ï¼
ã¢ã©ã¼ãã¬ãã«:
- æ©æè¦å: SMA50å²ã / RSIæ¥ä½ä¸ / å¤åã¹ã³ã¢1ææ¨æªå / 䏿çé«éå
- 注æ: SMA50ãSMA200ã«æ¥è¿ + ææ¨æªå / å¤åã¹ã³ã¢è¤æ°æªå / å°åæ ªã®EARLY_WARNINGææ ¼
- æ¤é: ãããã¯ãã¹æ¤åº / ãã¬ã³ãå´©å£ + å¤åã¹ã³ã¢æªå
adjust — ãã¼ããã©ãªãªèª¿æ´ã¢ããã¤ã¶ã¼ (KIK-496)
ãã«ã¹ãã§ãã¯çµæ + ãã¼ã±ããã¬ã¸ã¼ã å¤å®ããã17ã«ã¼ã«ï¼P1-P10: ãã¸ã·ã§ã³å¥ãF1-F7: PFå ¨ä½ï¼ã§å ·ä½çãªèª¿æ´ã¢ã¯ã·ã§ã³ï¼SELL/SWAP/ADD/TRIM_CLASS/FLAGï¼ãçæããã
python3 .../run_portfolio.py adjust [--full]
CLIãªãã·ã§ã³:
--full: ãã«åæã¢ã¼ãï¼éä¸åº¦ã»ç¸é¢åæãå«ããAPIè² è·ãé«ãï¼
åºå:
- ãã¼ã±ããã¬ã¸ã¼ã ï¼bull/bear/crash/neutralï¼â SMA50/200ãRSIãããã¼ãã¦ã³ããå¤å®
- HIGH/MEDIUM/LOW åªå 度å¥ã®ã¢ã¯ã·ã§ã³ãã¼ãã«ï¼ã¢ã¯ã·ã§ã³ç¨®å¥/対象/çç±/ã«ã¼ã«IDï¼
- ãµããªã¼ï¼ã¢ã¯ã·ã§ã³ä»¶æ°ï¼
ã¬ã¸ã¼ã è£æ£: crash æã¯ urgency ã1段éå¼ãä¸ããbear æã¯å°åæ ªã»ä¸éãã¬ã³ãç³»ã«ã¼ã«ãå¼ãä¸ãã
rebalance — ãªãã©ã³ã¹ææ¡
ç¾å¨ã®ãã¼ããã©ãªãªæ§é ãåæããéä¸ãªã¹ã¯ã®ä½æ¸ã¨ç®æ¨é åã¸ã®èª¿æ´æ¡ãæç¤ºããã
python3 .../run_portfolio.py rebalance [options]
CLIãªãã·ã§ã³:
--strategy defensive|balanced|aggressive(ããã©ã«ã: balanced)--reduce-sector SECTOR(ä¾: Technology)--reduce-currency CURRENCY(ä¾: USD)--max-single-ratio RATIO(ä¾: 0.15)--max-sector-hhi HHI(ä¾: 0.25)--max-region-hhi HHI(ä¾: 0.30)--additional-cash AMOUNT(å, ä¾: 1000000)--min-dividend-yield YIELD(ä¾: 0.03)
forecast — æ¨å®å©åã
ä¿æéæãã¨ã«ã¢ããªã¹ãç®æ¨ä¾¡æ ¼ or éå»ãªã¿ã¼ã³åå¸ãã12ã¶æã®æå¾ ãªã¿ã¼ã³ã3ã·ããªãªï¼æ¥½è¦³/ãã¼ã¹/æ²è¦³ï¼ã§æ¨å®ãããããªã¥ã¼ãã©ããè¦åã»TOP/BOTTOM ã©ã³ãã³ã°ä»ãã
python3 .../run_portfolio.py forecast
æ¨å®ææ³:
- ã¢ããªã¹ãæ³: ã¢ããªã¹ãç®æ¨æ ªä¾¡ + é å½å©åã + èªç¤¾æ ªè²·ãå©åãï¼æ ªä¸»éå è¾¼ã¿ï¼
- éå»ãªã¿ã¼ã³æ³: ETFçã¢ããªã¹ãã«ãã¬ãã¸ãªãéæã¯éå»CAGR + æ¨æºåå·®ã§æ¨å®ï¼KIK-469 P2: ETFã¯å¹´çãã©ãã£ãªãã£è¡¨ç¤º +
[ETF]ããã¸ä»ãï¼ - æ¥çã«ã¿ãªã¹ã調æ´ï¼KIK-433, Neo4j æ¥ç¶æï¼: åã»ã¯ã¿ã¼ã®ç´è¿
growth_driverã«ã¿ãªã¹ãæ° Ã 1.7% ãæ¥½è¦³ã·ããªãªã«å ç®ãriskã«ã¿ãªã¹ãæ° Ã 1.7% ãæ²è¦³ã·ããªãªããæ¸ç®ï¼ä¸éå 10%ï¼
åºåæ§æï¼KIK-390ï¼:
- ãã¼ããã©ãªãªå ¨ä½ã®3ã·ããªãªå©åãã»æçé¡ãã¼ãã«
- 注æéæã»ã¯ã·ã§ã³ï¼ããªã¥ã¼ãã©ããè¦åã®ããéæãéç´ï¼
- æå¾ ãªã¿ã¼ã³ TOP 3 / BOTTOM 3 ã©ã³ãã³ã°
- éæå¥è©³ç´°ï¼ã¢ããªã¹ãç®æ¨/Forward PER/ãã¥ã¼ã¹ä»¶æ°/Xã»ã³ãã¡ã³ã/3ã·ããªãªï¼
what-if — What-Ifã·ãã¥ã¬ã¼ã·ã§ã³ (KIK-376 / KIK-451)
éæã®è¿½å ã»å£²å´ã»ã¹ã¯ãããã·ãã¥ã¬ã¼ã·ã§ã³ãããã¼ããã©ãªãªã¸ã®å½±é¿ãBefore/Afteræ¯è¼ã§è¡¨ç¤ºããã
# 追å ã®ã¿ï¼å¾æ¥ï¼
python3 .../run_portfolio.py what-if --add "SYMBOL:SHARES:PRICE[,...]"
# ã¹ã¯ããï¼å£²å´ãã¦è³¼å
¥ï¼(KIK-451)
python3 .../run_portfolio.py what-if --remove "SYMBOL:SHARES[,...]" --add "SYMBOL:SHARES:PRICE[,...]"
# 売å´ã®ã¿ã·ãã¥ã¬ã¼ã·ã§ã³ (KIK-451)
python3 .../run_portfolio.py what-if --remove "SYMBOL:SHARES[,...]"
CLIãªãã·ã§ã³:
--add: 追å éæãªã¹ãï¼ä»»æï¼ãå½¢å¼:SYMBOL:SHARES:PRICEãã«ã³ãåºåã--remove: 売å´éæãªã¹ãï¼ä»»æï¼ãå½¢å¼:SYMBOL:SHARESãã«ã³ãåºåãï¼ä¾¡æ ¼ä¸è¦ã»æä¾¡ã§è©¦ç®ï¼--addã¨--removeã®ã©ã¡ãã䏿¹ã¯å¿ é
åºå:
- [売崿] 売å´åè£ã®ã³ã³ããã¹ãï¼KIK-470ï¼:
--removeæå®æãã·ãã¥ã¬ã¼ã·ã§ã³åã«ã¹ã¯ãªã¼ãã³ã°åºç¾åæ°ã»æè³ã¡ã¢ã»ãªãµã¼ãå±¥æ´ãèªå表示ï¼Neo4jæ¥ç¶æï¼ - Before/After ã®ã»ã¯ã¿ã¼HHIã»å°åHHIã»é貨HHIæ¯è¼
- 追å éæã®åºæ¬æ å ±ï¼PER/PBR/é å½å©åã/ROEï¼
- [ã¹ã¯ããæ] 売å´éæãã¼ãã«ï¼éæã»æ ªæ°ã»å£²å´ä»£é試ç®ï¼
- [ã¹ã¯ããæ] è³é忝ï¼è³¼å ¥å¿ è¦è³é / 売å´ä»£éè©¦ç® / å·®é¡ï¼
- [ã¹ã¯ããæ] 売å´éæãã«ã¹ãã§ãã¯ï¼å£²å´å¯¾è±¡ã®ã¢ã©ã¼ãç¶æ³ï¼
- å¤å®ã©ãã«: æ¨å¥¨ / 注æãã¦æ¤è¨ / 鿍奍ï¼ã¹ã¯ããæã¯ããã®ã¹ã¯ããã¯æ¨å¥¨ãçï¼
- ETFå質è©ä¾¡ï¼KIK-469 P2ï¼: ETFè¿½å æã«ETFã¹ã³ã¢ãå¤å®ã«åæ ï¼å質è¯å¥½â¥75ãå質ä½<40ã§è¦åï¼
backtest — ããã¯ãã¹ã
èç©ãããã¹ã¯ãªã¼ãã³ã°çµæãããªã¿ã¼ã³ãæ¤è¨¼ãããã³ããã¼ã¯ï¼æ¥çµ225/S&P500ï¼ã¨æ¯è¼ããã
python3 .../run_portfolio.py backtest [options]
CLIãªãã·ã§ã³:
--preset PRESET: æ¤è¨¼å¯¾è±¡ã®ã¹ã¯ãªã¼ãã³ã°ããªã»ããï¼ä¾: alpha, valueï¼--region REGION: æ¤è¨¼å¯¾è±¡ã®å°åï¼ä¾: jp, usï¼--days N: åå¾å¾Næ¥éã®ãªã¿ã¼ã³ãæ¤è¨¼ï¼ããã©ã«ã: 90ï¼
åºå:
- ã¹ã¯ãªã¼ãã³ã°æ¥å¥ã®å¹³åãªã¿ã¼ã³
- ãã³ããã¼ã¯æ¯è¼ï¼è¶ éãªã¿ã¼ã³ï¼
- åçã»å¹³åãªã¿ã¼ã³ã»æå¤§ãªã¿ã¼ã³/æå¤§æå¤±
simulate — è¤å©ã·ãã¥ã¬ã¼ã·ã§ã³
ç¾å¨ã®ãã¼ããã©ãªãªãåºã«ãè¤å©è¨ç®ã§å°æ¥ã®è³ç£æ¨ç§»ãã·ãã¥ã¬ã¼ã·ã§ã³ãããforecast ã®æå¾ ãªã¿ã¼ã³ + é å½åæè³ + æ¯æç©ç«ãè¤å©ã§è¨ç®ããæ¥½è¦³/ãã¼ã¹/æ²è¦³ã®3ã·ããªãªã§è¡¨ç¤ºã
python3 .../run_portfolio.py simulate [options]
CLIãªãã·ã§ã³:
--years N(ã·ãã¥ã¬ã¼ã·ã§ã³å¹´æ°, ããã©ã«ã: 10)--monthly-add AMOUNT(æé¡ç©ç«é¡, å, ããã©ã«ã: 0)--target AMOUNT(ç®æ¨é¡, å, ä¾: 15000000)--reinvest-dividends(é å½åæè³ãã, ããã©ã«ã: ON)--no-reinvest-dividends(é å½åæè³ããªã)
list — ä¿æéæä¸è¦§
portfolio.csv ã®å 容ããã®ã¾ã¾è¡¨ç¤ºããã
python3 .../run_portfolio.py list
èªç¶è¨èªã«ã¼ãã£ã³ã°
èªç¶è¨èªâã¹ãã«å¤å®ã¯ .claude/rules/intent-routing.md ãåç §ã
å¶ç´äºé
- æ¥æ¬æ ª: 100æ ªåä½ï¼åå æ ªï¼
- ASEANæ ª: 100æ ªåä½ï¼æä½ææ°æ 3,300åï¼
- 楽天証å¸å¯¾å¿ï¼ææ°æä½ç³»ï¼
- portfolio.csv ã®ãã¹:
.claude/skills/stock-portfolio/data/portfolio.csv
åºå
çµæã¯Markdownå½¢å¼ã§è¡¨ç¤ºãã¦ãã ããã
snapshot ã®åºåé ç®
- éæ / åç§° / ä¿ææ° / åå¾å価 / ç¾å¨ä¾¡æ ¼ / è©ä¾¡é¡ / æç / æçç / é貨
analyze ã®åºåé ç®
- ã»ã¯ã¿ã¼HHI / å°åHHI / é貨HHI / è¦æ¨¡HHIï¼KIK-438ï¼
- åè»¸ã®æ§ææ¯çï¼è¦æ¨¡å¥æ§æãã¼ãã«: 大å/ä¸å/å°å/ETF/䏿ï¼
- ETF注éï¼ã«ãã¯ã¹ã«ã¼æªå¯¾å¿ã®æ³¨è¨ï¼
- ãªã¹ã¯ã¬ãã«å¤å®
health ã®åºåé ç®
- å奿 ªãã¼ãã«: éæï¼å°åæ ªã¯
[å°å]ããã¸ä»ãï¼ / æçç / ãã¬ã³ã / ã¯ãã¹ã¤ãã³ã / å¤åã®è³ª / ã¢ã©ã¼ã / 鷿驿§ / éå å®å®åº¦ - ETFãã¼ãã«ï¼KIK-469 P2ï¼: éæ / æç / ãã¬ã³ã / çµè²»ç / AUM / ETFã¹ã³ã¢ / ã¢ã©ã¼ã
- ã¢ã©ã¼ããããéæã®è©³ç´°ï¼çç±ãSMA/RSIå¤ãã¯ãã¹çºçæ¥ã»çµéæ¥æ°ãå¤åã¹ã³ã¢ãæ ªä¸»éå å®å®åº¦ãæ¨å¥¨ã¢ã¯ã·ã§ã³ï¼
- å°åæ ªã¢ãã±ã¼ã·ã§ã³: PFå ¨ä½ã®å°åæ ªæ¯çãµããªã¼ï¼â æ£å¸¸/â ï¸è¦å/ð´å±éºï¼
forecast ã®åºåé ç®
- ãã¼ããã©ãªãªå ¨ä½: 3ã·ããªãªå©åãï¼æ¥½è¦³/ãã¼ã¹/æ²è¦³ï¼+ æçé¡ + ç·è©ä¾¡é¡
- 注æéæã»ã¯ã·ã§ã³: ããªã¥ã¼ãã©ããè¦åã®ããéæä¸è¦§
- TOP 3 / BOTTOM 3: æå¾ ãªã¿ã¼ã³ã©ã³ãã³ã°ï¼ã¢ããªã¹ãæ°ä»ãï¼
- éæå¥: ã¢ããªã¹ãç®æ¨ä¾¡æ ¼ / Forward PER / ãã¥ã¼ã¹ä»¶æ° / Xã»ã³ãã¡ã³ã / 3ã·ããªãª / ETFã¯å¹´çãã©ãã£ãªã㣠+
[ETF]ããã¸
what-if ã®åºåé ç®
- [売崿] 売å´åè£ã®ã³ã³ããã¹ãï¼KIK-470ï¼: ã¹ã¯ãªã¼ãã³ã°åºç¾åæ°ã»æè³ã¡ã¢ã»ãªãµã¼ãå±¥æ´
- Before/After ã®HHIæ¯è¼ï¼ã»ã¯ã¿ã¼/å°å/é貨ï¼
- 追å éæã®ãã¡ã³ãã¡ã³ã¿ã«ãº
- éä¸åº¦å¤åã®å¤å®
- [ã¹ã¯ããæ] 売å´éæãã¼ãã«ï¼å£²å´ä»£é試ç®ï¼
- [ã¹ã¯ããæ] è³é忝ï¼è³¼å ¥å¿ è¦è³é / 売å´ä»£é / å·®é¡ï¼
- [ã¹ã¯ããæ] 売å´éæãã«ã¹ãã§ãã¯
- [ã¹ã¯ããæ] ããã®ã¹ã¯ããã¯æ¨å¥¨ / 注æãã¦æ¤è¨ / 鿍奍ã
backtest ã®åºåé ç®
- ã¹ã¯ãªã¼ãã³ã°æ¥å¥ãªã¿ã¼ã³
- ãã³ããã¼ã¯æ¯è¼ï¼è¶ éãªã¿ã¼ã³ï¼
- åçã»çµ±è¨å¤
adjust ã®åºåé ç®
- ãã¼ã±ããã¬ã¸ã¼ã ï¼ã¬ã¸ã¼ã å/SMA50 vs SMA200/RSI/ããã¼ãã¦ã³ï¼
- HIGH Priority ãã¼ãã«: SELL/SWAP/TRIM_CLASS ã¢ã¯ã·ã§ã³
- MEDIUM Priority ãã¼ãã«: FLAG/SELL ã¢ã¯ã·ã§ã³
- LOW Priority ãã¼ãã«: FLAG ã¢ã¯ã·ã§ã³
- ãµããªã¼ï¼HIGH/MEDIUM/LOW ä»¶æ°ãã¬ã¸ã¼ã ï¼
rebalance ã®åºåé ç®
- ç¾ç¶ã®HHIï¼ã»ã¯ã¿ã¼/å°å/é貨ï¼ã¨ç®æ¨HHI
- 売å´åè£ï¼éæã»æ ªæ°ã»çç±ï¼
- è³¼å ¥åè£ï¼éæã»æ ªæ°ã»çç±ã»é å½å©åãï¼
- ãªãã©ã³ã¹å¾ã®HHIäºæ¸¬å¤
simulate ã®åºåé ç®
- 年次æ¨ç§»ãã¼ãã«ï¼å¹´/è©ä¾¡é¡/ç´¯è¨æå ¥/éç¨ç/é å½ç´¯è¨ï¼
- 3ã·ããªãªæ¯è¼ï¼æ¥½è¦³/ãã¼ã¹/æ²è¦³ã®æçµå¹´ï¼
- ç®æ¨éæåæï¼å°éå¹´/å¿ è¦ç©ç«é¡ï¼
- é å½åæè³ã®è¤å©å¹æ
å®è¡ä¾
# ã¹ãããã·ã§ãã
python3 .../run_portfolio.py snapshot
# è³¼å
¥è¨é²
python3 .../run_portfolio.py buy --symbol 7203.T --shares 100 --price 2850 --currency JPY --date 2025-06-15 --memo ãã¨ã¿
# 売å´è¨é²
python3 .../run_portfolio.py sell --symbol AAPL --shares 5
# æ§é åæ
python3 .../run_portfolio.py analyze
# ä¸è¦§è¡¨ç¤º
python3 .../run_portfolio.py list
# ãã«ã¹ãã§ãã¯
python3 .../run_portfolio.py health
# æ¨å®å©åã
python3 .../run_portfolio.py forecast
# ãªãã©ã³ã¹ææ¡
python3 .../run_portfolio.py rebalance
python3 .../run_portfolio.py rebalance --strategy defensive
python3 .../run_portfolio.py rebalance --reduce-sector Technology --additional-cash 1000000
# What-Ifã·ãã¥ã¬ã¼ã·ã§ã³ï¼è¿½å ã®ã¿ï¼
python3 .../run_portfolio.py what-if --add "7203.T:100:2850,AAPL:10:250"
# What-Ifã·ãã¥ã¬ã¼ã·ã§ã³ï¼ã¹ã¯ãã: 7203.Tå£²å´ â 9984.Tè³¼å
¥ï¼(KIK-451)
python3 .../run_portfolio.py what-if --remove "7203.T:100" --add "9984.T:50:7500"
# What-Ifã·ãã¥ã¬ã¼ã·ã§ã³ï¼ç´å£²å´ï¼(KIK-451)
python3 .../run_portfolio.py what-if --remove "7203.T:50"
# 調æ´ã¢ããã¤ã¶ã¼ (KIK-496)
python3 .../run_portfolio.py adjust
python3 .../run_portfolio.py adjust --full
# ããã¯ãã¹ã
python3 .../run_portfolio.py backtest --preset alpha --region jp --days 90
åæç¥èçµ±åã«ã¼ã« (KIK-466)
health ã³ãã³ã
get_context.py ã®åºåã«ä»¥ä¸ãããå ´åããã«ã¹ãã§ãã¯çµæã¨çµ±åãã¦åçãã:
- 売買履æ´ï¼BOUGHT/SOLDï¼: è³¼å ¥ä¾¡æ ¼ã»æ¥ä»ãåç §ããå«ã¿æçã®æèãä»å ã売崿¸ã¿éæãè¦åã«åºãå ´åã¯ã売崿¸ã¿ã®ããåé¡ãªããã¨æè¨
- æè³ã¡ã¢ï¼Noteï¼: ãã¼ã¼ã»æ¸å¿µã¡ã¢ãããã°ããã«ã¹ãã§ãã¯çµæã¨ç §åããããªã¥ã¼ãã©ããæ¸å¿µã¡ã¢ãã â ä»åãBTã¹ã³ã¢é« â æ¬å½ã«è¦æ³¨æãç
- ååãã«ã¹ãã§ãã¯ï¼HealthCheckï¼: ååã¨ã®å·®åã示ãããååHOLD â ä»åEXIT: ç¶æ³æªåããååEXIT â ä»åHOLD: æ¹åã
- ã¹ã¯ãªã¼ãã³ã°å±¥æ´ï¼SURFACEDï¼: è¦åéæãéå»ã«ã¹ã¯ãªã¼ãã³ã°ä¸ä½ã ã£ãå ´åããæ³¨ç®åº¦ã¯é«ãï¼3åä¸ä½ï¼ãç¾å¨ã¯è¦æ³¨æãç
- ãã¼ã¼çµé: ãã¼ã¼ã¡ã¢ã90æ¥ä»¥ä¸åãªãããã¼ã¼è¦ç´ãææãã¨ä¿ã
snapshot / forecast
- ååã¹ãããã·ã§ããã»ãã©ã¼ãã£ã¹ããããã°å·®åã³ã¡ã³ããä»å
- ãå忝: è©ä¾¡é¡+5.2%ãå©åãæ¹åãç
åæçµè«ã®è¨é²ä¿ã
EXIT/è¦åã«å¯¾ãã¦å ·ä½çãªå¤æï¼ã売崿¨å¥¨ããç¶ç¶ä¿æãçï¼ãå«ãåçãããå ´å:
ð¡ ãã®å¤æãæè³ã¡ã¢ã¨ãã¦è¨é²ãã¾ããï¼