stock-portfolio

📁 okikusan-public/stock_skills 📅 11 days ago
9
总安装量
9
周安装量
#32900
全站排名
安装命令
npx skills add https://github.com/okikusan-public/stock_skills --skill stock-portfolio

Agent 安装分布

claude-code 9
opencode 8
gemini-cli 8
antigravity 8
qwen-code 8
windsurf 8

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):

  1. ポートフォリオ全体の3シナリオ利回り・損益額テーブル
  2. 注意銘柄セクション(バリュートラップ警告のある銘柄を集約)
  3. 期待リターン TOP 3 / BOTTOM 3 ランキング
  4. 銘柄別詳細(アナリスト目標/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/警告に対して具体的な判断(「売却推奨」「継続保有」等)を含む回答をした場合:

💡 この判断を投資メモとして記録しますか?