ポートフォリオ管理スキル
$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/警告に対して具体的な判断(「売却推奨」「継続保有」等)を含む回答をした場合:
💡 この判断を投資メモとして記録しますか?