Skip to content

Latest commit

 

History

History
1844 lines (1443 loc) · 245 KB

File metadata and controls

1844 lines (1443 loc) · 245 KB

English | 中文 | 日本語 | 한국어 | العربية

Vibe-Trading Logo

Vibe-Trading: あなた専用のトレーディングエージェント

1つのコマンドで、包括的なトレーディング能力をエージェントに付与

HKUDS%2FVibe-Trading | Trendshift

Python FastAPI React PyPI License
Feishu WeChat Discord

公式サイト  ·  ドキュメント  ·  ニュース  ·  機能  ·  Shadow Account  ·  デモ  ·  クイックスタート  ·   ·  API / MCP  ·  ロードマップ  ·  Contributing

pip install vibe-trading-ai


📰 ニュース

⚠️ セキュリティ警告: Xアカウント VibeTrading_HKU、Virtualsプロジェクト 101845、およびトークンコントラクト 0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4 は、いずれもVibe-Trading公式のものではありません。Vibe-Tradingはこれまで、いかなるトークンやミームコインも発行・公認していません。購入、ウォレットの接続、署名は行わないでください。詳細

  • 2026-08-12 📏 フォールバック先が変わっても、A 株の出来高がひそかに 100 倍跳ねることはなくなりました:A 株のフォールバックチェーンでは 5 つのデータソースが board lot(手)で出来高を返す一方、BaoStock だけは株数を返していました。実際に応答したソースの provenance に単位がなかったため、フォールバック一回で全ての出来高シグナルが 100 倍ずれる可能性がありました。各 loader は市場別の出来高単位を宣言し、provenance は銘柄ごとに実際に採用されたソースの単位を公開します。BaoStock は loader 境界で株数を board lot に変換し、cache v4 が修正前のキャッシュ再利用を防ぎ、実データを使うクロスソース回帰テストが同一の確定取引日について 1% 以内の一致を要求します(#1065#1067#1062 をクローズ)。この 10 PR の正確性パスには、eToro の完全な runtime status と 5 言語の SDK 接続済み UI(#1051)、scheduled-run DELETE の本当に空の 204 応答(#1068)、CLI での Alpaca direct-SDK account payload 表示(#1073)、実際のモデル構築でも共有される credential 境界での Ollama /v1 正規化(#1074)、Docker Codex OAuth の stdin EOF に対する実行可能な TTY ガイド(#1054#1050 をクローズ)、Markdown 番号付きリストの 1. を根拠のない数値主張として扱わない修正(#1063)、GE のような 2 文字メモリ検索を FTS5 の有無で一致させる修正(#1071)、およびゼロボラティリティ欧州オプションを割引済みフォワード本源的価値で評価し行使判定とプット・コール・パリティを復元する修正(#1066)も含まれます。@shadowinlife@ofeksh-tr@zhiwuyazhe-fjr@zzz607@pengpengyi92@Shizoqua に感謝します。
  • 2026-08-11 🧠 コンパクションが会話内容を落とさず、swarm のリトライが自分の run を削除できなくなりました:自動コンパクションは要約前にシリアライズ済み履歴をハードな 80,000 文字で切っていたため、その先の内容は要約呼び出しにも保持された末尾にも届かず、エラーなしで消えていました。これは関数自身の「情報減衰ゼロ」という保証に反し、しかも切断位置がオブジェクトの途中だったため、要約器には不正な JSON が渡されていました。履歴はメッセージ境界で詰め、既存の反復テンプレートでチャンクごとに折り畳むようになりました。1 つのメッセージが 1 チャンクに収まらない場合は切り詰めずラベル付きフラグメントに分け、モデルの空の返答でも、それまで蓄積した要約を消さなくなりました(#1055 を close)。新しいリトライ時の成果物クリーンアップは run_dir/artifacts/<agent_id> に対して shutil.rmtree を実行していましたが、agent_id は検証されない preset から届き、ユーザー preset は ~/.vibe-trading/swarm/presets/ から読み込まれるため、id が .. だと run directory 自体に解決されていました。現在は、安全な 1 セグメントであり、解決先がその run の artifacts directory 内にある場合だけ受け入れます。さらに、technical_indicators の RSI は docstring がもともと示していた Wilder-EWM 規約に移行し、単純な rolling mean が値を 30/70 の境界の反対側へ動かす問題を直しました(#1056)。excess_return は修正済み benchmark total から再導出し、同じ metrics dict 内の 2 つのフィールドが食い違わなくなりました(#1058)。swarm の成果物検証は ok/success キーの raw tool envelope を分析として渡すことを拒否し(#1052)、リトライされた worker は失敗した試行の report.md を引き継がず(#1053)、worker prompt は agent 不変ブロックが 1 つのキャッシュ対象 prefix になる順序に整えられました(#1057)。@Shizoqua@Echoandelementwebsites に感謝します。
  • 2026-08-10 🚀 v0.1.13 リリースリリースノートpip install -U vibe-trading-ai):0.1.12 以降 408 コミット・162 件のマージ済み PR で、これまでで最大のリリースです。主役は新機能ではなく修正です:identity ゲートが、すでに証拠を持っている回答を拒否しなくなりました。以前は整った質問でも実際のツール呼び出しに数分を費やしたうえで「銘柄の同一性または価格の根拠を安全に確認できません」*と返っていました。原因は、.SS.SH が別銘柄として扱われ上海の銘柄コードがすべて恒久的に ambiguous* になっていたこと、失敗した傍系クエリがロック済みの identity を降格できたこと、Yahoo が CJK クエリすべてに HTTP 400 を返すのを「ここには上場していない」ではなくデータソースの失敗として記録していたこと、ツールごとのハードコードされた許可リストがドキュメント記載の 17 通りの引数表記のうち 11 通りを弾いていたこと、日本語・中国語の回答が ASCII のローダー名ではなく 雅虎 と書いたために拒否されたこと、そして桁区切りが ¥1,309.22 を分断し 1 が観測レンジと比較されていたことです。概念的な質問や比較レポートも行き止まりになりません。記録された OHLC の根拠を外れた価格は引き続き拒否されます新機能: src/quantlib —— 17 モジュール・249 個のテスト済み関数(オプション、債券、クレジット、計量経済、VaR/CVaR/EVT、要因分解、イベントスタディ、purged CV)を読み取り専用の quantlib_call 経由で CLI・Web UI・REST API・MCP から利用でき、skill は markdown に数式を抱え込まず import するようになりました。バリュエーションエンジンrun_dcf / run_comps / 三表連動)は、入力が欠ければ黙ってデフォルトを埋めるのではなくモデルを実行不能にします。エンティティ + 不規則キャッシュフローの背骨(XIRR / MOIC / DPI / TVPI、cashflow_performance 経由の TWR / Modified Dietz)はバーエンジンとあえて並行に保たれています。ガバナンスが全実行に組み込まれ、プロンプト・skill・ツールレジストリ・パッケージバージョンのハッシュ manifest と、自分のハッシュを再計算した改変でも次のレコードで捕捉されるハッシュ連鎖 + fsync の監査台帳が入りました。無料の公開ソースに基づく読み取り専用データツールが 4 つ(四半期比の持高差分付き SEC 13F、CSI300 連動 ETF が四半期上位 10 銘柄ではなく純資産の 98.66% にあたる 342 銘柄まで解決するETF ルックスルー、ラベル付き含意確率としての予測市場、出典に紐づく主張のみを抜く arXiv/OpenAlex)。さらに 6 つの機関投資家向けコマンド(/comps /dcf /attrib /memo /earnings /screen)、独立 skill 化した investor lenses、5 つのスケジュール可能なリサーチ playbook、チェックサム固定の Windows パッケージングと safeStorage を備えたデスクトップ Electron シェル、13 番目のブローカーコネクタ eToro、9 番目のバックテストエンジン 韓国 (KRX)OpenBB Workspace ブリッジ、カナダ株のエンドツーエンド対応、そして sentimenttechnical_indicatorsoptions_payofforderbook_depth・ModelScope・vibe-trading update正確性: SEC の報告期間を (start, end) の期間で識別するようにしました —— 年次指定が単一四半期を返しており 4.2 倍の過小評価でした。tushare の A 株価格はコーポレートアクション調整済みになり、権利落ちをまたぐ生のリターンは最大 47 パーセントポイントずれていました。bar_returns は売買停止を 0% の変動として記録しなくなり、年率換算は 24 のデータソースすべてを網羅します。生成コードがブローカー層を import できたり、名前を変えた束縛経由で socket/subprocess に到達できたサンドボックスの穴も塞ぎました。通貨が混在するクロスマーケットのコンポジットバックテストは、1 本のエクイティカーブに合算せず拒否します。@santhreal、@shadowinlife、@Robin1987China、@he-yufeng、@QCYTSN、@Shizoqua、@honginp、@cgycorey、@wiliao、@ngoanpv、@x-lambda、@ofeksh-tr、@00EVA、@zwrong、@yrk111222、@su322、@hhj123123、@dineeshd、@sambazhu、@ddy4633、@tyj147454413-cmd、@y85998607、@JungHoonGhae、@shugaoye、@TSENGCHIENFENG、@darkknight4563、@MuggleJinx、@klmtseng、@ebujinovch、@g0rdonL、@AmirF194、@Echoandelementwebsites、@yagnikpipaliya、@dvirarad、@1anter の皆さんに感謝します。
過去のニュース
  • 2026-08-09 🪟 安全な Windows パッケージ、カナダ市場、ModelScope、MCP 上の Alpha Zoo:Windows デスクトップのパッケージ処理は、checksum 固定の組み込み Python 3.12 runtime と x64 NSIS の review/signing 経路を組み立て、許可リスト内の credential を Electron safeStorage に保存できるようになりました。renderer は秘密を設定・消去できますが読み取れず、平文設定の移行は一度だけ、復号値は所有する backend にだけ渡ります。未署名 review build と署名 build は署名状態が違えば fail closed となり、この PR から installer artifact は公開されていません(#1015)。カナダ株は end-to-end で利用可能になり、.TO/.V を CAD として分類し、Yahoo → yfinance → local の fallback で取得、カナダ固有の GlobalEquity rule で執行し、XIC.TO を benchmark とし、通貨混在の集計を拒否します。strict USD-M の過去 backtest でも position_adjustment=rebalance を opt-in でき、増減ポジションを通じて collateral、funding、fee、実現 P&L、清算挙動、不変の約定証跡を一貫させます(#1024#1019#952 を close)。ModelScope は公式の OpenAI-compatible hosted-inference endpoint を通じて組み込み provider に加わり、default は Qwen/Qwen3.5-27B です(#1011)。新しい vibe-trading update は wheel install と editable/source checkout を区別し、確認した厳密な release を導入して、新規 process の metadata で検証し、downgrade しません(#1020)。さらに alpha_zoo と制限付き alpha_bench が MCP(計 64 tools)から利用可能になり、期間・結果数・出力先を制限して report を安全に作成します(#979)。検証済みの Python/frontend lock 更新では grouped dependencies、postcssakshare も更新されました(#1021#1023#1026#1027)。貢献に感謝します:@QCYTSN@wiliao@honginp@yrk111222@zwrong@cgycorey

  • 2026-08-08 🧱 デスクトップシェル、eToro、アトミック・リバランス、信頼性強化:ソース版 Electron ホストが既存バックエンドのライフサイクルを担い、ランダムな loopback ポート、起動ごとの秘密鍵、5 言語の起動復旧、所有プロセスの後始末を提供します。eToro は demo/real を経路レベルで分離したコネクタとして加わり、実運用でリスクを増やす操作は引き続き mandate と監査のゲートを通り、API の機能エンドポイントは認証と CSP で保護されます(#923#989#961)。バックテストには不変の約定証跡を残す opt-in の同方向アトミック・リバランスを追加。Shadow は架空の FX 集計をせず決済通貨ごとに市場を分離し、設定済み runtime root に従います。指標は連続した未サンプリング履歴を使い、負の equity における drawdown と空の破産 cross account の清算境界も正しくなりました(#951#997#1017#1005#958#959)。OpenAI Codex OAuth は独立した排他制御付き credential store と一度限りの 401 復旧を持ち、proxy 無効化は同期・非同期 client の両方に適用。sandbox run は正規の run root を保持し、定期リサーチは壊れた record を隔離して interval の timezone 検証を修正、lowercase 4h は真の 4 時間足を返します(#1014#995#1012#1003#1004#1013)。QQ 返信は元 message ID を保持し、長い model slug は読めるまま、agent は証拠が十分なら調査を止めます(#1008#1006#1010)。貢献に感謝します:@QCYTSN@Shizoqua@ngoanpv@hhj123123@su322@Robin1987China@shadowinlife@dineeshd@honginp@santhreal@00EVA@x-lambda@ofeksh-tr

  • 2026-08-07 🛡️ 誤拒否の削減、サンドボックスの穴を封鎖、QVeris を MCP へ:グラウンディングゲートは「そもそも価格ではない数字」で整形済みの回答を拒否しなくなりました —— 確信度スコア、指標の値、移動平均の期間、8/5 のような年なし日付、パーセント範囲、そして売買プラン自身のトリガー水準(終値 ≥6.45 は条件であって提示値ではありません)。一方、記録された OHLC 証拠の範囲外の提示値は引き続き拒否され、08-05 と書かれた価格表も証拠と突き合わせられるようになりました(#1001#983)。サンドボックス:生成された戦略コードはブローカー層を import できなくなり、リネームした束縛経由で socket/subprocess/os.system/ctypes に到達することもできません。いずれも従来は通っていました。戦略が使うべき src.quantlib は引き続き import できます。QVeris の discovery/inspect/execute が MCP に加わり(62 ツール)、コスト見積もりは呼び出し側の申告ではなくマーケットプレイスに問い合わせます(#976、closes #964、thanks @shadowinlife)。さらに、香港株データのフォールバック経路の修正と Tencent 香港ソースの追加、yfinance の暗号資産をクリプトエンジンへルーティング、メモリ項目の書き込みと復旧に .md 拡張子を付与、MCP の list/dict 引数が JSON 文字列クライアントを許容、実行詳細に Portfolio Studio 成果物を表示(#1000#970#984#993#980#982#966#973、thanks @he-yufeng@ngoanpv@sambazhu)。

  • 2026-08-06 🧮 テスト済み金融数学レイヤー + バリュエーションエンジン + 不定期キャッシュフロー + 配線済みガバナンスsrc/quantlib は skills の markdown に散在していた数式を、それぞれ唯一のテスト済み実装に置き換えました —— オプション、債券、クレジット、計量経済、VaR/CVaR/EVT、パフォーマンス要因分析、イベントスタディ、多重検定制御、purged クロスバリデーション —— 約 250 関数が、新しい読み取り専用ツール quantlib_call を通じて CLI・Web UI・REST API・MCP から利用できます。バリュエーションエンジン(run_dcf/run_comps/三表連動)は入力が欠けていればデフォルト値で埋めずに「実行不能」と判定します。新しいエンティティ + キャッシュフロー基盤により NAV・キャピタルコール・クーポンが扱えるようになりました(cashflow_performance が XIRR/MOIC/DPI/TVPI と TWR/Modified Dietz を、orderbook_depth が暗号資産 L2 のインパクトコストを提供)。各実行はハッシュ manifest を書き出し、監査台帳はハッシュチェーンで改ざんを検出可能に。30 の swarm プリセットはツールが実際に計算できる内容と照合して総点検され、計算できない成果物は数値をでっち上げる代わりにその旨を明示します。

  • 2026-08-05 🔭 機関投資家保有、ETF ルックスルー、予測市場、論文検索:無料の公開データのみを使う読み取り専用ツールが 4 つ —— SEC 13F 保有(四半期比の増減付き)、市場をまたぐ ETF 構成銘柄(CSI300 連動型は四半期開示の上位 10 ではなく 342 銘柄・純資産の 98.7% を返します)、イベント契約を単位付きの含意確率として提示、arXiv/OpenAlex 検索は原典にない値を推測せず「記載なし」と印を付けます。あわせて、定期リサーチのテンプレート 5 本、機関投資家向けコマンド 6 つ(/comps /dcf /attrib /memo /earnings /screen)、独立した skill としての investor lenses、そしてすべての数値を生成元のツールまで辿れる agent core。

  • 2026-08-04 🔧 正確性の修正:ファンダメンタルズ、A 株価格、長すぎるツール結果:SEC の報告期間は (start, end) の期間で識別するようになりました。10-Q は同じ期末日・同じ会計四半期の下に真の四半期と年初来フレームの両方を提出するため、period="annual" は AAPL の FY2018〜2020 で単一四半期を返しており(4.2 倍の過少計上)、四半期系列の第 4 四半期の枠にはすべて通年の数値が入っていました。get_fundamentals("AAPL.US")ok:true と全 null のパネルを返さなくなります。Tushare の A 株価格はファクターベンチとバックテストの両方で権利落ち調整されるようになり(権利落ち日をまたぐ生の終値騰落率は最大 47 パーセントポイントずれていました。300750.SZ、2023-04-26)、CSI300 ベンチは各日付をその時点の指数構成銘柄でマスクします。クロスマーケットのコンポジットバックテストは、CNY・USD・KRW を 1 本の資産曲線に合算する代わりに、通貨が混在する銘柄セットを拒否します。オプションの各レグは建玉時のボラティリティで評価され、プレミアム比 +93% にも達していた初日の架空損益が解消されました。長すぎるツール結果は JSON の途中で切られる代わりに、総数を明示してレコード単位でページングされます。calc_metrics はトラッキングエラーとベンチマークベータを返します。

  • 2026-08-03タイムゾーン対応のスケジュール実行 + 銘柄スクリーニングのデッドロック解消:スケジュールジョブに任意の IANA timezone を指定でき、cron はそのゾーンの壁時計で評価されるため、夏時間の切替をまたいでも周期が保たれます(春の存在しない時刻はスキップ、秋の重複する時刻は最初の 1 回だけ実行)。cron の各フィールドはカンマ区切りと範囲(1,3-5)に対応し、タイムゾーン未設定のジョブは従来どおり UTC で動作、Web UI にも 5 言語対応の Scheduled ページが追加されました(従来フロントエンドにはスケジュール画面が存在しませんでした)(#954、closes #953@ngoanpv に感謝)。スクリーニング要求が行き止まりにならなくなりました。多数の候補を含む絞り込み結果は「未解決」ではなく「回答」として扱われ、個別銘柄が確定した時点で役目を終えます。価格チェックは銘柄コードの数字・ローカライズされた日付・株数・建玉コストを価格として読まなくなりましたが、記録済み OHLC の範囲外の価格は従来どおり拒否します(closes #955)。Agent メモリのインデックスアンカー厳密一致と件数上限の修正も含みます(#956#957@santhreal に感謝)。

  • 2026-08-02 🧠 ライブモデル検出、正確なランタイム ID、検証済み依存関係更新:Settings から設定済み provider のモデルをオンデマンドで取得でき、安定した警告コードと 5 言語の UI で表示します。各応答には実際に処理した provider/model/reasoning の不変 ID が記録・再読込され、セッション切替時には安全に消去されます(#924@QCYTSN に感謝)。さらに hash-lock された Python 依存 9 件と jsdom/postcss を更新し、正確なバージョンの import、重点テスト 330 件、本番ビルド、フロントエンドテスト 373 件、main の全 CI、Dependency Graph が成功(#949#948)。破壊的変更を含む MCP 2.0 は、完全なロックとランタイム移行が整うまで未マージです(#950)。

  • 2026-08-01 🧮 オプション戦略分析 + 市場センチメント + 監査可能な USD-M リサーチ:新しいオプション損益ワークフローは、満期時の損益極値、連続する損益ゼロ区間を含む正確な損益分岐点、既存エンジンと整合するエントリー手数料、スポット価格 × IV シナリオを解析的に計算し、Agent と MCP から利用できます(#946#883 からクリーンに再実装、thanks @he-yufeng)。読み取り専用の sentiment ツールは任意のテキストをローカルでスコアリングし、API キーなしで暗号資産の Fear & Greed Index を取得します(#939、thanks @Robin1987China)。厳格な USD-M バックテストは、約定、資金調達、リスク、清算の各イベントを順序付きで永続化し、再現性サマリーも出力するとともに、100× 厳格モードで未対応の時間足を拒否します(#936、thanks @honginp)。信頼性向上として、シンボルと市場を解決してからマーケットデータを呼び出し、最終的な提示価格を記録済み OHLC 証拠と照合します。スケジュール済みリサーチは一時的な障害を再試行し、ネストした MCP 結果も安定してシリアライズされます。

  • 2026-07-31 🔧 USD-M 清算ライフサイクル + テクニカル指標ツール + 状態ディレクトリのユーザー領域への移行:オプトインの perpetual_strict モードが約定前に過去の資金調達率を精算し、アイソレーテッド/クロス証拠金の逸脱を実際の清算として実行します(#903、thanks @honginp)。読み取り専用の technical_indicators ツールが既存ローダー経由で RSI/MACD/ボリンジャー/SMA/EMA を計算します(#921#920 参照、thanks @Robin1987China)。セッション・実行成果物・スウォーム実行・アップロードは ~/.vibe-trading 配下に統一され(VIBE_TRADING_HOME で移転可能)、初回起動時に自動移行されます(#925#904 をクローズ、thanks @MuggleJinx)。ほかに 10 件の整合性修正——Yahoo の .SS を A 株に分類、裸/プレフィックス形式の A 株コード、スラッシュ区切りの暗号資産ペア、nan/inf ガードなど(#919#926#935、thanks @santhreal)。

  • 2026-07-30 🎨 WebUI 刷新 + 韓国(KRX)市場対応 + OpenBB Workspace ブリッジ:Web UI の guided-minimalism 改修が着地——初期フレームのちらつきを解消し、各ターンは単一の永続アクティビティオブジェクト(推論のライブ・ウィスパー + リロードでも復元されるツールトレイル)を持ち、セッション名は LLM が自動生成、5 言語が完全整合。韓国株式(KRX:KOSPI/KOSDAQ)が 9 番目のバックテストエンジンに——±30% 制限値幅を約定時点で判定、ロングオンリー、2026 年 0.20% の証券取引税、任意の pykrx ローダー(#693、thanks @JungHoonGhae)。加えて OpenBB Workspace ブリッジ(#817、thanks @shugaoye)と読み取り専用の台湾株スナップショットツール(#848、thanks @TSENGCHIENFENG)。整合性:日次の値幅制限は判断バーの終値ではなく約定時点で判定。1 セッションの実行は常に 1 つ(HTTP 409)で、ユーザーの停止は独立した終端状態(#676、thanks @tyj147454413-cmd)。ほかにトレースの永続化(#662)、ツール結果の秘匿情報スクラブ(#675)、不正なツール引数のフェイルクローズ(#913/#911、thanks @santhreal)、OpenAI 直接接続の reasoning_effort#755、thanks @1anter)、リスク X 線 / エッジ密度 / オプションエンジンの数値ガード(#909/#908/#907)。

  • 2026-07-29 🔧 ギャップ安全なリターン + 強制清算リスクモデル + 全ランにリスクX線bar_returns はフォワードフィル窓を超える取引停止をまたぐ実際の値動きを消さなくなりました——再開バーの動きが無音で 0 と記録され、ボラティリティ過小評価と Sharpe 過大評価を招いていました。inf の直前価格がきれいな −100% に読める問題も修正(#895、thanks @darkknight4563)。年率換算は全 24 データソースの全インターバルをカバーし、エントリ欠落時に CI が失敗するカバレッジテストを追加(#891、closes #884、thanks @Robin1987China)。USD-M 永久先物リサーチに決定論的な分離/クロスマージン清算評価が追加され(#889、thanks @honginp)、ポートフォリオバックテストは毎回リスクX線アーティファクトrisk_xray.json/.md)を出力します(#900、thanks @he-yufeng)。connector CLI が ~/.vibe-trading/.env を読み込むようになり、環境変数由来のブローカー資格情報が復活(#902、closes #901、thanks @MuggleJinx)。ほか、チャネルメッセージ分割のインデント保持とスキル frontmatter の EOF 解析を修正(#867/#861、thanks @santhreal)。

  • 2026-07-28 🔧 次世代 Claude モデルの解禁 + 符号安全なリターン計算temperature フィールドを廃止した Claude モデル(opus-4-7、opus-5、sonnet-5)が利用可能になりました。API が当該フィールドを拒否するとアダプタが自動的に除去して一度だけ再試行し、そのモデルを記憶するため、モデルのリリースごとにパッチを当てる必要がありません(#890#856 をクローズ、@yagnikpipaliya さんに感謝)。非対話モードの vibe-trading run がホストのセッション ID を注入するようになりました。従来はリサーチゴール系ツールが毎回失敗する一方で、実行自体は成功として報告されていました(#885)。バイ・アンド・ホールドのリターンが符号安全になり、直前終値がゼロに近い場合に複利ベンチマークが発散する問題と、終値がちょうどゼロの場合に inf/nan になる問題を解消しました(#872、@darkknight4563 さんに感謝)。フロントエンドを Node 22 + React Router 8 に移行し、重大度「高」のセキュリティ勧告を解消しています。

  • 2026-07-27 🔧 相関行列の整合性修正 + vn.py 4.0 エクスポート修復 + エンコーディング修正バッチ:ローリング相関行列が欠損終値を前方補完しなくなりました。従来は売買停止セッションが架空の 0% リターンとして扱われ、対象銘柄の実際の値動きと対比されて行列が歪んでいました(#873、@ddy4633 さんに感謝)。vn.py エクスポートスキルを vn.py 4.x のレイアウトに対応させました。上流で vnpy.app.cta_strategy が廃止されたため、テンプレートは vnpy_ctastrategy からインポートします(#869、@y85998607 さんに感謝)。さらに 6 件の修正:ドキュメントリーダーと取引履歴 CSV の UTF-16 BOM デコード、数値変換前の通貨記号除去、BTCUSDT 形式シンボルの暗号資産判定、小文字 1h/1d インターバルの年率換算、スキルディレクトリ名での CJK 文字保持(#862#863#864#865#866#868、@santhreal さんに感謝)。

  • 2026-07-26 🔒 依存関係ロック修復 + ベンチマーク・ユニバースの透明性:Docker のハッシュロック付きインストールが復旧し、CI にロック検証を追加しました(#858#847 をクローズ)。alpha bench は CSI300/SP500 の出典、銘柄数、縮退フォールバック、生存者バイアスを開示します(#859#845 をクローズ)。Actions とフロントエンド依存関係 5 件も更新しました(#850#852)。

  • 2026-07-25 🔧 パーペチュアルのリアリティ向上 + MCP クラッシュ修正 + 正確性バッチ: USD-M パーペチュアルが証抠金ステートコントラクトを獲得(#798、@honginp さんに感謝)。エンジンは取得して無視していた過去の資金調達率を実際に消費するようになりました(#819、@g0rdonL さんに感謝)。MCP の dataclass 結果が誤検出の Circular reference detected でクラッシュしなくなり(#849、@Echoandelementwebsites さんに感謝)、alpha bench の CLI/HTML が _meta の生存者バイアス開示を転送します(#841#797 をクローズ、@AmirF194 さんに感謝)。さらにジャーナル・コネクタ・チャネル横断の 12 件の正確性修正(#799#810、@santhreal さんに感謝)、CLI 残高ビューに実際のアカウントラベルを表示(#843#846 をクローズ、@Robin1987China さんに感謝)。

  • 2026-07-24 🔀 メモリ Tier 2、合成可能なオプティマイザ制約 + インターバル処理の総点検:永続メモリが Tier 2 の構造的な整理を獲得しました(#815、@shadowinlife さんに感謝)。バックテストのオプティマイザが合成可能な重み制約を受け付けるようになりました(#818、@he-yufeng さんに感謝)。正確性:日次バーのバリデーターが非正の価格をオプトインできるようになり、負の価格バーでは始値を取りつつ、ゼロは引き続き拒否します(#816#571 をクローズ、@darkknight4563 さんに感謝)。さらに 19 件の PR によるローダーのインターバル正規化の総点検:小文字の 1h/4h/1d/1w エイリアスを全域で受け付け、未対応のインターバルは日足を黙って返す代わりに fail fast し、Yahoo の 4H1h にマップ、MT5 は 1W/1M を受け付けます(#812#838、@santhreal さんに感謝)。加えて、トレードジャーナルの Eastmoney Excel シリアル日付の修正(#811、@santhreal さんに感謝)と README ナビゲーションアンカーの修正(#840、@dvirarad さんに感謝)。

  • 2026-07-23 🔧 信頼性の総点検 + strict alpha-bench の導線追加 + オプトインのメモリライフサイクル:22 件のコントリビューター PR のバッチ。広範な信頼性の総点検がタイムフレーム処理をエンドツーエンドで修正:yfinance 1M→月足(分ではない)、CCXT 1W/1M、akshare/india-broker がサポート外の間隔を黙って日足にせず拒否、Tiger/Alpaca/OKX/Shoonya/Longbridge コネクタが 1H/4H を時間足として維持。さらに取引ジャーナルの Excel 日付正規化(eastmoney の浮動小数 YYYYMMDD、Futu/Tonghuashun のシリアル日付)、report_audit の有限数 JSON、空の holding_days バリデーション、Feishu/CLI の markdown テーブル端列(#778#794、@santhreal さんに感謝)。MT5trading_history は numpy スカラーをネイティブ Python 型に変換し、JSON シリアライズが int64 で失敗しなくなりました(#776#774 をクローズ、@shadowinlife さんに感謝)。PIT ファンダメンタルズは修正済み行を重複排除し、遅れて届いた修正発表でスナップショットが古い会計期に後退しないようにしました(#772#771 をクローズ、@klmtseng さんに感謝)。新機能:alpha bench --strict が、0.1.9 から存在しつつ導線のなかった strict な同一ユニバースのランダム対照 + OOS ゲートをついに接続(#796#773 をクローズ、@he-yufeng さんに感謝)、オプトインのメモリライフサイクル(品質スコアリング、エビングハウス減衰、アーカイブのみの GC——すべてデフォルト無効)(#733#732 をクローズ、@shadowinlife さんに感謝)、そしてバックテストのリバランスノート成果物 + 回転率メトリクス(#795、@he-yufeng さんに感謝)。

  • 2026-07-22 🚀 v0.1.12 リリースリリースノートpip install -U vibe-trading-ai):correlation regime タイムラインGET /correlation/regime エンドポイント + オプトインの Correlation タブストリップを追加しました —— エッジ密度を因果的なヒステリシス状態機械に通して FUSED(融合)した市場エピソードをマークするもので、シグナルではなく記述的なリスクコンテキストです(#756#719 をクローズ、@ebujinovch さんに感謝)。プロバイダーのエンドポイント解決が各プロバイダーの canonical な base URL にフォールバックし、非 SSE エンドポイントを適切に処理するようになり、glm-5.1 上のネイティブ zai プロバイダーを修正しました(#758)。さらに、metrics・factors・pattern・session・journal にわたる strict-JSON/有限数の信頼性の総点検#761#770、@santhreal さんに感謝)と、-PERP バックテストを資格情報ゼロに保つ Binance のメンテナンスブラケット分離(#757、@honginp さんに感謝)。0.1.11 以降 約 90 件の修正をまとめています。

  • 2026-07-21 🔧 データローダーの完全性 + 信頼性修正の総点検:部分的な市場データは、欠損したシンボルを fallback チェーンで補完し、補完できない場合はフェイルクローズするようになり、バックテストのユニバースを黙って縮小しなくなりました(#689#681 をクローズ、@xkam7ar さんに感謝)。また、OKX のバーは深い履歴バックフィルのためにレート制限リトライ付きで history-candles エンドポイントを使用します(#644、@tyj147454413-cmd さんに感謝)。さらに修正の総点検:MCP ネットワークガードが IPv6/大文字小文字違いのホストを受け入れ(#750、@Robin1987China さんに感謝)、取引ジャーナルのパーサーが空白/NaN のシンボル行をスキップし(#749、@Robin1987China さんに感謝)、Shadow Account が日足バーでは抽出された入場時間ゲートをスキップし(#748、@Robin1987China さんに感謝)、MiniMax のリージョン API エンドポイントが選択可能になりました(#731、@octo-patch さんに感謝)。

  • 2026-07-20 🔀 プロバイダー、MetaTrader 5、堅牢性の総点検:ネイティブの Anthropic Messages API(任意の [anthropic] extra、#695、@jelech さんに感謝)、SiliconFlow#565、@UNHNQ さんに感謝)、iFlytek Spark#537、@FenjuFu さんに感謝)がプロバイダーに加わり、MetaTrader 5(Exness) ブローカーコネクタ + mt5 為替/貴金属データソースが追加されました(ブローカーコネクタ → 12#481、@StaniellG さんに感謝)。さらに、プロバイダー非依存の llm-vision OCR エンジン(#548、@shadowinlife さんに感謝)、80× のシグナル整列ベクトル化#698、@shadowinlife さんに感謝)、Binance USD-M ファンディング/ブラケット の履歴データ(#716、@honginp さんに感謝)、swarm の MCP ディスカバリキャッシュ(#704)、そして 13 件の SSE/セッション/CLI/swarm/スケジューラの問題をクローズする信頼性統合(#584、@xkam7ar さんに感謝)。正確性の修正:オプションの部分決済 がロット全体を清算せず要求数量だけを決済するように(#577)、プロバイダー資格情報解決の一元化(#563)、キュー中のキャンセル処理(#641)、フロントエンドのストリーミング DOM 競合(#717、@Marnie0415 さんに感謝)、コネクタ CLI レンダラー(#726、@nareshkps さんに感謝)。

  • 2026-07-19 🔧 米国株/香港株の実ニュース記事 + MCP factor-analysis の修正 + 堅牢性の総点検:株式ニュースツールは、米国株と香港株のティッカーに対して関連銘柄マッチではなく実際の Yahoo Finance 記事(title/url/source/published/snippet)を返すようになり、引き続き凍結された IP スロットリングクライアント経由でルーティングされます(#730、@yxhuang さんに感謝)。MCP の factor_analysis ツールは登録済みツールの実際の CSV コントラクトに揃えられ、実行前に KeyError で失敗しなくなりました(#715#635 をクローズ、@Robin1987China さんに感謝)。さらに堅牢性の総点検:Kimi K シリーズ全体(k2/k3/…/for-coding)が API の要求どおり temperature=1 を自動で強制するようになり(#701、@sambazhu さんに感謝)、split_message・PDF ページ範囲・トレードジャーナルの日付フィルタは、退化した入力や逆転した入力に対してハングや暗黙の空結果を返す代わりに即座に失敗するようになりました(#727#729、@santhreal さんに感謝)。

  • 2026-07-18 🔧 Binance 暗号資産フォールバック + 並列実行と正確性の修正Binance loader が暗号資産のヒストリカルデータ fallback チェーンに加わりました(#643、@tyj147454413-cmd さんに感謝)。また IBKR コネクタはスレッドローカルな接続プールとスナップショット気配に移行し、並列 agent 実行時のハングを修正しました(#636、@MikeCer さんに感謝)。さらに正確性の総点検:factor analysis は非正の n_groups を拒否し、逆転した期間レンジと非正の検出ウィンドウは即座に失敗し、correlation matrix 内の名前なし DatetimeIndex を正しく処理し、equity.csv の nav/value 列エイリアスを受け付け、空の A 株コードはもう 000000.SZ に強制変換されません(#709#714、@santhreal さんに感謝)。correlation-rewiring 安定性ファクターが academic zoo に加わり(#705、@ebujinovch さんに感謝)、fundamental zoo が factor analysis のホワイトリストに追加され(#707、@sambazhu さんに感謝)、永続化された実行状態が fsync で確実になり(#645、@tyj147454413-cmd さんに感謝)、dev extra がドキュメント記載の Black/Ruff ツールチェーンをインストールするようになりました(#634、@xkam7ar さんに感謝)。

  • 2026-07-17 🧩 correlation-regime skill + バックテスト / データ / ライブ安全性にわたる広範な正確性の総点検:新しい correlation-regime 検出 skill(同梱 skills → 88、#557、@ebujinovch さんに感謝)、Longbridge のランタイム接続カード(#569、@fanfpy さんに感謝)、そして ~/.vibe-trading から読み込むユーザー定義の swarm presets(#570、@darkknight4563 さんに感謝)。さらにスタック全体にわたる強化:Futu / Tencent / CCXT / mootdx の各 loader におけるサイレントなデータ破損の修正、factor bench と Shadow Account でのルックアヘッドバイアスと strict-OOS のガード、ライブ取引の安全性(符号付きエクスポージャー上限、アトミックな日次注文制限、同意優先の mandate コミット、fail-closed なライブ状態)、および journal / QVeris 予算 / swarm / CI ゲートの改善(#552、@xor-xe さんに感謝;正確性に関する作業の多くは @xkam7ar によるものです)。

  • 2026-07-16 🔧 依存関係ロックの修復 + Windows 設定保存の修正:ハッシュ検証付きランタイムロックを再生成し、Docker の pip install --require-hashes が再び正常に解決されるようにして、caio/pydantic-core/websockets の非互換ピンを修正しました(#564#558 をクローズ、@tianrking さんに感謝)。Web UI からの Agent LLM 設定の保存が Windows で HTTP 500 を返さなくなりました——POSIX 限定の os.fchmod 強化はプラットフォームで分岐し、fchmod のない環境向けの回帰テストを追加しています(#561、@CRui5in さんに感謝)。

  • 2026-07-15 🧮 バックテストの正確性 + Portfolio Studio コア完成:10 件の PR をまとめた今回の更新で、リバランスの因果性と順序非依存性、終端決済コスト、約定ベースの回転率、エクスポージャー上限、有限かつ厳格な検証出力を揃えました(#530/#531/#532/#540)。履歴チャートは実行時のデータソースを再利用し、反復可能な市場クエリは黙って除外されず、.env 読み込み後に設定キャッシュを更新します(#535/#544/#554)。Portfolio Studio #456 と設定バグ #541 をクローズし、provider 修正 #528/#529 も完了しました。@YZY0108、@santhreal、@Robin1987China、@xkam7ar、@Marnie0415、@marichu99 に感謝します。

  • 2026-07-14 🌉 Longbridge 市場データ + モダン MCP transport + provider reliability:Longbridge が、キーで有効化される認証情報、日付ウィンドウ分割、厳格な完全性チェック、オプトイン SDK 依存関係とともに履歴データ fallback 層へ加わりました。中国市場の資金フロー系 4 ツールには検証済み Tushare fallback が追加され、最終純資産が負でもバックテスト指標がクラッシュしません。MCP server は Streamable HTTP に対応し、write_file は別名または欠落した path 引数を安全に復元、hypothesis 更新は未対応フィールドを拒否し、Correlation リクエストには認証が付きました。NVIDIA NIM は Web Settings と 2 つの CLI onboarding で first-class provider となり、報告された 403 に対処するバージョン付き互換 User-Agent を送信します。Web Settings は canonical な ~/.vibe-trading/.env へ書き込み、legacy 設定を移行して権限エラーを明示することで、DeepSeek の保存時 500 を修正しました(#534#516/#524 をクローズ;#528/#529)。コード、報告、診断を寄せてくださった @fanfpy、@asahikiko、@santhreal、@sTunnaSu、@abhishekjaisinghani、@huangcheng、@ShiroKSH、@Meru143、@DIEGOD79、@not-knope に感謝します。

  • 2026-07-13 🔒 セキュリティ強化:外部監査の 10 件をすべてクローズ + contributor batch:2026-07-10 の外部セキュリティ監査(issue #476、discussion #468)の全 10 件が main で対応済みになりました——digest 固定ベースイメージによる Docker マルチステージ再構築、ネットワーク/subprocess/eval/os.environ/安全でない open を(ネストした関数本体の内部も含めて)遮断する AST 硬化バックテストサンドボックス、短命・使い切りの SSE 認証チケット、強化された Compose(read-only rootfs、capabilities 削減、リソース制限)、/correlation の認証 + レート制限、セキュリティヘッダー、ハッシュ固定された依存関係、ほか多数。あわせて合流:Alpaca キー分離のオプトイン TAP モード#377、@0xZKnw さんに感謝)、バックテスト指標への実現ポートフォリオ回転率の反映(#478、@Robin1987China さんに感謝)、Frazzini-Pedersen の低ベータプレミアムアカデミックファクター(Alpha Zoo → 461、#480、@YogeshModi24 さんに感謝)、5 つのポートフォリオオプティマイザ全体でのルックアヘッドバイアス修正(#487、@YZY0108 さんに感謝)、そして 2 件の preflight/provider 設定修正(#479/#484#477/#482 をクローズ、@ananaymital/@Bortlesboat さんに感謝)。

  • 2026-07-12 🧪 Strategy Development Manager + contributor fix batch:新しい strategy-dev-manager skill(87 個目)は、学術論文やブローカーレポートを登録済みファクター/戦略へ変換し、永続 artifact store と IC/Sharpe の自動減衰モニタリングを備えます —— sdm_register / sdm_status / sdm_decay_scan が active → monitoring → decayed → disabled のライフサイクルを ~/.vibe-trading/ 上で駆動します(#457#455 をクローズ、@shadowinlife さんに感謝)。あわせて:Correlation タブが素の ticker(AAPL,SPY)を受け付け、loader fallback chain を最後まで辿るようになり(#472#471 をクローズ、@yxhuang さんに感謝)、local loader は OHLCV リサンプリングで要求 interval を尊重(#467、@Shizoqua さんに感謝)、Binance USD-M 永続契約の履歴データが明示的な BTC-USDT-PERP ルーティング + 約定/マーク価格分離付きで #462 の最初のスライスとして着地(#470、@honginp さんに感謝)、FastMCP transport imports は両方のモジュールレイアウトで動作します(#469、@roberttidball さんに感謝)、Requesty が OpenAI 互換 LLM ゲートウェイ provider として利用可能になりました(#474、@Thibaultjaigu さんに感謝)。

  • 2026-07-11 🚀 v0.1.11 リリースpip install -U vibe-trading-ai):0.1.10 以降の 3 週間分をまとめました——first-class なインド株式(NSE/BSE)バックテスト、PIT-safe なファンダメンタル因子レイヤー(Alpha Zoo → 460)、16 アダプターの IM チャンネルランタイム、エンドツーエンドの定期リサーチ、オプションの QVeris 有料データ、そして本日の contributor batch:turnover を考慮したオプティマイザ(#466、@Robin1987China さんに感謝)、analyze_image ビジョンツール + NapCat DM ペアリング + IM メディア読み取りの修正(#464/#463/#465、@fei-moss さんに感謝)、Longbridge の Decimal シリアライズ(#459、@fanfpy さんに感謝)、packaged-manifest のカウントガード(#461、@asahikiko さんに感謝)。詳細:CHANGELOG · リリースノート

  • 2026-07-10 🇮🇳 インド株式(NSE/BSE)対応 + 環境変数の一元管理:専用の IndiaEquityEngine を追加——T+1 受渡、値幅制限バンド、config 駆動の STT/印紙税/取引所/SEBI/GST コストスタック——.NS/.BO シンボルルーティング、読み取り専用の Shoonya/Dhan データブリッジ(オプトイン)を備え、alpha101/qlib158 の 255 ファクターが新しい equity_in ユニバースに対応(#305、@muku314115 に感謝)。環境変数は単一の Pydantic EnvConfig スキーマに集約され、AST ベースの CI ゲートが今後の os.getenv 散在を防ぎます(#440#438 をクローズ、@shadowinlife に感謝)。ほか:実取引 mandate コミット前の確認ダイアログとエラートーストの統一(#453、@wison1717-maker に感謝)、scheduled-research ルートのテスト(#452、@Robin1987China に感謝)、zhipu プロバイダで GLM 思考モデルの reasoning ストリームが失われる問題の修正(#458)。

  • 2026-07-09 🧯 Docker 起動ブロック解除 + provider/CLI contributor batch:FastAPI の route 走査で path を持たない included-router-like エントリに当たっても、Docker/server startup がクラッシュしなくなりました(#450、@Penn-Live さんに感謝)。あわせて、キューにあった quick-win contributor fixes も入りました:OKX / Tushare / yfinance の loader fetch() signature を protocol と揃え(#437、@shadowinlife さんに感謝)、CLI resume prompt は最初のユーザーメッセージを保持します(#448#447 をクローズ、@morluto さんに感謝)。Codex OAuth default は openai-codex/gpt-5.4 に更新され(#446、@morluto さんに感謝)、Kimi for Coding は独立 provider として利用可能になり(#435、@yxhuang さんに感謝)、opencode provider mapping も接続されました(#444、@imsankz さんに感謝)。Tushare reference の code fence も pyhton から python に修正済みです(#449、@flash1234pku さんに感謝)。検証は focused server/CLI/provider/loader tests、Docker build、/health smoke を含みます。

  • 2026-07-08 💎 ファンダメンタル因子レイヤー(Phase 1)+ オプションの QVeris 有料データ + メンテナンスデー:PIT-safe な SEC 財務データが日次因子 panel に直接流れ込むようになりました —— fund:* panel 列、filed 日アンカリング(リステートメント・YTD フレーム防護付き)、新規クオリティ/バリュー因子 4 本(zoo は 460 alphas に)。データルーティングにオプションの有料トラックを追加:18 の無料ソースが引き続きデフォルトで、QVeris は Settings → QVeris または vibe-trading data mode paid から 63+ providers を解放します(下の QVeris セクション参照)。ほかに:api_server のモジュール化が完了(1,103 → 371 行、#424#331 をクローズ、@shadowinlife さんに感謝)、バックテストの validation.json が artifacts ディレクトリの事前存在を要求しなくなり(#429、@isaveall さんに感謝)、--swarm-run のエラーが明確になり(#428、@isaveall さんに感謝)、セッションチャットを壊した governance stack を revert しました(#433、的確な診断をくれた @yxhuang さんに感謝)。

  • 2026-07-07Contributor PR batch:キューにあった contributor work を merge しました。IM channel timeout configuration(#413、@SyntaxSawdust さんに感謝)、Alpha Library social previews と beginner tutorial(#396#393、@kadaliao さんに感謝)、value-investing skills / tools / committee presets(#407、@sambazhu さんに感謝)、trading_place_order の zero-sized order-field handling(#417、@irfanallana-oss さんに感謝)、session/API paths の timezone-aware UTC timestamps(#397、@mustafakamal88 さんに感謝)です。

  • 2026-07-06 🧭 Preflight hardening, API slices, and CN search fallback:provider preflight は redirect を追わなくなり(#404#402 をクローズ、@SyntaxSawdust さんに感謝)、残りの API routes は focused modules に移りました(#387#383-#386 を supersede、@shadowinlife さんに感謝)。CN web-search fallback は Alibaba Cloud IQS を含むようになりました(#408、@sambazhu さんに感謝)。Maintainer cleanup で no-network fallback tests と EOF whitespace cleanup も追加済みです(fbac74f);main CI は green です(run 28780619018)。

  • 2026-07-05Contributor PR queue closed + Windows baseline green:今日選んだ 4 つの non-draft PR を merge しました。A-share mootdx の batch pull は bare exceptKeyboardInterrupt / SystemExit を飲み込まず、長い取得処理を Ctrl+C で止められるようになりました(#399#398 をクローズ、@shadowinlife さんに感謝)。Settings route slice と patched dependency floors も元の contributor PR として merge され、credit が残ります(#382#390、@shadowinlife さんと @aeonframework さんに感謝)。Windows baseline compatibility は loader cache isolation、platform-aware OAuth cache assertions、Windows での fork-only mock test skip、MCP loopback fixtures の proxy bypass を含みます(#401、@Elfsa-Miranda さんに感謝)。Validation: 4701 passed, 47 skipped

  • 2026-07-04 🧩 API route slices, Chinese tutorial docs, and safer dependency floors:IM channel と Settings routes は api_server.py から src/api/channels_routes.py / src/api/settings_routes.py に移り、#331 の狭い modularization path を継続します(#379#382、@shadowinlife さんに感謝)。Wiki には非金融読者向けの中国語入門チュートリアルが加わり(#393、@kadaliao さんに感謝)、Pillow / LangChain / LangGraph の dependency floors も installable な patched track に更新されました(#390、@aeonframework さんに感謝)。

  • 2026-07-04 🧹 セッション/API パスの UTC タイムスタンプ整理:#395 のタイムスタンプ修正を強化し、session・goal・channel・API のタイムスタンプが明示的な ISO 形式のタイムゾーン付き UTC 値を出力するようになりました。

  • 2026-07-03 🛡️ Robinhood MCP refresh + API modularization + SSRF guard:Robinhood Agentic Trading は generic reads、live-runner plumbing、default read-only seeds、mandate-gate tests のすべてで現在の MCP tool names を使うようになり、interactive startup も provider loader と同じ .env 探索順(~/.vibe-trading/.envagent/.env$CWD/.env)を尊重します(#391#381#380 をクローズ)。System routes(/health/correlation/system/shutdown/skills/api)は次の狭い API modularization slice として src/api/system_routes.py に移りました(#378、@shadowinlife さんに感謝)。Channel media SSRF defenses は fetch 前に CGNAT/mesh/non-global targets と QQ media redirect-to-internal を拒否するようになりました(#389、@hobostay さんに感謝)。

  • 2026-07-02Factor acceleration + safer runtime boundaries:rolling factor のホットパスは bottleneck/NumPy fast path を使うようになり、alpha bench の process parallelism は巨大 panel payload を worker ごとに繰り返し渡さず、base equity 計算にも regression coverage が入りました(#376#339 をクローズ、元の実装は @shadowinlife さんの #342)。Upload と Shadow report routes は巨大な api_server.py から切り出され、API modularization の最初の狭い slice になりました。#331 は引き続き open です(#375#358 ベース、@shadowinlife さんに感謝)。Generated backtest subprocess は parent secrets surface 全体ではなく allowlist された環境だけを継承するようになり(#374#332 をクローズ)、IM channels には /new session reset と case-insensitive pairing commands も入りました(#372#371 をクローズ、@shadowinlife さんに感謝)。

  • 2026-07-01 🧹 Security polish + tracker cleanup:API/Docker/frontend dev defaults を締め、Settings channel と zh-CN edges を安定化し、frontend dependency/CSP alerts を解消、古い WhatsApp + paper-trading tracker items も整理しました(#338#351#349#365#367#350#335#283)。

  • 2026-06-30 💬 研究配信用の IM チャンネルランタイム:Vibe-Trading は同じ agent session runtime を 16 の組み込み message adapter に接続できるようになりました——WebSocket、Telegram、Slack、Discord、Matrix、WhatsApp、Signal、QQ/NapCat、WeChat/WeCom、Feishu/Lark、DingTalk、Teams、email、Mochat。CLI(vibe-trading channels status/start/stop/login/pairing)、REST(/channels/status/channels/start/channels/stop/channels/pairing/command)、Web UI Settings panel が status、recovery hints、start/stop、sender pairing を扱い、SDK-backed adapters は vibe-trading-ai[telegram]vibe-trading-ai[channels] などの extras の背後に残ります(#341)。

  • 2026-06-29 🛡️ Live advisory safety + Trading 212 read-only connector + Windows/Gemini fixes: live order guards now have an opt-in, broker-agnostic PreTradeAdvisoryInterface that records advisory reviews without bypassing the mandate gate, kill switch, or audit trail (#328, closes #317, thanks @shadowinlife). Trading 212 joins the connector layer with read-only account, positions, orders, history, and instrument-metadata support; place_order / cancel_order still hard-refuse until a structural paper/live boundary exists (#321, closes #309, thanks @mvanhorn). Windows startup avoids the pandas 3.0 Timestamp crash via the <3.0.0 constraint (#329, closes #324, thanks @hannibal-lee); Gemini thought_signature dict-history replay was verified/fixed on main (#318); .US financial statements now route to SEC EDGAR instead of Eastmoney (#325); and the Alpha Library landing page got cache/date/selector/noscript/DNS-prefetch hardening while heavier CSP and social-card follow-ups stay tracked (#323).

  • 2026-06-28 🧰 クロスプラットフォーム setup/dev + runtime と file tool の強化vibe-trading setupvibe-trading dev は、Windows の TypeScript build、正しい cwd からの backend 起動、Vite の 5899 port、終了時の子プロセス cleanup を正しく扱うようになりました(#292、@digger-yu さんに感謝)。Runtime status polling はクラッシュせず graceful に degrade し(#322)、MCP OAuth cache key は sanitize され(#313)、OpenAI default と Robinhood agent.json validation も強化されました(#319#320、@mvanhorn さんに感謝)。File tools には独立した read/write roots と sandbox tests の拡充も入りました(#299、@skloxo さんに感謝)。

  • 2026-06-27 🧯 Content-filter resilience + Shadow Account feature contract cleanup:event-driven / swarm run は、個別の LLM content-moderation hit をスキップし、filter rate が高い場合は run card で警告し、Gemini safety finish reason を認識して analysis 全体を abort しないようになりました(#308#307 をクローズ、@shadowinlife さんに感謝)。Shadow Account の extraction/codegen は同じ PRICE_FEATURES contract を共有し、4 桁小数の return bounds を保つことで、rule/codegen drift と prior_5d_return の精度落ちを防ぎます(#316、@Robin1987China さんに感謝)。

  • 2026-06-26 🎯 Shadow Account の条件付きエントリー + tushare ETF/指数/HK ルーティング:抽出された Shadow Account ルールが RSI / prior-return のレンジを持つようになり、生成される SignalEngine は保有サイクルを盲目的に再生せず、実際の条件(RSI がレンジ内、prior-return がレンジ内)でエントリーします(#314#302 の follow-up、@Robin1987China さんに感謝)。tushare loader も ETF/LOF を fund_daily()、指数を index_daily()、香港株を hk_daily() にルーティングし、非株式に対して静かに空を返す daily() を常に呼ぶのをやめ、銘柄ごとの空結果 + 部分取得の警告を追加しました(#315#310 をクローズ、@shadowinlife さんに感謝)。

  • 2026-06-25 🧪 strict validation JSON + 落ち着いた agent context:単独のバックテスト validation は、artifacts/validation.json や CLI stdout に書き出す前に入れ子の NaN / Infinity を正規化するようになり、strict JSON parser が validation payload で詰まらなくなりました(#306、@gyx09212214-prog さんに感謝)。Agent prompt も loader registry から現在の data-source 数を動的に導出し、_microcompact() は本当に token pressure がある時だけ動くため、短い実行で古い tool result が早すぎるタイミングで消されません(#296#282 をクローズ、@MarkfuGod さんに感謝)。

  • 2026-06-24 🎯 Shadow Account の価格コンテキスト + reactive Chinese UI + LAN auth 修正:Shadow Account のルール抽出は、buy_dt 時点の point-in-time-safe な entry context(entry_rsi14prior_5d_return)を loader registry 経由で読めるようになり、offline / no-data では従来どおり graceful に落ちます(#302#295 の follow-up、@Robin1987China さんに感謝)。Web UI の主要パネルは charts、chat、Alpha Library、Correlation、Run Detail まで reactive English / zh-CN translation に寄せました(#301、@skloxo さんに感謝)。CSRF hardening 後も、API_AUTH_KEY を設定した remote same-origin Web UI deployment は POST / upload が通る一方、mismatch した cross-site origin は引き続き拒否されます(#304、@Hinotoi-agent さんに感謝)。

  • 2026-06-23 🛡️ ローカル API の CSRF 対策強化:悪意あるウェブページがループバック API に対して安全でないクロスサイトリクエスト(POST/PUT/DELETE)を発行できなくなりました——CORS はレスポンスの読み取りは防げても副作用は防げないため、ループバックの dev-mode 信頼を認めるに、安全でないメソッドへ既存のクロスサイトガードを適用します。安全なメソッドとローカル CLI / 非ブラウザのアップロードには影響しません(#293、@Hinotoi-agent さんに感謝)。

  • 2026-06-22 🔧 ライブ認可の OAuth 修正 + Alpha Zoo 見出しの修正connector authorize が数分かかるブローカーのサインインの間も OAuth ハンドシェイクを維持し(VIBE_LIVE_AUTHORIZE_TIMEOUT_SECONDS で調整可能)、リトライ時に競合するコールバックサーバーを起動しなくなったため、トークンが確実に保存されます(#281#259 をクローズ、@Robin1987China さんに感謝)。Alpha Zoo ページが alpha 数を二重に表示しなくなりました(#287#286 をクローズ、@digger-yu さんに感謝)。定期リサーチにも端から端までの使い方ドキュメントが追加されました(#288)。

  • 2026-06-21定期リサーチ実行エンジン + レポートライブラリ + バックテスト後アトリビューション:定期リサーチがエンドツーエンドで動作するようになりました——デフォルト無効のバックグラウンド実行エンジン(VIBE_TRADING_ENABLE_SCHEDULER)が interval/cron で期限到来ジョブをセッションランタイム経由で実行します(#278、@mvanhorn さんに感謝、#254 をクローズ)。新しい /reports 実行ライブラリページでは、レポートを生成した実行を一覧・検索・フィルタでき、Run Detail + Compare へのリンクも備えます(#224、@LemonCANDY42 さんに感謝)。さらにバックテストのたびにエージェントが階層型アトリビューション——取引レベルの勝ち/負けトップ、ベータ回帰、市場レジーム分析、モンテカルロ並べ替え検定——をデータの有無とルーティング条件に応じて自動実行します(#280、@shadowinlife さんに感謝)。

  • 2026-06-20 🔬 Research Autopilot のループが完結(フェーズ3)+ ローダー OHLC 整合性ガード + 学術アルファ4本Research Autopilot仮説 → シグナルエンジン → バックテスト をエンドツーエンドで実行します——scaffold_signal_engine が runner 契約に準拠したエンジンを生成し、link_autopilot_backtest がバックテスト指標を仮説へ自動で書き戻します(68 ツール)(#267)。構造的な OHLC 健全性チェックがローダー境界で不正な bar(high < low、非正の価格、high/low が open/close を包含しない)を一括除去し、すべてのデータソースを保護します(#274、@Shizoqua さんに感謝)。さらに academic アルファファミリーが 6 → 10 に拡大——Jegadeesh リバーサル、George-Hwang 52週高値、Amihud 非流動性、Harvey-Siddique 歪度(456 ファクター)(#277、@Robin1987China さんに感謝)。

  • 2026-06-19 🚀 v0.1.10 — グローバルデータレイヤー:市場データソースが 10 → 18 に拡大(無料の Eastmoney / Sina / Stooq / Yahoo + キー必須の Finnhub / Alpha Vantage / Tiingo / FMP、IP-ban リスク順の fallback)。さらに 18 個の読み取り専用データツール(資金フロー、龍虎榜、北向き、信用取引、大口取引、SEC EDGAR + XBRL、財務、オプションチェーン、全市場スクリーニング…)を A 株 / 米国 / 香港にまたがり、すべて MCP 経由で公開。本リリースは 0.1.9 以降の全更新も同梱——10 のブローカーコネクタ、alpha compare、プロバイダ信頼性の大規模改修、任意のデータキャッシュ。pip install -U vibe-trading-ai

  • 2026-06-18 🔬 Research Autopilot 第1フェーズ + ローカル Data Bridge ローダー、加えて Discord セキュリティ通知:新しい run_research_autopilot + generate_backtest_configHypothesis → Research Goal → backtest を端から端までつなぎ(現在 50 ツール)、新しい local ローダーは自分の CSV / Parquet / DuckDB ファイルから直接 OHLCV を読み込みます(#260#252、@Robin1987China さんに感謝)。さらに DeepSeek DSML ツール呼び出しの解析と識別子封じ込め強化も入りました。⚠️ セキュリティ通知:以前のコミュニティ Discord 招待は、現在管理していないサーバー(偽の Collab.Land ウォレット「認証」フィッシング)に解決されます——すべて削除済みで、唯一の公式 Discord は HKUDS サーバー(discord.gg/6TdQnT5xcF)です。ウォレット接続を求めることは決してありません。

  • 2026-06-17 🧩 インストール互換性 + Opus/Kimi プロバイダ修正:通常の pip install vibe-trading-ai では、任意機能の pyharmonics / ta 依存チェーンを引かなくなりました。harmonic detection は vibe-trading-ai[harmonic] extra の背後に移しつつ、同梱 fallback detector はそのまま使えます(#250#249 をクローズ)。Agent loop は Opus 4.8+ が拒否する assistant-prefill handoff message を送らなくなり、Kimi/Moonshot は MOONSHOT_USER_AGENT で client User-Agent を上書きできます(#248#246#204 をクローズ)。follow-up tests は background-result と auto-compact の handoff 経路を直接カバーします(#251)。

  • 2026-06-16 🛡️ セキュリティ/API 強化 + GLM/Zhipu alias:Settings 書き込みは認証設定時に auth 必須になりました(#245);API session の shell-capable tools は明示的な VIBE_TRADING_ENABLE_SHELL_TOOLS=1 opt-in が必要です(#243);API key 設定時の local shutdown も auth 必須です(#241);loopback に見えるが信頼できない Host は local 扱いせず拒否します(#242)。実行時の細部も改善: Web chat は完了済み attempts と同期し(#236)、run card は非有限メトリクスを strict JSON として出力(#238)、不正な RSSHUB_TIMEOUT_S / RSSHUB_FETCH_BUDGET_S は安全に fallback(#240)、ddgs retry fallback は regression coverage 付きです(#239)。GLM/Zhipu は first-class provider alias となり、model-name inference も追加されました(#247#237 をクローズ)。

  • 2026-06-15 🧭 Web 検索の堅牢化 + Web UI のラン継続性修正web_search は単一エンジンがレート制限されても失敗しなくなりました——複数の無料・キー不要のエンジン(DuckDuckGo、Google、Bing、Brave、Mojeek、Yahoo)を順に照会し、リトライ/バックオフを行い、「結果なし」をエラーではなく空の回答として扱い、すべてのエンジンが制限された場合は素っ気ない ❌ ではなく実行可能なメッセージを返します(エンジン一覧は VIBE_TRADING_SEARCH_BACKENDS で上書き可能)(#232#231 をクローズ、@Ethan-sun01 さんに感謝)。Web UI では、ラン中にページを切り替えても固まらなくなりました——チャットは戻った際にライブストリームへ再購読し、見逃した進捗を再生します(#234)——そして停止ボタンはイテレーション境界だけでなく、ストリーミング中やツール間でも有効になりました(#235)。これにより #229 の両方が解決します(@kalkinj さんに感謝)。baostock loader は tushare 形式の 601398.SH に加え、ネイティブの sh.601398 / sz.000001 コードも受け付けるようになりました(#230、@bhlt さんに感謝)。

  • 2026-06-14 📊 ラン単位のトークン使用量 + Run Detail チャートの遅延読み込み: 各 agent ランは、プロバイダ報告のトークン使用量をラン単位の llm_usage.json として永続化するようになりました——プロバイダ/モデル、累計合計、イテレーションごとの件数——/runs/{id} に追加的に提供されるため、ランが終わってライブストリームが消えた後もトークンコストを監査できます(プロバイダ報告値のみ;prompt/内容のキャプチャや価格推定はなし)(#223、@LemonCANDY42 さんに感謝)。Run Detail ページは、もはや全シンボルのローソク足を最初に読み込みません: 既定の /runs/{id} レスポンスは変更なしのまま、UI はまずランのサマリーを描画し、オプトインの ?chart_payload=summary / ?chart_symbol= モードで各シンボルのチャートをオンデマンドに読み込みます。シンボルごとの読み込み状態と「全件読み込み + 進捗」コントロール付きです(#225、@LemonCANDY42 さんに感謝)。2 つの loader 修正で締めくくり: yfinance の排他的な end 境界が、要求範囲の最終取引日を取りこぼさなくなりました——ダウンロード呼び出しは end + 1 日 を渡し、キャッシュキーは元の範囲を保持します(#226、@gyx09212214-prog さんに感謝)——そして不正な CCXT_TIMEOUT_MS / OKX_TIMEOUT_S 値は、import 時に例外を投げて起動を妨げる代わりに、警告して既定値にフォールバックするようになりました(#227、@gyx09212214-prog さんに感謝)。

  • 2026-06-13 ↩️ CLI からセッションを ID で再開: インタラクティブ CLI が終了時に session-id を表示し、コピペ可能な vibe-trading resume <session-id> のヒントも添えるようになりました——終了したランの trace を探すのに、agent/sessions/ 配下のどのフォルダがタイムスタンプ的に最新かを当てる必要はもうありません。新しい vibe-trading resume <session-id> サブコマンドはその正確なセッションを再び開き、直近のターンを loop に再生します;存在しない id は空のセッションを黙って始めるのではなく即座にエラーで終了します(#218、@zwrong さんに感謝)。

  • 2026-06-12 🩺 プロバイダ信頼性の全面強化——DeepSeek ハング、Kimi 接続、ストリーミング死活:一連のプロバイダ報告——DeepSeek 実行が「Agent is working…」で停止(#208、@XYWOX さんに感謝)、reached max iterations がモデルの空応答を覆い隠す(#203、@mojianliang さんに感謝)、停止後に UI が復帰しない(#195、@mafia23 さんに感謝)、Kimi がクライアントを拒否(#204、@liao497 さんに感謝)——の根因は一つでした:すべての OpenAI 互換プロバイダが単一の shim を共有し、DeepSeek/Kimi/Gemini 固有の挙動をグローバルに適用し、ストリーム失敗を黙って握りつぶしていました。プロバイダ固有の挙動は明示的なケイパビリティ層に移行——reasoning の捕捉/再送、Gemini thought signature、Kimi の User-Agent、OpenRouter の reasoning body はそれぞれ自分のプロバイダにのみ適用され、相互汚染しません。reasoning のみのストリームはリアルタイムの**「Reasoning…」**インジケータを表示;ストリーム失敗は文脈付きの provider_stream_error を送出し、一時的な切断は 1 回だけ自動リトライ(決定的な 4xx は即時失敗)、遅い非ストリーミング呼び出しへの静かなフォールバックは廃止;モデルの空応答は empty_model_response として正しく診断;SSE ハートビートが再接続リプレイを壊さなくなり;スタックした読み取り専用ツールはタイムアウトします。新コマンド vibe-trading provider doctor は秘匿化済みの provider/モデル/パッケージ/プロキシのスナップショットを出力し、環境起因のハングをワンコマンドで切り分け。DeepSeek は pip install "vibe-trading-ai[deepseek]" で公式ネイティブアダプタを選択でき、kimi-k2.x の temperature=1 要件は自動適用——Kimi 経路は実 API でエンドツーエンド検証済みです(kimi-k2.6 のツール呼び出し + 厳格なマルチターン reasoning 再送)。

  • 2026-06-11 🐝 swarm worker が loader 層経由で市場データを取得するように: NVDA の投資委員会ランで一連のギャップが露呈しました——worker が場当たり的な yfinance スクリプトを書き、欠損した最新バー(出来高はあるが OHLC が空)を信じ、NaN が非厳密 JSON に漏れ、コンテキストを失った継続プロンプトが誤った preset にルーティングされていました(#198、卓越した診断と 2 つの修正 PR を寄せてくれた @BillDin さんに感謝)。swarm worker は MCP と同じ正規化 loader レジストリに裏打ちされたローカル get_market_data ツールを獲得——厳密 JSON、非有限浮動小数は null として直列化——すべての市場データ系 preset(13 preset、21 worker)に配線され、プロンプトポリシーが OHLCV 作業をツール優先に誘導します(#199)。run_swarm は明示的な preset_name を受け取り、曖昧な継続フラグメントは equity_research_team へ静かにフォールバックせず拒否されます(#200)。グラウンディングも賢くなりました: swarm プロンプト内の裸の米国ティッカー(例 NVDA)は NVDA.US に昇格され(ストップワードでガード)、worker は最初から権威ある事前取得価格を手にします。このツールはメイン agent レジストリにも加わり——現在 48 ツールです。さらに: Docker のデータがアップデートを跨いで保持されるように——永続メモリ、セッション検索インデックス、ユーザー作成スキル、shadow account、broker 設定は名前付きボリュームに置かれ、docker compose up --build でも消えません(#197、@FlyerJ さんに感謝)。

  • 2026-06-10 🐳 Docker からホスト側 Ollama に標準で到達可能に: コンテナ内の localhost はコンテナ自身を指すため、既定の OLLAMA_BASE_URL=http://localhost:11434 では Docker + Ollama 構成の LLM プリフライトが必ず失敗していました。docker-compose.yml は既定で http://host.docker.internal:11434 を指すようになり(OLLAMA_BASE_URL のエクスポートで上書き可)、host-gatewayextra_hosts マッピングも追加され、Docker Desktop だけでなく Linux でも同じファイルがそのまま動きます(#196、@ShahNewazKhan さんに感謝)。

  • 2026-06-09 🔑 別マシンから Web UI を開いたときのエラーをより明確に: API_AUTH_KEY 未設定のまま非ループバッククライアント(別のマシン、VM ホスト、LAN 上のスマートフォン)からチャットにアクセスすると、メッセージ送信・セッション一覧・live ステータスなどすべての機微なエンドポイントが 403 を返していましたが、チャットには汎用的な「Failed to send message, please retry.」しか表示されませんでした。送信パスが本当の理由——「Remote API access requires an API key. Add it in Settings, or run the backend on localhost for local-only use.」——を表示するようになり、README の Web UI セットアップも localhost と LAN の違いと 3 つの対処法(同じマシンで localhost を使う/API_AUTH_KEY を設定して Settings に一度入力する/Docker Desktop のホストゲートウェイには VIBE_TRADING_TRUST_DOCKER_LOOPBACK=1)を明記しました(#191、@mafia23 さんに感謝)。

  • 2026-06-08 🔧 Gemini 3.x マルチターンのツール呼び出し修正: Gemini 3.x の思考モデル修正が完成しました。6/05 のラウンドトリップ(#176)は in-memory 履歴のみを対象にしていましたが、実際の agent loop は履歴を OpenAI 形式の dict で再生し、LangChain がリクエスト構築前にツール呼び出しごとの thought_signature を捨てていたため、マルチターンのツール呼び出しが依然 missing thought_signature で 400 になっていました。これが invokestream が共有する唯一のチョークポイント _convert_input で再付与されるようになりました(並列呼び出し——N 個のうち最初の 1 つだけ署名される——も対象)(#184、@ngoanpv さんに感謝)。

  • 2026-06-07 🐝 チャットのタイムラインにライブ swarm ステータス: agent がマルチエージェント swarm(投資委員会、クオンツデスク、リスク委員会……)を起動すると、チャットに各 worker の状態——待機 / 実行中 / 完了 / 失敗 / ブロック / リトライ——をリアルタイムにストリーミングするインラインステータスカードが表示されるようになりました。独立した swarm ダッシュボードと同じエージェント単位の可視性です。ランタイムイベントは既存の /swarm/runs API を変えずにセッション SSE ストリームへブリッジされ、再接続や履歴再生時には完了済みカードが最終的な run_swarm 結果から復元されます(#188、@BillDin さんに感謝)。preset ルーティングも精密に: 明示的に指定された preset(例 investment_committee、アンダースコアの有無を問わず)がキーワードスコアより優先され、裸の IV デリバティブキーワードが「given」のような普通の単語に誤マッチしなくなりました(#189、@BillDin さんに感謝)。

  • 2026-06-06 ⚖️ Alpha 比較 —— CLI / Web UI / REST / agent の全面対応: 新しい alpha compare は、手で選んだ Alpha Zoo ファクターのショートリストを同じ universe・期間で総当たり比較し、IC 平均/標準偏差・IR・IC>0 比率・サンプル数で順位付けして、各ファクターのトップとの差を示します。zoo 全体の bench と違い、指定したファクターだけを評価します(新しい run_bench(only=…) のサブセットフィルタ)。3 つを比較しても zoo の 191 個すべてを走らせません。1 つの共有コアがすべての面を支えます: vibe-trading alpha compare <id1> <id2> … --sort ir(CLI)、Alpha Zoo Web UI の Compare ビュー(カタログでファクターをチェック → ワンクリック比較 + ストリーミング順位表)、POST /alpha/compare + SSE(REST)、読み取り専用の alpha_compare agent ツール(47 ツールに)。

  • 2026-06-05 🇮🇳 Dhan + Shoonya connector(インド)——ブローカー計 10 社: connector-first の取引レイヤーにインド市場向けの DhanShoonya(NSE/BSE 株式 + F&O)を追加し、ブローカーは計 10 社になりました。どちらもペーパー + 読み取り専用です——Longbridge と同様、API がランタイムのペーパー/live 判別子を公開しないため、place_order / cancel_order は最初の行で非ペーパー設定を硬く拒否します(ルール: ランタイムのペーパー/live ガードを持たないブローカーはペーパー + 読み取り専用に制限)(#181#174 をクローズ)。今回は Gemini 2.5 / 3.x の思考モデルも修正: ツール呼び出しごとの thoughtSignature が OpenAI 互換パスを往復するようになり、マルチターンの function calling が INVALID_ARGUMENT で失敗しなくなりました(#176#170 をクローズ、@mvanhorn さん & @jliu6789 さんに感謝)。452 個すべての Alpha Zoo ファクターに中国語 docstring(中文名称/说明/用途)が追加され(#180、@LeeCQiang さんに感謝)、**フロントエンドのテストスイート(vitest 197 件)**とバックエンドの認証 / パストラバーサル / CORS セキュリティテストが CI に加わりました(#175、@sambazhu さんに感謝)。

  • 2026-06-04 🗃️ 全 7 データソース対応のオプトインローカルキャッシュ: 新しい VIBE_TRADING_DATA_CACHE スイッチにより、各バックテスト loader——tushare、okx、ccxt、akshare、mootdx、yfinance、futu——が確定済みの過去 bar を ~/.vibe-trading/cache(ユーザーホーム、リポジトリには決して書き込まない)にキャッシュし、繰り返しおよび長期 / クロスマーケットのバックテストがネットワークを省略してプロバイダーのレート制限を回避できます。デフォルトはオフ。バッチ / 接続型 loader(yfinance、futu)はキャッシュが全ヒットすると一括ダウンロード / FutuOpenD 接続を完全にスキップし、staleness ガードは当日で終わる範囲(最後の bar がまだ形成中)を決してキャッシュせず、キャッシュされたフレームは新規取得とバイト単位で一致します(#177、@mvanhorn さんに感謝)。AI / 自動化支援 PR 向けのコントリビューターガイドも追加され、安全なローカルチェックと高リスクな broker/MCP/認証情報の領域を整理しています(#173)。

  • 2026-06-03 🧹 コミュニティトリアージ + トレース相関: ツール呼び出しのトレースエントリに発信元の call_id が付与され、run トレースの再生時に tool_result を対応する tool_call に突き合わせられます——引数プレビューはトレースファイルを小さく保つため切り詰めたままです(#168、@zwrong さんに感謝)。ソースコードのコメントは、外部コントリビューターが見つけられない内部専用のドキュメントパスを指さなくなりました(#166、@jaleelpersonal さんに感謝)。また、インストール時の langchain-community の依存解決の警告は失敗ではなく残存パッケージによる無害な通知であることを明確化し(#167)、Gemini 2.5/3.0 の関数呼び出しにおける thoughtSignature の往復処理を、完全な修正計画付きの help wanted タスクとして整理しました(#170、@jliu6789 さんに感謝)。

  • 2026-06-02 🔌 6 つの新しいブローカー connector(Tiger / Longbridge / Alpaca / OKX / Binance / Futu): connector-first の取引レイヤーに、IBKR(ローカル)と Robinhood(MCP)に加えて直接 SDK トランスポートが加わりました。各 connector は読み取り専用の account / positions / orders / quote / history に加え、ペーパー口座での発注を公開します——これらのブローカーのペーパー口座で戦略を検証できます。Tiger / Alpaca / OKX / Binance / Futu の 5 つは、Robinhood と同じ安全モデルの背後で、有界かつ mandate でゲートされた発注にも対応します: ユーザーがコミットした mandate(銘柄ユニバース/注文サイズ/エクスポージャー/レバレッジ/日次上限)、ファイルレベルの kill switch、fail-closed の発注前ゲート、完全な監査台帳。Longbridge はペーパー + 読み取り専用のみです(API がランタイムでのペーパー/live 判別子を公開しないため)。すべてのペーパー/live の区別はブローカー単位の構造的ガードです。新しい trading_place_order / trading_cancel_order ツールを追加し、mandate ユニバースに香港株と A 株のアセットクラスを追加しました。実験的 / 自己責任でご利用ください。

  • 2026-06-01 🚀 v0.1.9 リリースpip install -U vibe-trading-ai): 0.1.8 以降のすべてをまとめました。Connector-first ブローカー profile(IBKR ローカル読み取り専用 TWS / IB Gateway + OAuth・コミット済み mandate・order guard・audit ledger・instant halt の背後にある Robinhood Agentic Trading)。CLI / REST / MCP / Web を貫く Research Goal ランタイム。swarm 強化——live reconcile + MCP keepalive、operator 設定の worker MCP ツール、厳格 alpha-bench ランダムコントロール、失敗/stale run を再実行する新 retry_run(現在 36 MCP tools)。agent/cli/ パッケージ refactor + 刷新したターミナル UI、mootdx トークン不要の A 株 loader、backtest / agent loop / session の堅牢性 pass。--version は常にインストール済みパッケージと一致し、0.1.8 のドリフトを修正(#156)。

  • 2026-05-31 🔌 Connector-first ブローカーアーキテクチャ(IBKR + Robinhood): 取引アクセスは、個別のブローカー入口や live 入口ではなく、選択可能な connector profile から始まるようになりました。vibe-trading connector list/use/check/account/positions/orders/quote/history と MCP の trading_* ツールは同じ選択済み profile を共有し、paper/live は connector 配下の属性として扱われます。IBKR はローカル読み取り専用 TWS / IB Gateway profile ですぐ使え、公式 IBKR リモート MCP は安定した read tool 名が公開されるまで OAuth mcp.read probe として seed されています。Robinhood Agentic Trading は引き続き、OAuth、コミット済み mandate、order guard、audit ledger、instant halt の背後にある bounded live MCP connector です。

  • 2026-05-30 🧰 堅牢性パス — backtest、agent loop、session: LLM 生成の signal engine は、インスタンス化の前にインターフェース事前検証を通すようになりました。循環 self-import、generate() の欠落、デフォルト値のない __init__ 引数、誤った戻り値型といった典型ミスを早期に捕捉し、生の traceback ではなく実行可能な JSON エラーで返します (#149)。続くフォローアップで、ソースレベルの AST 検証エラーも同じクリーンな JSON エンベロープに乗せました。agent loop は 50 反復を使い切って出力のない failed 状態に陥らなくなりました——swarm worker の実績ある方式に倣い、反復予算の 80% で wrap-up nudge を注入し、最後の反復で tool 定義を外してテキスト回答を強制します (#148)。途中でのみ発火するようガードしてあり、research-goal の文脈を押しのけることはありません。session のメッセージ書き込みは append ごとに flush + fsync するようになり、高価な AI 応答が書き込み途中のクラッシュでも残ります。読み取り側は壊れた JSONL 行をスキップし(復旧用に先頭 200 文字をログ)、/messages エンドポイント全体を 500 にしません (#147)。Web の入力欄は IME の Enter 処理も修正し、変換確定の Enter で語の途中送信が起きないようにしました (#146)。

  • 2026-05-29 🔐 Robinhood Agentic Trading 対応(オプトイン・有界自律): Robinhood Agentic Trading に対応しました(リモート MCP、OAuth)。デフォルトでは無効かつ読み取り専用。エージェントはユーザーがコミットした mandate(銘柄/注文サイズ/エクスポージャー/レバレッジ/日次上限)の範囲内でのみ自律取引し、ファイルレベルの即時 kill switch、先制的なポジション手仕舞い、mandate の自動失効、完全な監査台帳、永続的な自律 runner を備えます。資金の保管なし・取引所運営なし——資金の保有と執行はブローカーが行い、こちらは意図を中継するだけです。実験的 / 自己責任でご利用ください。

  • 2026-05-28 🧪 Swarm の安全性 + 厳格 alpha gate + worker 側 MCP: Swarm DAG は上流タスクが失敗したとき下流タスクをブロックするようになりました (#145)。新規 run_bench_strict() は IC gate に同 universe のランダムコントロール + train/test OOS 分割を追加し、市場 beta を追っているだけの偽 factor を捕捉します (#143, @Soli22de さんに感謝)。Swarm worker は operator が設定した外部 MCP server からツールを呼べるようになり、信頼境界は専用テストで固定されています (#142, @shadowinlife さんに感謝)。

  • 2026-05-27 📊 mootdx A 株データソース + 出力スタイル: 新規 mootdx loader はネイティブ 通达信 TCP プロトコルで A 株 OHLCV を取得します(認証不要、IP 速度制限なし、日足 + 分足の 25 ページ walk-back ページング)。fallback chain では tushare と akshare の間に配置されます (#107)。CCXT loader は HTTP_PROXY/HTTPS_PROXY/ALL_PROXY を読み込み、制限されたネットワークから Binance/OKX の公開データを取得できるようになりました (#126, @ruok808 さんに感謝)。最終回答のレンダリングからは CLI と Web の見苦しい全幅 --- セパレータを削除しました: system prompt は markdown table と ## heading を促し、CLI renderer は単独 HR を defense-in-depth として除去し、chat bubble はすり抜けた <hr> を隠します (#139, @sdwxm188 さんに感謝)。

  • 2026-05-26Research Goal ライフサイクルの閉ループ化: Goal mode が実際のタスクランナーのように動くようになりました。Web UI で goal を作成すると session を作成または bind し、即座に kickoff turn を送ります。active goal は Web/API/CLI/MCP から continue/edit/cancel/complete でき、agent loop は最初の prompt だけでなく現在の goal snapshot(criteria、evidence、claims、open items)から前進します。criteria が covered でも goal が active のままなら silent stop ではなく audit/status update に入り、backend、CLI、MCP、frontend events の回帰で固定しました。

  • 2026-05-25 🧼 よりクリーンな Chat UI + composer workflow: Web UI は次の入力に集中できる形になりました。upload、swarm、research-goal mode は composer の + メニューにまとまり、floating panel で会話を邪魔しません。現在の context は input 上の compact chip として表示され、goal details は chip クリック時だけ inline 展開されます。旧 custom i18n layer も削除し、直接 English copy に統一。Full Report card は report-worthy run のみに表示され、local dev startup/status reporting もブラウザ smoke test 向けに安定化しました。

  • 2026-05-24 🎯 Research Goal runtime: backend、CLI、API/MCP、SSE、Web UI をまたぐ session-scoped Research Goal layer を追加しました。Goal は claim、acceptance criteria、evidence row、budget、completion policy を永続化します。agent tool は goal 作成と evidence 追加に対応し、/goal が CLI 入口になり、REST/MCP は goal snapshot と evidence write を公開し、SSE は chat client の状態を fresh に保ちます。後続 audit fixes では verified evidence をロックダウンし、agent tool からの live-trading risk tier をブロックし、CLI-created goal を後続 turn に接続し、session 削除時の goal ledger cleanup、replay-all 接続、frontend の cross-session snapshot race 修正を行いました。

  • 2026-05-23 🖥️ インタラクティブ CLI の刷新: ターミナル入口は大きな Vibe-Trading バナー、より見やすい prompt 区切り、前ターンの recap、実行後の所要時間、Claude Code 風の activity rail で live agent 作業を表示します。tool call、web/data fetch、shell 風 action、Markdown 回答、pipe table は読みやすい transcript として描画され、pipe や非 TTY 実行では自動化向けの plain-text 出力を維持します。生成 CLI スクリーンショットは committed docs ではなく local artifact として扱い、リポジトリを軽く保ちます。

  • 2026-05-22 🧭 Swarm リカバリ + MCP keepalive: Swarm の状態は読み取りのたびに live task ファイルから reconcile されるようになり、API/MCP/SSE/list ビューはクラッシュ済みまたは stale な run を復旧し、永遠に running のスナップショットを見せ続けません。run_swarm は polling 中に MCP progress heartbeat を送り、transport drop 後に再接続するクライアントでも handle を拾えるよう最初のフレームを swarm_started run_id=<id> に固定しました。worker も LLM streaming、grounding fetch、tool execution の各段階で heartbeat を出します。stale-run reaper は run ごとの閾値を使い、task 状態から終端状態を導出します。SwarmTool は待機予算が尽きても進行中の team をキャンセルせず、MCP クライアントは reap_stale_runs() で明示的に cleanup できます。今日の DX pass では provider の既定モデルも更新し、CI syntax check を新しい agent/cli/ パッケージに合わせました。hydrate、終端復旧、stale reap、keepalive cadence、env parsing、heartbeat wiring を 22 件の新規回帰テストでカバーし、swarm/MCP 全体スイートは 169 passed、4 skipped です。

  • 2026-05-21 🧱 CLI パッケージリファクタ: agent/cli.py(3216 LOC)を agent/cli/ パッケージへ分割 — インタラクティブな入口、slash ルーター、Rich コンポーネント、そしてすべてのサブコマンドを保ち cli.cmd_* / cli._INIT_ENV_PATH / cli.Confirm などの公開シンボルを再エクスポートする _legacy.py shim。新しい FastAPI ミドルウェアはブラウザが /runs/{id} または /correlation を直接開いた際に SPA シェルを返し、同じ絞り込みを Vite dev プロキシにも反映。バージョン文字列は cli/_version.py で一本化(--version とバナーのドリフト解消)、python -m cli__main__.py で復活、chat ゲートを絞り chat --help / chat extra は REPL に飲み込まれずレガシー argparse に届きます。

  • 2026-05-20 🔬 Hypothesis Registry CLI: 2026-05-16 にバックエンドのみで公開された Hypothesis Registry の CLI 側を完成させました。vibe-trading hypothesis list は Rich テーブルまたは JSON を出力(--status フィルタと --limit をサポート)、show <id> はリンクされた run card を含む詳細パネルを描画、invalidate <id> --note "..." はステータスを rejected に切り替え、--note を省略すると既存の invalidation notes を保持します。既存の VIBE_TRADING_HYPOTHESES_PATH 環境変数オーバーライドに加え、呼び出し単位の --path も使えます。配線、JSON 出力、ステータスフィルタ、limit、ID 不在エラー、ノート永続化を 22 のテストでカバー。

  • 2026-05-19ツールのライブフィードバック + グレースフルキャンセル: 長時間実行されるツール(バックテスト、大きい PDF、swarm worker)が固まったように見えなくなりました。各ツール呼び出しは 3 秒ごとのハートビートに加え、構造化された段階進捗を発行します — run_backtest はフェーズマーカー(validate / simulate / finalize)、read_document は PDF ではページ単位、Excel ではシート単位、read_urlfetch / parse をマーク。CLI の Rich Live ダッシュボードは Unicode スピナー、ASCII プログレスバー、ETA を描画し、ツール名でキー付けして最大 3 つの並列ツールをスタック表示します。フロントエンドのチャットには新規 ToolProgressIndicator を追加し、rAF コアレッシング、ARIA role="status" + スクリーンリーダー向けの非表示 <progress>、合計が既知の場合は determinate な ProgressRing SVG を備えます。CLI 実行中の最初の Ctrl+Cagent.cancel() を呼んでグレースフル終了(現在のステップが完了し、trace がクリーンに閉じる)し、2 秒以内に 2 度目を押すと強制終了します。再利用可能なプリミティブ ProgressBar.tsxlib/tools.ts(共有ツール名 i18n マッピング)も抽出。

  • 2026-05-18 🧹 クリーンアップ + 3 つの潜在バグ修正: CompositeEngine が取引所サフィックスのない中国先物コード(RB2410 等)を GlobalFuturesEngine に誤ルーティングしていた問題を修正。_is_china_futures を共有の _market_hooks モジュールに移し、製品コード表を大小文字正規化 + 非中国取引所のガードを追加、回帰ケース 9 件を新設しました。session FTS5 インデックスがタイムスタンプを永続化するようになり、クロスセッション検索を日付ソートできるようになりました。同じ修正で、re-upsert 経路が started_at を wall-clock で上書きしていた副次バグも解消しました。Vite 開発プロキシに /alpha を追加し、AlphaZoo ページが npm run dev で解決されるようになりました。tests/test_e2e_harness_v2.py(実 LLM の e2e スイート)は VIBE_TRADING_RUN_LIVE_E2E=1 でゲート化し、CI が環境変数の有無で形を変えないようにしました。ruff に factor zoo 用の per-file-ignores を追加(F401 ノイズ 3783 → 0)、フロントエンド tsconfig は noUnusedLocals / noUnusedParameters を有効化して回帰ガードとし、gtja191 alpha の未使用 vw = vwap(...) 雛形 76 件も削除しました。正味 -918 行

  • 2026-05-17 🧬 Alpha Zoo v1(0.1.8): 4 つの zoo にまたがる 452 個の事前構築 quant alpha を同梱しました — qlib158(Microsoft Qlib の Alpha158 特徴量、Apache-2.0 出処明示)、alpha101(Kakushadze の "101 Formulaic Alphas" を arXiv:1601.00991 から論文ベースで書き直し)、gtja191(国泰君安 2014 年の短期取引型 alpha レポート)、academic(Fama-French 5 + Carhart 動量の価格ベース proxy 実装)。任意の universe で 1 行 CLI: vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025。AST 純関数ゲート、look-ahead ガードテスト、pytest-socket ネットワーク遮断、各 zoo ごとの LICENSE.md、コミュニティ PR 用の DCO 署名フローも同梱。Alpha Library 自動レンダリングは vibetrading.wiki/alpha-library/、Research Lab には Which of the 191 GTJA alphas still work in 2026? を公開。

  • 2026-05-16 🧪 リサーチ基盤アップデート: backend Hypothesis Registry を追加し、create_hypothesisupdate_hypothesislink_backtestsearch_hypotheses を提供します。外部コンテンツ reader は warning-only の security_warnings を付与し、Shadow Account scanner は旧 calendar-phase stub から決定的な OHLCV feature evaluation に移行しました。

  • 2026-05-15 🪪 Run 詳細ページが metrics と artifacts の隣に Trust Layer の run card を描画するようになり、2026-05-12 に入った run_card.json 側の UI 半分が揃いました。PersistentMemory.add() も #108/#109/#110 の triage を受け、長さ、空・空白だけの name、C0/C1 制御バイトの各経路で強化されました(#112、@Teerapat-Vatpitak に感謝)。

  • 2026-05-14 🌐 公開 Wiki が vibetrading.wiki で公開され、docs、tutorials、Research Lab、Alpha Library セクションを Cloudflare Pages から配信します。永続メモリも CLI から vibe-trading memory list/show/search/forget で確認できるようになり(#102、@Teerapat-Vatpitak に感謝)、メモリの tokenization/slug はタイ語、アラビア語、ヘブライ語、キリル文字にも対応しました(#104)。

  • 2026-05-13 🧭 Swarm 実行では、取得済みの市場データでワーカーを grounding し、永続化レポートもより整理されました(#93#84)。

  • 2026-05-12 🧾 バックテストは、再現可能なリサーチ実行のために artifacts と並んで run_card.jsonrun_card.md を出力するようになりました。

  • 2026-05-11 🧭 メモリ slug、swarm 集計、CLI プリフライト: 永続メモリのファイル slug 生成で CJK 文字を保持するようになり、中国語/日本語/韓国語ノートの静かなファイル名衝突を防ぎます(#95、@voidborne-d に感謝)。Swarm run の合計は provider が返す token usage を優先し、従来の推定フォールバックも維持します(#94、@Teerapat-Vatpitak に感謝)。CLI run UI には一般的な環境問題を早めに見つける起動時プリフライトチェックも入りました(#96、@ykykj に感謝)。

  • 2026-05-10 🧱 回帰ガードレール + run メタデータ: Memory recall はアンダースコアを token 境界として扱うようになり、mcp_wiring_test のような snake_case の保存メモリが "mcp wiring" のような自然言語クエリに一致します(#87、@hp083625 に感謝)。MCP server には initialize → tools/listtools/call を通す subprocess smoke test を追加し、初回呼び出し deadlock 経路の回帰を防ぎます(#86)。さらに Windows のパス依存テスト、API の best-effort 例外処理、backtest run_dir allowed-root 検証、SwarmRun provider/model メタデータの低リスク強化も入りました(#88#90#91#92、@Teerapat-Vatpitak に感謝)。

  • 2026-05-09 🛡️ API パス強化 + MCP server 安定化: API の run/session ルートは参照前にパス ID を検証し、改行を含む不正なパラメータを拒否し、その挙動を auth/security 回帰テストで固定しました(#80、@SJoon99 に感謝)。MCP server は tools/call を処理する前にメインスレッドでツールレジストリを事前ウォームアップし、lazy tool discovery の初回呼び出しデッドロックを回避します(#85、@Teerapat-Vatpitak に感謝)。Vite dev proxy も VITE_API_URL を尊重し、非デフォルトのバックエンドターゲットを使えるようになりました(#82、@voidborne-d に感謝)。

  • 2026-05-08 🧾 Tushare 財務諸表フィールドをフィルターへ: A 株の日次バックテストで fundamental_fields から PIT-safe な財務諸表フィールドを要求できるようになり、signal engine は公告/開示日以降に income_total_revenueincome_n_incomebalancesheet_total_hldr_eqy_exc_min_intfina_indicator_roe など表名プレフィックス付き列でスクリーニングできます(#76、@mrbob-git に感謝)。後続の強化により、明示的な財務諸表フィールド要求で Tushare enrichment が失敗した場合は、価格バーだけに静かに戻るのではなく即時失敗します(#77)。

  • 2026-05-07 📈 Tushare fundamentals + コミュニティ整理: ファンダメンタル調査ワークフロー向けに point-in-time の TushareFundamentalProvider 契約を追加し、プロジェクトの TUSHARE_TOKEN 環境変数パスを回帰テストでカバーしました(#74)。コミュニティ整理では、Vibe-Trading は当面 UI を単一言語に絞って高速反復すること、DuckDuckGo ベースの web_search が既に同梱されているため重複する検索依存を追加しないこと、非公式ホスト先は API key やデータソース token を入力する信頼済み場所として扱わないことも明確にしました。

  • 2026-05-06 🚀 v0.1.7 リリースRelease notespip install -U vibe-trading-ai): セキュリティ境界強化版を PyPI と ClawHub に公開しました。API/読み取り/アップロード/ファイル/URL/生成コード/shell ツール/Docker の既定境界をより安全にしつつ、localhost の CLI/Web UI ワークフローは低摩擦のままです。このサイクルには Web UI Settings、相関ヒートマップ、OpenAI Codex OAuth、A 株 pre-ST フィルター、対話型 CLI UX、swarm preset inspection、配当分析、開発ワークフロー改善、frontend build-dependency floor の監査も含まれます。0.1.7 のコントリビューターと、協調的なセキュリティ検証を行った lemi9090 (S2W) に感謝します。

  • 2026-05-05 🛡️ セキュリティ境界の追加強化: 明示的な CORS origins、Settings の認証情報表示、Web URL 読み取り、Shadow Account コード生成まわりの残りのセキュリティ境界を補強し、それぞれに回帰テストを追加しました。通常の localhost CLI/Web UI ワークフローは従来どおりです。リモートデプロイでは引き続き API_AUTH_KEY と明示的な信頼済み origins を設定してください。

  • 2026-05-04 🖥️ インタラクティブ CLI UX + CI 整理: インタラクティブモードに、provider/model、セッション時間、直近実行時間、累計ツール呼び出し統計を表示するライブ下部ステータスバーを追加。さらに prompt_toolkit により上下キーの履歴移動と左右キーのカーソル編集に対応しました(#69)。prompt_toolkit または TTY が利用できない場合は、従来どおり Rich prompt にフォールバックします。CI のパス期待値も強化済みファイル import サンドボックスとクロスプラットフォームな /tmp 解決に合わせ、main はグリーンに戻りました(bb67dc7)。

  • 2026-05-03 🛡️ セキュリティハードニングパッチ: 非ローカルデプロイ向けの既定 API 認証を強化し、機密性の高い run/session/swarm 読み取りを保護、アップロードとローカルファイル読み取り境界を制限、shell 系ツールをエントリーポイント別に制御、生成戦略を import 前に検証し、Docker イメージは既定で非 root ユーザーかつ localhost 限定ポート公開で動作します。ローカル CLI と localhost Web UI は低摩擦のままです。リモート API/Web デプロイでは API_AUTH_KEY を設定してください。

  • 2026-05-02 🧭 配当分析 + ロードマップ刷新: インカム株、配当の持続性、増配、株主還元利回り、権利落ちメカニクス、利回りの罠チェックに対応する dividend-analysis skill を追加し、bundled-skill 回帰テストで固定しました。公開ロードマップは Research Autopilot、Data Bridge、Options Lab、Portfolio Studio、Alpha Zoo、Research Delivery、Trust Layer、Community 共有に絞りました。

  • 2026-05-01 🔥 相関ヒートマップ + OpenAI Codex OAuth + A 株 pre-ST フィルター: 新しい相関ダッシュボード/APIでローリングリターン相関を計算し、ポートフォリオや銘柄分析向けに ECharts ヒートマップで可視化します(#64)。OpenAI Codex provider は vibe-trading provider login openai-codex による ChatGPT OAuth に対応し、Settings メタデータとアダプター回帰テストも追加(#65)。A 株の ST/*ST リスクスクリーニング用 ashare-pre-st-filter skill を追加・強化し、Sina 処分公告の関連性フィルターにより証券口座リスト内の言及が E2 回数を水増ししないようにしました(#63)。

  • 2026-04-30 ⚙️ Web UI Settings + validation CLI 強化: LLM provider/model、Base URL、reasoning effort、データソース認証情報をローカルで設定できる Settings ページを追加。settings API は local/auth で保護され、provider メタデータもデータ駆動設定に移行しました(#57)。さらに python -m backtest.validation <run_dir> を強化し、引数なし・空パス・不正パス・存在しないパス・ディレクトリでないパスを検証開始前に分かりやすく失敗させます(#60)。

  • 2026-04-28 🚀 v0.1.6 リリースpip install -U vibe-trading-ai): pip install / uv tool install 後に vibe-trading --swarm-presets が空を返す問題を修正(#55)。プリセット YAML は src.swarm パッケージ内に同梱され、6 件の回帰テストで固定されています。加えて AKShare loader が ETF(510300.SH)と forex(USDCNH)を正しい endpoint にルーティングし、registry fallback も強化しました。v0.1.5 以降の更新を集約: benchmark comparison panel、/upload streaming + size limits、Futu loader(HK + A 株)、vnpy export skill、security hardening、frontend lazy loading(688KB → 262KB)。

  • 2026-04-27 📊 ベンチマーク比較パネル + アップロード安全性: バックテスト出力に benchmark comparison panel(ticker / benchmark return / excess return / information ratio)を追加し、yfinance 経由で SPY、CSI 300 などを解決します(#48)。加えて /upload は request body を 1 MB chunks で stream し、MAX_UPLOAD_SIZE 超過時に中断するため、過大/不正な client の下でもメモリを抑えます(#53)。4 ケースの回帰テストで固定されています。

  • 2026-04-22 🛡️ ハードニング + 新規連携: safe_path でパス封じ込めを強制し、journal/shadow tool sandbox、MANIFEST.in による .env.example / tests / Docker files の sdist 同梱、route-level lazy loading による frontend 初期 bundle 688KB → 262KB を実施。さらに Futu data loader for HK & A-share equities(#47)と vnpy CtaTemplate export skill(#46)も追加しました。

  • 2026-04-21 🛡️ Workspace + docs: 相対 run_dir を active run dir に正規化しました(#43)。README usage examples も追加しました(#45)。

  • 2026-04-20 🔌 Reasoning + Swarm: reasoning_content をすべての ChatOpenAI path で保持し、Kimi / DeepSeek / Qwen thinking が end-to-end で動作します(#39)。Swarm streaming と clean Ctrl+C も入りました(#42)。

  • 2026-04-19 📦 v0.1.5: PyPI と ClawHub に公開。python-multipart CVE floor bump、新規 MCP tools 5 つ接続(analyze_trade_journal + shadow-account tools 4 つ)、pattern_recognitionpattern registry fix、Docker dep parity、SKILL manifest sync(22 MCP tools / 71 skills)。

  • 2026-04-18 👥 Shadow Account: broker journal から strategy rules を抽出 → market 横断で shadow を backtest → 8-section HTML/PDF report で取りこぼし(rule violations、early exits、missed signals、counterfactual trades)を正確に可視化。新規 tools 4 つ、skill 1 つ、合計 32 tools。Trade Journal + Shadow Account samples も Web UI welcome screen に追加されました。

  • 2026-04-17 📊 Trade Journal Analyzer + Universal File Reader: broker exports(同花順/東財/富途/generic CSV)を upload → auto trading profile(holding days、win rate、PnL ratio、drawdown)+ 4 bias diagnostics(disposition effect、overtrading、chasing momentum、anchoring)。read_document は PDF、Word、Excel、PowerPoint、images(OCR)、40+ text formats を 1 つの unified call に dispatch します。

  • 2026-04-16 🧠 Agent Harness: Persistent cross-session memory、FTS5 session search、self-evolving skills(full CRUD)、5-layer context compression、read/write tool batching。27 tools、107 new tests。

  • 2026-04-15 🤖 Z.ai + MiniMax: Z.ai provider(#35)、MiniMax temperature fix + model update(#33)。13 providers。

  • 2026-04-14 🔧 MCP Stability: stdio transport 上の backtest tool Connection closed error を修正しました(#32)。

  • 2026-04-13 🌐 Cross-Market Composite Backtest: 新しい CompositeEngine が mixed-market portfolios(例: A-shares + crypto)を shared capital pool と per-market rules で backtest します。swarm template variable fallback と frontend timeout も修正しました。

  • 2026-04-12 🌍 Multi-Platform Export: /pine が strategies を TradingView(Pine Script v6)、TDX(通达信/同花顺/东方财富)、MetaTrader 5(MQL5)へ 1 コマンドで export します。

  • 2026-04-11 🛡️ Reliability & DX: vibe-trading init .env bootstrap(#19)、preflight checks、runtime data-source fallback、hardened backtest engine。Multi-language README(#21)。

  • 2026-04-10 📦 v0.1.4: Docker fix(#8)、web_search MCP tool、12 LLM providers、akshare/ccxt deps。PyPI と ClawHub に公開。

  • 2026-04-09 📊 Backtest Wave 2: ChinaFutures、GlobalFutures、Forex、Options v2 engines。Monte Carlo、Bootstrap CI、Walk-Forward validation。

  • 2026-04-08 🔧 Multi-market backtest with per-market rules、Pine Script v6 export、5 data sources with auto-fallback。


✨ 主な機能

Self-improving trading agent

🔍 自己改善型トレーディングエージェント

• 自然言語による市場リサーチ
• 戦略ドラフトとファイル/Web 分析
• メモリに支えられたワークフロー
Multi-agent trading teams

🐝 マルチエージェント・トレーディングチーム

• 投資、クオンツ、暗号資産、リスクの各チーム
• 進捗ストリーミングと永続化レポート
• 取得済み市場データで grounding されたワーカー
Cross-market data and backtesting

📊 クロスマーケットデータ & バックテスト

• A/HK/US/カナダ/インド/韓国株式、暗号資産、先物、FX
• データフォールバックと複合バックテスト
• PIT データ、検証、run cards
Shadow Account

👥 Shadow Account

• ブローカー取引日誌の行動診断
• ルールベースの Shadow Account 比較
• エクスポート可能な監査レポートと戦略コード

💡 Vibe-Trading とは?

Vibe-Trading は、金融に関する問いを実行可能な分析へ変換するためのオープンソースのリサーチワークスペースです。自然言語プロンプトを、市場データ loader、戦略生成、バックテストエンジン、レポート、エクスポート、永続リサーチメモリへ接続します。

研究、シミュレーション、バックテストのために設計されています——さらに、お望みであれば、ご自身が認可したブローカー(例: Robinhood Agentic Trading)を通じた自律取引も可能です。資金は一切保管せず、設定した制限を超える取引は決して行わず、いつでも即座に停止できます。


✨ できること

タスク 出力
トレーディングの問いを投げる ツール、データ、ドキュメント、再利用可能なセッション文脈を使った市場リサーチ。
戦略アイデアをバックテストする 戦略コード、指標、ベンチマーク文脈、検証 artifacts、run cards。
自分の取引をレビューする ブローカー取引日誌の解析、行動診断、ルール抽出、Shadow Account 比較。
ドキュメントとチャートを読む PDF / DOCX / XLSX / PPTX / 画像を pluggable OCR(read_document)で解析し、チャートのスクリーンショットを vision モデル(analyze_image)で意味的に読み取る。
機関投資家の届出とファンドの中身を読む SEC 13F 保有(四半期比の増減付き)、市場をまたぐ ETF 構成銘柄、イベント契約の含意確率、arXiv / OpenAlex からの factor 抽出 —— すべて読み取り専用、無料の公開データ。
反復リサーチを改善する 永続メモリと編集可能な skills により、有用な手順を再利用可能なワークフローへ変換。
アナリストチームを走らせる 投資、クオンツ、暗号資産、マクロ、リスクのワークフロー向けマルチエージェント・リサーチレビュー。
リサーチを IM チャンネルへ接続する WebSocket、Telegram、Slack、Discord、Matrix、WhatsApp、Signal、QQ/NapCat、WeChat/WeCom、Feishu/Lark、DingTalk、Teams、email、Mochat から同じ session runtime を CLI、REST、Web UI で管理。
使える artifacts を出力する レポート、TradingView Pine Script、TDX、MetaTrader 5、MCP tools、後続リサーチセッション。
事前構築 alpha zoo をベンチ 462 個の alpha 因子(Qlib 158 + Kakushadze 101 + GTJA 191 + academic + PIT-safe fundamental)に対し、1 行 CLI で IC + IR + alive/reversed/dead 分類を実行
相関レジームを見抜く /correlation 面上のエッジ密度 + ヒステリシスのタイムライン。市場が 1 つのブロックに融合するタイミングを示す —— シグナルではなく記述的なリスクコンテキスト。

⚡ クイック例

pip install vibe-trading-ai

# 自然言語リサーチ
vibe-trading run -p "Backtest a BTC-USDT 20/50 moving-average strategy for 2024, summarize return and drawdown, then export the report"

# 事前構築 alpha zoo を 1 行でベンチ
vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20
vibe-trading --upload trades_export.csv
vibe-trading run -p "Analyze my trading behavior, extract my shadow strategy, and compare it with my actual trades"

👥 Shadow Account

Shadow Account は、汎用的な戦略テンプレートではなく、あなた自身の取引記録から始めます。

ブローカー export をアップロードし、エージェントに行動を要約させたうえで、実際の取引経路をルールベースの shadow strategy と比較します。

ステップ エージェントの出力
1. 取引日誌を読む 同花順、东方财富、富途、generic CSV 形式のブローカー export を解析します。
2. 行動をプロファイルする 保有日数、勝率、PnL ratio、drawdown、disposition effect、overtrading、momentum chasing、anchoring checks。
3. ルールを抽出する 繰り返し現れる entries/exits を、曖昧な要約ではなく明示的な strategy profile に変換します。
4. shadow を実行する 抽出したルールをバックテストし、rule breaks、early exits、missed signals、alternative trade paths を強調します。
5. レポートを届ける 後から確認、アーカイブ、または次回セッションで改善できる HTML/PDF report を生成します。
vibe-trading --upload trades_export.csv
vibe-trading run -p "Analyze my trading behavior, extract my shadow strategy, and compare it with my actual trades"

🧪 リサーチワークフロー

多くの実行は、同じ evidence path をたどります。リクエストを routing し、適切な市場文脈を読み込み、ツールを実行し、出力を検証し、artifacts を確認可能な形で残します。

レイヤー 何が起きるか
Plan 必要な finance skills、tools、data sources、必要に応じて swarm preset を選びます。
Ground A 株、HK/US/カナダ株式、暗号資産、先物、FX、documents、Web context を利用可能な loaders から取得します。
Execute テスト可能な strategy code を生成し、tools を実行し、対応する backtest engine または analysis workflow を使います。
Validate metrics、benchmark comparison、Monte Carlo、Bootstrap、Walk-Forward、run cards、必要な warnings を追加します。
Deliver TradingView、TDX、MetaTrader 5、MCP clients、後続セッション向けの reports、artifacts、tool traces、exports を返します。

📡 データソースとスマートフォールバック

1 回の get_market_data 呼び出しで 23 の無料マーケットデータソース(およびオプションの有料マーケットプレイス QVeris)にアクセスできます。source: "auto" を指定すれば、loader が銘柄に応じてソースを選び、IP 規制リスクの順に並んだ市場別チェーンをたどります。規制を受けない公開ソースを先に、スロットリングや key を要するソースを最後に試します。設定不要、単一障害点なし。

Source Markets Auth Role
tencent · mootdx A-share + HK none never IP-banned (mootdx = 通达信 TCP)
eastmoney A / US / HK none OHLCV + deep fundamentals & flow tools (throttled)
baostock · akshare A (+ US/HK/futures/macro/fx) none free fallbacks
tushare A / HK / futures / fund / macro token richest A-share
yahoo US / HK / カナダ none direct chart/quotes/options;TSX .TO / TSXV .V
sina · stooq US none K-line to 1984 · EOD CSV
yfinance US / HK / カナダ none wrapper;TSX .TO / TSXV .V はそのまま使用
longbridge US / HK App Key + App Secret + Access Token optional historical OHLCV source; install the optional SDK
finnhub · alphavantage · tiingo · fmp US key optional providers
qveris グローバル・マルチアセット key · credits プレミアムマーケットプレイス — 1つの key で 63+ providers(明示指定のみ、auto フォールバック対象外)
okx · ccxt · binance crypto none OKX + 100+ exchanges + Binance historical / USD-M perps
futu HK / A OpenD optional local FutuOpenD
mt5 forex / metals MT5 terminal MetaTrader 5 (Exness-style) forex / metal bars, 1m–1D
pykrx 韓国(KRX:KOSPI/KOSDAQ) 不要 .KS / .KQ の KOSPI / KOSDAQ 日足(任意の krx extra)
india_broker インド(NSE/BSE) ブローカーログイン .NS / .BO 向けの読み取り専用 Shoonya / Dhan bars(フォールバックチェーン末尾)
local any none your own CSV / Parquet / DuckDB via local: prefix

フォールバックチェーン(IP 規制リスク順):

  • A 株tencent · mootdx · eastmoney · baostock · akshare · tushare · local
  • 米国株yahoo · stooq · sina · eastmoney · yfinance · tiingo · fmp · finnhub · alphavantage · longbridge · akshare · local
  • 香港株tencent · eastmoney · yahoo · futu · akshare · yfinance · tushare · longbridge · local
  • インド株(NSE/BSE)yahoo · yfinance · india_broker · local
  • 韓国(KOSPI/KOSDAQ)pykrx · yahoo · yfinance · local
  • 暗号資産okx · ccxt · binance · yfinance · local
  • 為替/貴金属mt5 · yfinance · akshare · local  ·  (先物 / ファンド / マクロ → tushare/aksharelocal)

Longbridge を明示的に使う

Longbridge は米国株/香港株のヒストリカル OHLCV を提供する任意の loader です。SDK のインストール:

pip install "vibe-trading-ai[longbridge]"

.env に 3 つの認証情報を設定します:

LONGBRIDGE_APP_KEY=...
LONGBRIDGE_APP_SECRET=...
LONGBRIDGE_ACCESS_TOKEN=...

バックテストでは config.jsonsource を指定します:

{
  "codes": ["QQQ.US"],
  "start_date": "2025-01-01",
  "end_date": "2025-01-10",
  "interval": "1D",
  "source": "longbridge"
}

Agent との対話では明示的に依頼してください:「Longbridge を使って QQQ.US のヒストリカルデータを取得して」。この明示指定は source: "auto" とは別物で、auto は市場ごとの通常のフォールバックチェーンをそのまま使います。

OHLCV にとどまらず、22 の読み取り専用データツールがファンダメンタルズと資金フローまで踏み込みます。資金フロー、龍虎榜、北向資金、信用取引、大口取引、株主数、ロックアップ、セクター、調査レポート、ニュース、SEC filings、財務諸表、オプションチェーン、銘柄プロファイル、市場スクリーニング、銘柄検索、マクロ、問財、機関投資家保有(13F)、ETF ルックスルー、予測市場、論文検索まで、すべて MCP 経由で公開されます。明示的な local: 銘柄が暗黙のうちにネットワークソースへフォールバックすることは決してありません。

💎 オプションのプレミアムデータ — QVeris

QVeris

データは無料ルーティングが標準、必要なときだけプレミアム。 既定では 23 の内蔵ソースが自動フォールバックし、key も費用も不要です。QVeris を使うと、63+ providers と 10,000+ capabilities(per QVeris)で、オプション Greeks、高度なファンダメンタルズ、中国・香港・グローバルデータ、マクロ、暗号資産、ニュース、filings を補えます。失敗した call は課金されません。Settings → QVeris または vibe-trading data mode paid で有効化できます。

QVeris disclosure: Vibe-Trading の紹介リンク から登録すると +1,000 クレジット が追加付与され、プロジェクトの支援にもなります。


🔩 詳細な機能

メイン README を読みやすく保つため、詳細な一覧は以下に折りたたんでいます。利用できる構成要素を確認したいときに開いてください。

Finance Skill Library 9カテゴリにわたる89 skills
  • 📊 89 の金融特化 skills を 9 カテゴリに整理
  • 🌐 伝統的市場から crypto & DeFi まで完全カバー
  • 🔬 データ取得からクオンツリサーチまでを横断する包括的能力
Category Skills Examples
Data Source 10 data-routing, tushare, yfinance, okx-market, akshare, mootdx, ccxt, eastmoney, sec-edgar, qveris
Strategy 19 strategy-generate, cross-market-strategy, technical-basic, candlestick, ichimoku, elliott-wave, smc, multi-factor, ml-strategy
Analysis 23 factor-research, correlation-regime, macro-analysis, global-macro, valuation-model, investor-lenses, credit-analysis, dividend-analysis
Asset Class 9 options-strategy, options-advanced, convertible-bond, etf-analysis, asset-allocation, sector-rotation
Crypto 7 perp-funding-basis, liquidation-heatmap, stablecoin-flow, defi-yield, onchain-analysis
Flow 8 hk-connect-flow, us-etf-flow, edgar-sec-filings, financial-statement, adr-hshare
Tool 10 backtest-diagnose, report-generate, pine-script, doc-reader, web-reader, vnpy-export, trade-journal
Research 2 alpha-zoo, strategy-dev-manager
Risk Analysis 1 ashare-pre-st-filter
カスタムデータソース 独自の過去 OHLCV loader を登録

loader を同梱していない市場やベンダーが必要ですか?独自の過去バー loader を追加し、 source="<name>" で選択できます。以下の手順はパッケージのソースを編集するため、 clone から実行してください(pip install -e .)。

  1. loader を書く —— agent/backtest/loaders/<name>_loader.py を作成し、 DataLoaderProtocol を満たすクラス(duck-typed、基底クラス不要)を定義して @register を付けます:

    import pandas as pd
    from backtest.loaders.registry import register
    
    @register
    class DataLoader:
        name = "mysource"            # the value you pass as source=
        markets = {"us_equity"}      # a_share/us_equity/hk_equity/crypto/futures/fund/macro/forex
        requires_auth = False
    
        def is_available(self) -> bool:
            return True              # token present? network reachable?
    
        def fetch(self, codes, start_date, end_date, *, interval="1D", fields=None):
            # return {symbol: DataFrame indexed by trade_date,
            #         columns: open, high, low, close, volume}
            ...
  2. モジュールを登録 して @register を発火させる —— agent/backtest/loaders/registry.py_loader_modules"backtest.loaders.<name>_loader" を追加します。

  3. 名前を許可 して設定バリデーションを通す —— agent/backtest/runner.py_VALID_SOURCES"mysource" を追加します。

  4. (任意) registry.py のある市場の FALLBACK_CHAINS に組み込むと、 source="auto" からも到達できます。

  5. 使う —— バックテスト設定で source="mysource"、または CLI / agent 経由で。

リアルタイムの ticks / 板情報(depth)は loader の対象外です —— loader 層は point-in-time の過去バーのみを扱います。リアルタイム市場データは broker connector を通します:暗号資産は okx / binance / ccxt、株式は futu / tiger

ブローカー connectors 13 ブローカー — read + paper、対応先では bounded-live

connector-first のプロファイル。多くは read + ペーパー口座での発注に対応します —— IBKR は読み取り専用、Robinhood はライブのみ(ペーパー口座なし)、Trading 212 はペーパーを含め発注を一切拒否します。ライブ発注はユーザーが定義した mandate(銘柄許可リスト、発注サイズ / エクスポージャー上限、1 日の取引回数上限、即時 kill switch)で制限され、資金を預かることは一切ありません —— 執行するのはブローカーです。発注系ツールは MCP に公開されません(agent + CLI のみ)。リサーチ / バックテスト経路は構造的にあらゆるライブ endpoint から遮断されています。

Broker Markets Capabilities
IBKR global local TWS / Gateway, read-only
Robinhood US Agentic MCP (desktop OAuth) — read + bounded live
Tiger US / HK / A read + paper + bounded live
Alpaca US read + paper + bounded live (+ TAP credential-isolation mode)
OKX · Binance crypto read + paper + bounded live
Futu HK / US / A read + paper + bounded live
eToro global read + paper + bounded live(Public API;demo キーは構造上 /demo パスにしか到達せず、コピートレードのワークフローにも対応)
MetaTrader 5 forex / CFD read + paper + bounded live (Exness-style; demo ⇔ paper identity guard)
Longbridge · Dhan · Shoonya US / HK · India (NSE/BSE) read + paper only — no runtime paper/live discriminator, so live order placement is hard-refused
Trading 212 UK / EU fully read-only — place_order / cancel_order hard-refuse even paper

Paper-vs-live is a structural per-broker runtime guard (account-id format, host separation, demo flag, or trade environment), never a config flag the agent can flip. A broker exposing no such discriminator is capped at paper + read-only.

Preset Trading Teams 30 swarm presets
  • 🏢 すぐ使える 30 の agent teams
  • ⚡ 事前構成済みの finance workflows
  • 🎯 投資、トレーディング、リスク管理向け presets
Preset Workflow
investment_committee Bull/bear debate → risk review → PM final call
global_equities_desk A-share + HK/US + crypto researcher → global strategist
crypto_trading_desk Funding/basis + liquidation + flow → risk manager
earnings_research_desk Fundamental + revision + options → earnings strategist
macro_rates_fx_desk Rates + FX + commodity → macro PM
quant_strategy_desk Screening + factor research → backtest → risk audit
technical_analysis_panel Classic TA + Ichimoku + harmonic + Elliott + SMC → consensus
risk_committee Drawdown + tail risk + regime review → sign-off
global_allocation_committee A-shares + crypto + HK/US → cross-market allocation

さらに 20 以上の specialist presets があります。すべて確認するには vibe-trading --swarm-presets を実行してください。

Alpha Zoo 5 つのファミリーに渡る 462 個の事前構築 quant alpha
  • 🧬 462 個のクロスセクショナル alpha、オペレーター層でルックアヘッドを禁止
  • 📈 IC + IR + alive/reversed/dead 分類を 1 つの CLI コマンドで
  • 🔬 AST 純関数ゲート + 300 行のルックアヘッド sentinel テスト + pytest-socket によるネットワーク遮断
  • 📦 Qlib には Apache-2 帰属表示、各 zoo ごとに LICENSE.md で formula を数学的内容として宣言
  • 🤝 コミュニティ PR 向け Developer Certificate of Origin (DCO) 署名フロー
Zoo 件数 出典 ライセンス
qlib158 154 Microsoft Qlib Alpha158(Apache-2.0、コミット固定) Apache-2.0
alpha101 101 Kakushadze (2015)、"101 Formulaic Alphas"、arXiv:1601.00991 Formula は数学的内容
gtja191 191 国泰君安 (2014)、「191 短周期取引型 alpha 因子」 Formula は数学的内容
academic 12 Fama-French 5 + Carhart momentum(価格ベースの proxy) + Jegadeesh reversal + George-Hwang 52-week-high + Amihud illiquidity + Harvey-Siddique skew + Frazzini-Pedersen betting-against-beta + correlation-rewiring stability 公開された学術文献
fundamental 4 PIT セーフな SEC company facts — earnings yield、ROE、gross profitability、asset growth(filed-date 基準) 公開財務データ

vibe-trading alpha list で閲覧、vibe-trading alpha show <id> で formula + ソース、vibe-trading alpha bench --zoo X --universe Y --period Z で zoo 全体をスコアリング、vibe-trading alpha compare --all で zoo 同士を並べてランク付けできます。

Backtest Engines 9 engines + options portfolio, cross-market composite
Engine Market Notes
ChinaA A-share T+1, price limits, pre-ST filter
GlobalEquity US / HK / カナダ 同一セッション売買、市場別のロット・呼値・コスト
IndiaEquity India (NSE/BSE) T+1, circuit bands, config-driven STT / stamp / SEBI / GST cost stack
KoreaEquity 韓国(KRX:KOSPI/KOSDAQ) ロングオンリー、統一呼値グリッド上で ±30% 制限値幅を約定時点に判定、2026 年 0.20% の証券取引税
Crypto crypto spot / USD-M perps funding settlements, execution/mark split
ChinaFutures · GlobalFutures futures margin, contract multipliers
Forex FX / metals via the mt5 loader
Composite cross-market one shared capital pool across markets (source="auto")
options_portfolio options multi-leg, Greeks, payoff/scenario

Intraday bars: 1m / 5m / 15m / 30m / 1H / 4H / 1D. 15 metrics + benchmark comparison, 5 portfolio optimizers (equal-volatility / risk-parity / mean-variance / max-diversification / turnover-aware), and 3 validation tools (Monte Carlo / Bootstrap / Walk-Forward).

Quant Library 19 モジュール・265 個のテスト済み関数、すべての経路から呼び出し可能

src/quantlib は、agent が必要とする金融数学のそれぞれについて、テスト済みの実装を 1 つだけ保持します。skill はこれらを import するようになり、markdown コード ブロックの中に数式を抱え込むことはなくなりました —— SKILL.md の中に価格式が住んで いたら、それはパターンではなくバグです。

モジュール カバー範囲
options Black-Scholes 価格 + greeks、インプライドボラティリティの逆算
fixedincome 債券数学、Nelson-Siegel / Svensson カーブフィッティング
credit Altman Z-score、Merton / KMV デフォルト距離
timeseries 定常性、共和分、GARCH、bootstrap
risk · var_backtest VaR / CVaR / EVT とそのバックテスト
attribution Brinson-Fachler 要因分解
performance · fundmath TWR / MWR / Modified Dietz、XIRR / MOIC / DPI / TVPI
factormodel · eventstudy ファクター回帰、イベントスタディ
multipletesting · crossvalidation 多重検定調整、purged CV
impact マーケットインパクトモデル

読み取り専用の quantlib_call ツールが 1 つの契約で全体に到達するため、bash が 無効化されている CLI・Web UI・REST API・MCP でも金融数学が使えます。構造的に shell では ありません —— モジュール許可リスト、__all__ のみのディスパッチ、export_* は拒否。 計量経済学の関数は stats エクストラ(pip install "vibe-trading-ai[stats]")が必要で、 遅延インポートして不足しているものを名指しします。

バリュエーションと機関投資家向けリサーチ DCF・コンプス・三表連動、および六つのリサーチコマンド

入力を自分で捏造することを拒むバリュエーションエンジンです。contracts.py の唯一の ルール:入力が欠けているモデルは実行不能(NOT RUNNABLE)であり、黙ってデフォルト値 を埋めることはない —— バリュエーションモデルにおけるあらゆるデフォルト値は、定数の 衣をまとった意見だからです。

モデル 押さえておくべき挙動
run_dcf FCFF ブリッジ、WACC 構築、期央割引、ネットデット・ブリッジ、WACC×g 感応度グリッド。デュアル・ターミナルバリュー:各手法を相手方の含意マルチプルと含意 g で相互検証
run_comps EV ブリッジ、LTM + 暦年カレンダリゼーション、マルチプル行列。分母が非正のピアは除外して報告し、負のマルチプルとして平均に混ぜません
threestatement 連動予測。厳格なバランス検証、明示的なリボルバー・プラグ、収束しなければ raise する金利↔負債の循環反復

成果物は入力ハッシュ付きでバージョン管理され、xlsx / pptx にエクスポートできます。

6 つのスラッシュコマンドがワークフローを駆動します —— /comps /dcf /attrib /memo /earnings /screen —— それぞれが手順スケルトンと算術的に整合した ワークトサンプルを備えています(Brinson 分解はアクティブリターンに厳密に合算され、 業績ブリッジは EPS 差分に厳密に合算されます)。investor-lenses skill は著名投資家の 思考フレームワークを分析オーバーレイとして重ねます:各レンズは優先シグナル・失格条件・ 典型的な誤用からなる運用手順であり、人物伝ではなく、ツール名も指定しません。

バー以外に、src/entities が不規則な日付のキャッシュフロー(NAV、キャピタルコール、 クーポン)を取り込み、cashflow_performance が XIRR / MOIC / DPI / TVPI / TWR / Modified Dietz / MWR を返します。この経路はバーエンジンとあえて並行に設計されており、 nav 列がバーエンジンに届いて終値として値付けされることは決してありません。

ガバナンスと監査証跡 「その数字はどの方法論が生んだのか?」に答える

すべての実行は、プロンプト・skill の内容・ツールレジストリ・パッケージバージョンを ハッシュした manifest を書き出します。1 か月前に出た数字も、それを生んだ正確な 方法論まで遡れます。

監査台帳は各レコードを直前のハッシュに連鎖させて fsync するため、レコードの改変や 削除は検出可能です —— 自分のハッシュを再計算した改変であっても、次のレコードで prev_hash_mismatch として捕捉されます。タイムスタンプは常に呼び出し側が供給し、 このモジュールは datetime.now() を呼びません。

トレースの秘匿は sink 単位です:ツール呼び出しの引数とライブ監査台帳は fail-closed sink を使い content を秘匿したまま、ツール結果の sink だけが content を 解放し、その文字列リーフをパターン洗浄します。env はどちらでも解放されません。

🎬 デモ

cli_sm.mp4
frontend_sm.mp4
☝️ 自然言語バックテスト & マルチエージェント swarm debate — Web UI + CLI

🚀 クイックスタート

1行インストール(PyPI)

pip install vibe-trading-ai

最初のリサーチタスクを実行します。

vibe-trading init
vibe-trading run -p "Backtest a BTC-USDT 20/50 moving-average strategy for 2024 and summarize return and drawdown"

古いバージョンからのアップグレード? 0.1.10 で LangChain 1.x に移行しました。0.1.10 より前のインストールに対して pip install -U vibe-trading-ai を実行した後にインポートが壊れる場合(例: langgraph のインポート失敗)、venv を作り直すか pip install --force-reinstall vibe-trading-ai を実行してください。新規インストールは影響を受けません。

Package name vs commands: PyPI package は vibe-trading-ai です。インストール後、3 つのコマンドが使えます。

Command Purpose
vibe-trading Interactive CLI / TUI
vibe-trading serve FastAPI web server を起動
vibe-trading-mcp MCP server を起動(Claude Desktop、OpenClaw、Cursor など向け)
vibe-trading init              # interactive .env setup
vibe-trading                   # launch CLI
vibe-trading serve --port 8899 # launch web UI
vibe-trading-mcp               # start MCP server (stdio)

または利用経路を選ぶ

Path Best for Time
A. Docker すぐ試す、ローカル設定ゼロ 2 min
B. Local install 開発、CLI へのフルアクセス 5 min
C. MCP plugin 既存 agent へ接続 3 min
D. ClawHub clone 不要、1 コマンド 1 min

前提条件

  • 対応 provider の LLM API key、または Ollama によるローカル実行(key 不要)
  • Path B では Python 3.11+
  • Path A では Docker
  • OpenAI Codex は ChatGPT OAuth でも利用できます。LANGCHAIN_PROVIDER=openai-codex を設定し、vibe-trading provider login openai-codex を実行してください。OPENAI_API_KEY は使いません。

Supported LLM providers: OpenRouter、Requesty、OpenAI、Anthropic(ネイティブ Messages API)、DeepSeek、Gemini、Groq、DashScope/Qwen、Zhipu、Moonshot/Kimi、MiniMax、SiliconFlow(CN + Global)、Xiaomi MIMO、iFlytek Spark、Z.ai、NVIDIA NIM、ModelScope、Ollama(local)。*_BASE_URL が未設定の場合、各プロバイダーは canonical なエンドポイントにフォールバックするため、key だけで十分です。設定は .env.example を参照してください。

Tip: 自動フォールバックにより、すべての市場は API key なしで利用できます。yfinance/Yahoo(HK/US/カナダ)、OKX(crypto)、mootdx(A 株、TCP 直結で IP 制限なし)、AKShare(A-shares、US、HK、futures、forex)はすべて無料です。Tushare token は任意で、A 株は mootdx が推奨の no-token fallback、AKShare がより広いカバレッジのバックアップになります。

Path A: Docker(設定ゼロ)

git clone https://github.com/HKUDS/Vibe-Trading.git
cd Vibe-Trading
cp agent/.env.example agent/.env
# Edit agent/.env — uncomment your LLM provider and set API key
docker compose up --build

http://localhost:8899 を開きます。Backend + frontend が 1 つの container で動作します。

Docker は既定で backend を 127.0.0.1:8899 に公開し、app を non-root container user として実行します。意図して API を自分の machine 外へ公開する場合は、強い API_AUTH_KEY を設定し、client から Authorization: Bearer <key> を送ってください。

Path B: Local install

git clone https://github.com/HKUDS/Vibe-Trading.git
cd Vibe-Trading
python -m venv .venv

# Activate
source .venv/bin/activate          # Linux / macOS
# .venv\Scripts\activate.bat       # Windows CMD
# .venv\Scripts\Activate.ps1       # Windows PowerShell

pip install -e .
cp agent/.env.example agent/.env   # Edit — set your LLM provider API key
vibe-trading                       # Launch interactive TUI

Note

Windows の場合: cp は PowerShell では Copy-Item のエイリアスなので、上記のコマンドは PowerShell ならそのまま動きます。CMD には cp がないため、代わりに copy agent\.env.example agent\.env を使ってください(上の Docker のコマンドも同様です)。PowerShell が Activate.ps1 の実行を拒否する場合は、先に Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned を実行してください。この設定は現在のシェルセッションにのみ適用されます。

Web UI を起動(任意)
# Terminal 1: API server
vibe-trading serve --port 8899

# Terminal 2: Frontend dev server
cd frontend && npm install && npm run dev  # Node >= 22.22 が必要

http://localhost:5899 を開きます。frontend は API calls を localhost:8899 へ proxy します。

Production mode(single server):

cd frontend && npm run build && cd ..
vibe-trading serve --port 8899     # FastAPI serves dist/ as static files

[!NOTE] vibe-trading serve0.0.0.0 にバインドしますが、デフォルトではループバックのみを信頼します。同じマシンで UI を開く場合(http://localhost:8899)は設定不要で動作します。別のマシン・VM ホスト・LAN 上のスマートフォンからアクセスすると、機微なエンドポイントは 403 を返し、チャットに “Remote API access requires an API key” と表示されます。agent/.env に強力な API_AUTH_KEY を設定して再起動し、Settings で同じキーを入力してください。(Docker Desktop のホストゲートウェイの場合: デフォルトの 127.0.0.1 ポートバインドのまま VIBE_TRADING_TRUST_DOCKER_LOOPBACK=1 を設定。)

Path C: MCP plugin

下の MCP Plugin セクションを参照してください。

Path D: ClawHub(1 コマンド)

npx clawhub@latest install vibe-trading --force

skill + MCP config が agent の skills directory にダウンロードされます。詳細は ClawHub install を参照してください。


🧠 環境変数

agent/.env.exampleagent/.env にコピーし、使いたい provider block のコメントを外してください。各 provider には 3-4 個の変数が必要です。

Variable Required Description
LANGCHAIN_PROVIDER Yes Provider name(openrouter, deepseek, groq, ollama など)
<PROVIDER>_API_KEY Yes* API key(OPENROUTER_API_KEY, DEEPSEEK_API_KEY など)
<PROVIDER>_BASE_URL Yes API endpoint URL
LANGCHAIN_MODEL_NAME Yes Model name(例: deepseek-v4-pro
TUSHARE_TOKEN No A-share data 用 Tushare Pro token(AKShare に fallback)
TIMEOUT_SECONDS No LLM call timeout、既定 120s
API_AUTH_KEY Recommended for network deployments API が非ローカル client から到達可能な場合に必要な Bearer token
VIBE_TRADING_ENABLE_SHELL_TOOLS No remote API/MCP-SSE style deployments で shell-capable tools を明示 opt-in
VIBE_TRADING_ALLOWED_FILE_ROOTS No document と broker-journal imports 用の追加 comma-separated roots
VIBE_TRADING_ALLOWED_RUN_ROOTS No generated-code run directories 用の追加 comma-separated roots
VIBE_TW_STOCK_DB No 台湾市場の SQLite スナップショットのパス。読み取り専用 taiwan_stock_data ツールはスキーマ妥当な場合のみ登録されます
VIBE_TRADING_EXTRA_CORS_ORIGINS No ループバックの CORS 既定値に追加するオリジン(カンマ区切り。CORS_ORIGINS は置き換え)
CONTENT_FILTER_WARNING_THRESHOLD No コンテンツフィルタ警告の比率しきい値(既定 0.05 = 5%)。コンテンツモデレーションでブロックされた LLM 応答の割合がこれを超えると、run card がプロバイダーの変更を促します。

* Ollama は API key 不要です。OpenAI Codex は ChatGPT OAuth を使い、tokens は agent/.env ではなく oauth-cli-kit 経由で保存します。

無料データ(key 不要): AKShare による A-shares、yfinance による HK/US equities、OKX による crypto、CCXT による 100+ crypto exchanges。システムは各市場に最適な利用可能 source を自動選択します。

🎯 推奨モデル

Vibe-Trading は tool-heavy agent です。skills、backtests、memory、swarms はすべて tool calls を通じて流れます。モデル選択は、agent が実際に tools を使う か、training data から作り話をするかを直接左右します。

Tier Examples When to use
Best anthropic/claude-opus-4.7, anthropic/claude-sonnet-4.6, openai/gpt-5.5-pro, google/gemini-3.5-flash 複雑な swarms(3+ agents)、長い research sessions、paper-grade analysis
Sweet spot (default) deepseek-v4-pro, deepseek/deepseek-v4-pro, x-ai/grok-4.20, z-ai/glm-5.1, moonshotai/kimi-k2.6, qwen/qwen3-max-thinking 日常使い。信頼できる tool-calling を約 1/10 の cost で
agent 用途では避ける *-nano, *-flash-lite, *-coder-next, small / distilled variants Tool-calling が不安定です。agent は skills 読み込みや backtests 実行ではなく「記憶から答えている」ように見えます

既定の agent/.env.example は DeepSeek official API + deepseek-v4-pro で出荷されています。OpenRouter users は deepseek/deepseek-v4-pro を利用できます。


🖥 CLI リファレンス

vibe-trading               # interactive TUI
vibe-trading run -p "..."  # single run
vibe-trading serve         # API server
vibe-trading alpha list    # 462 個の事前構築 alpha を閲覧;show / bench / compare / export-manifest サブコマンド利用可
vibe-trading playbook list # 定期リサーチのテンプレート 5 本;show / create サブコマンド利用可
vibe-trading channels status --local  # IM チャンネル設定と install hints を確認
vibe-trading provider doctor  # 秘匿処理済みの provider/proxy/package 診断を出力
TUI 内の slash commands
Command Description
/help キーボードショートカットとコマンド一覧を表示
/model LLM provider とモデルを切り替え
/memory 永続メモリの表示 / 管理
/history 過去セッションの閲覧と再開
/goal 金融リサーチ goal の開始 / 確認
/search 全セッション横断の全文検索
/swarm マルチエージェント preset(委員会 / クオンツ / リスク)
/skill skills の一覧 / 読み込み / 解除
/show 過去の run を id で表示
/clear 現在の会話をクリア
/pine 現在の戦略を Pine Script として書き出し
/journal 取引履歴 CSV を分析
/shadow シャドーアカウントの学習 / 表示
/export 現在のセッションを書き出し(md / json)
/debug デバッグパネル切り替え(token 使用量 / レイテンシ)
/comps 類似企業分析(ピア倍率 → 含意レンジ)
/dcf DCF 評価と感応度グリッド
/attrib Brinson-Fachler 要因分解(アロケーション vs 銘柄選択)
/memo 投資メモ — 論点、コンセンサスと異なる見立て、シナリオ、撤退条件
/earnings 決算レビュー — 売上から EPS までのサプライズ分解
/screen 体系的アイデアスクリーン — 仮説、ファネル、残存キュー
/playbook 定期リサーチのテンプレート(一覧 / 実行 / スケジュール)
/connector 取引 connector profile(状態 / 開始 / 停止)
/halt キルスイッチ — すべてのライブ取引を即時停止
/resume キルスイッチを解除(ライブ取引を再開)
/data データルーティングモード
/quit 終了(q、exit、:q も可)
Single run & flags
vibe-trading run -p "Backtest BTC-USDT MACD strategy, last 30 days"
vibe-trading run -p "Analyze AAPL momentum" --json
vibe-trading run -f strategy.txt
echo "Backtest 000001.SZ RSI" | vibe-trading run
vibe-trading -p "your prompt"
vibe-trading --skills
vibe-trading --swarm-presets
vibe-trading --swarm-run investment_committee '{"topic":"BTC outlook"}'
vibe-trading --list
vibe-trading --show <run_id>
vibe-trading --code <run_id>
vibe-trading --pine <run_id>           # Export indicators (TradingView + TDX + MT5)
vibe-trading --trace <run_id>
vibe-trading --continue <run_id> "refine the strategy"
vibe-trading --upload report.pdf
vibe-trading alpha list --zoo gtja191 --limit 10
vibe-trading alpha show gtja191_171
vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20
IM チャンネル

IM channel adapters は外部チャットアプリを Web UI / CLI と同じ session runtime へ接続します。有効化する adapter は ~/.vibe-trading/agent.jsonchannels 配下に設定します。SDK-backed adapters は optional extras で、SDK が足りない場合も runtime を落とさず recovery hints を返します。

vibe-trading channels status --local   # API なしで config と missing SDK hints を確認
vibe-trading channels status           # 稼働中の API runtime を問い合わせ
vibe-trading channels start            # API 経由で enabled adapters を開始
vibe-trading channels stop             # API 経由で enabled adapters を停止
vibe-trading channels login weixin     # 必要な adapter login hook を実行
vibe-trading channels pairing --channel telegram list

Built-in adapters は websockettelegramslackdiscordmatrixwhatsappsignalqqnapcatweixinwecomfeishudingtalkmsteamsemailmochat です。個別に pip install "vibe-trading-ai[telegram]" を使うか、全チャンネル分を pip install "vibe-trading-ai[channels]" で入れられます。

チャット内スラッシュコマンド(チャンネル非依存、全 16 adapter で共通):

コマンド 説明
/new 現在のセッションをリセット——次のメッセージで新しい会話を開始
/reset /new のエイリアス
/newsession /new のエイリアス
/pairing list 保留中の sender pairing リクエストを表示

コマンドは大文字小文字を区別せず、メッセージ全体として送信する必要があります(例:hello /new はリセットではなく通常メッセージとして処理されます)。


💡 例

Strategy & Backtesting

# Moving average crossover on US equities
vibe-trading run -p "Backtest a 20/50-day moving average crossover on AAPL for the past year, show Sharpe ratio and max drawdown"

# RSI mean-reversion on crypto
vibe-trading run -p "Test RSI(14) mean-reversion on BTC-USDT: buy below 30, sell above 70, last 6 months"

# Multi-factor strategy on A-shares
vibe-trading run -p "Backtest a momentum + value + quality multi-factor strategy on CSI 300 constituents over 2 years"

# After backtesting, export to TradingView / TDX / MetaTrader 5
vibe-trading --pine <run_id>

事前構築 alpha zoo を 1 行でベンチ:

vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20

カタログを閲覧して個別の alpha を確認:

vibe-trading alpha list --zoo gtja191 --theme reversal --limit 10
vibe-trading alpha show gtja191_171

zoo からマルチファクターシグナルを構成(Python):

from src.skills.multi_factor.zoo_signal_engine import ZooSignalEngine
engine = ZooSignalEngine.from_zoo(["gtja191_171", "gtja191_111", "gtja191_163"])
panel = ...  # your wide OHLCV panel
signal = engine.compute_signal(panel)

Market Research

# Equity deep-dive
vibe-trading run -p "Research NVDA: earnings trend, analyst consensus, option flow, and key risks for next quarter"

# Macro analysis
vibe-trading run -p "Analyze the current Fed rate path, USD strength, and impact on EM equities and gold"

# Crypto on-chain
vibe-trading run -p "Deep dive BTC on-chain: whale flows, exchange balances, miner activity, and funding rates"

Swarm Workflows

# Bull/bear debate on a stock
vibe-trading --swarm-run investment_committee '{"topic": "Is TSLA a buy at current levels?"}'

# Quant strategy from screening to backtest
vibe-trading --swarm-run quant_strategy_desk '{"universe": "S&P 500", "horizon": "3 months"}'

# Crypto desk: funding + liquidation + flow → risk manager
vibe-trading --swarm-run crypto_trading_desk '{"asset": "ETH-USDT", "timeframe": "1w"}'

# Global macro portfolio allocation
vibe-trading --swarm-run macro_rates_fx_desk '{"focus": "Fed pivot impact on EM bonds"}'

Cross-Session Memory

# Save your preferences once
vibe-trading run -p "Remember: I prefer RSI-based strategies, max 10% drawdown, hold period 5–20 days"

# The agent recalls them in future sessions automatically
vibe-trading run -p "Build a crypto strategy that fits my risk profile"

Upload & Analyze Documents

# Analyze a broker export or earnings report
vibe-trading --upload trades_export.csv
vibe-trading run -p "Profile my trading behavior and identify any biases"

vibe-trading --upload NVDA_Q1_earnings.pdf
vibe-trading run -p "Summarize the key risks and beats/misses from this earnings report"

🌐 API サーバー

vibe-trading serve --port 8899
Method Endpoint Description
GET /runs runs を一覧表示
GET /runs/{run_id} run details
GET /runs/{run_id}/pine Multi-platform indicator export
POST /sessions session を作成
POST /sessions/{id}/messages message を送信
GET /sessions/{id}/events SSE event stream
POST /upload PDF/file をアップロード
GET /swarm/presets swarm presets を一覧表示
POST /swarm/runs swarm run を開始
GET /swarm/runs/{id}/events Swarm SSE stream
GET /alpha/list zoo/theme/universe でフィルタした alpha リスト
GET /alpha/{alpha_id} Alpha のメタデータ + ソースコード
POST /alpha/bench Bench ジョブを開始(job_id を返す)
GET /alpha/bench/{job_id}/stream SSE 進捗ストリーム
GET /settings/llm Web UI LLM settings を読み取り
PUT /settings/llm local LLM settings を更新
GET /settings/data-sources local data source settings を読み取り
PUT /settings/data-sources local data source settings を更新
GET /channels/status IM channel runtime と adapter status を読み取り
POST /channels/start 設定済み IM channel adapters を開始
POST /channels/stop 設定済み IM channel adapters を停止
POST /channels/pairing/command shared store に対して sender-pairing command を実行
POST /scheduled-runs 定期リサーチジョブを作成(interval-ms または cron)
GET /scheduled-runs スケジュール済みジョブを一覧
DELETE /scheduled-runs/{job_id} スケジュール済みジョブをキャンセル
GET /scheduled-runs/playbooks リサーチテンプレートを一覧
GET /scheduled-runs/playbooks/{slug} テンプレート 1 件と宣言済み変数を表示
POST /scheduled-runs/playbooks/{slug} テンプレートからジョブをスケジュール
POST /sessions/{id}/cancel 進行中の実行を停止(失敗ではなくキャンセルとして記録)
POST /sessions/{id}/title/auto 最初のやり取りからセッション名を生成(手動リネームは上書きしない)
GET /correlation/regime 相関エッジ密度のレジームタイムライン
GET /agents.json · POST /v1/query OpenBB Workspace ブリッジ — 任意の openbb extra 導入時のみ登録、/v1/query は認証必須

Interactive docs: http://localhost:8899/docs

Security defaults

localhost 開発では、vibe-trading serve は browser workflow を簡単に保ちます。非ローカル client では、sensitive API endpoints に API_AUTH_KEY が必要です。JSON/upload requests には Authorization: Bearer <key> を使ってください。Browser EventSource streams は、Settings で同じ key を一度入力した後、Web UI が処理します。

Shell-capable process tools(bash / background_run / cancel_background)はインタラクティブな local CLI でのみ有効です。それ以外のすべての面 — HTTP/SSE API と MCP server のすべての transport(stdio を含む)— は、VIBE_TRADING_ENABLE_SHELL_TOOLS=1 を明示的に設定する(または vibe-trading-mcp--enable-shell-tools を渡す)まで無効のままです。transport の種類が暗黙に shell アクセスを許可することはありません。Document と journal readers は既定で upload/import roots に制限されます。ファイルは ~/.vibe-trading/uploads~/.vibe-trading/runs./uploads./data(または旧来の agent/uploads / agent/runs)の下に置くか、VIBE_TRADING_ALLOWED_FILE_ROOTS で専用 directory を追加してください。セッション、実行成果物、swarm 実行、アップロード、sessions.db インデックスは ~/.vibe-trading 配下に統一されています(shell 環境変数 VIBE_TRADING_HOME で丸ごと移動可能)。旧位置の履歴は初回起動時に自動で移行されます。

Web UI Settings

Web UI Settings page では、local users が LLM provider/model、base URL、generation parameters、reasoning effort、Tushare token など任意の market data credentials を更新できます。Settings は agent/.env に永続化され、provider defaults は agent/src/providers/llm_providers.json から読み込まれます。

Settings reads は side-effect free です。GET /settings/llmGET /settings/data-sourcesagent/.env を作成せず、project-relative paths だけを返します。Settings の読み書きは credential state の公開や credentials/runtime environment の更新を伴うため、設定済みの場合は API_AUTH_KEY が必要です。dev mode で API_AUTH_KEY が未設定の場合、settings access は loopback clients からのみ受け付けます。

同じ Settings page には local operator 向けの IM チャンネルパネルもあります。/channels/status を polling し、configured/enabled/available/loaded/running 状態、adapter recovery hints、runtime の start/stop 操作を terminal に戻らず扱えます。

Scheduled research(定期リサーチ)

リサーチ prompt や backtest を繰り返しスケジュールで実行します。Web UI のスケジュールページからも REST からも操作できます。バックグラウンド executor は既定でオフです。VIBE_TRADING_ENABLE_SCHEDULER=1 を付けて server を起動すると有効になります:

VIBE_TRADING_ENABLE_SCHEDULER=1 vibe-trading serve --port 8899

その後、REST でジョブを作成します。schedule は単なる整数(interval はミリ秒)か、5 フィールドの cron 式(分 時 日 月 曜日。各フィールドは **/n、数値、カンマ区切りリスト、1-5 のような範囲に対応)です。cron はジョブの任意の timezone(IANA キー)の壁時計で評価され、夏時間の切り替え後もリズムは変わりません——存在しない時刻(春の進み)はスキップされ、重複する時刻(秋の戻り)は最初の 1 回だけ実行されます。timezone のないジョブは従来どおり UTC で動作します:

# 6 時間ごと(cron)
curl -X POST http://localhost:8899/scheduled-runs \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Scan CSI300 for momentum breakouts and backtest the top 5","schedule":"0 */6 * * *"}'

# 平日 23:30(オークランドの壁時計、夏時間でもずれない)
curl -X POST http://localhost:8899/scheduled-runs \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Pre-open scan of NZX names","schedule":"30 23 * * 1-5","timezone":"Pacific/Auckland"}'

# 一覧 / キャンセル
curl http://localhost:8899/scheduled-runs
curl -X DELETE http://localhost:8899/scheduled-runs/<job_id>

各実行は新しい agent session で prompt を実行し(任意の backtest パラメータは config に入れます)、ジョブは ~/.vibe-trading/ に永続化されるため再起動後も残ります。このフラグがない場合、/scheduled-runs endpoints はジョブを記録しますが実行はされません。API_AUTH_KEY を設定している場合は各呼び出しに -H "Authorization: Bearer <key>" を付けてください。

スケジューラにはすぐ使えるリサーチテンプレートが 5 本同梱されています —— premarket-briefearnings-season-trackerportfolio-checkupa-share-money-flowinstitutional-holdings-diff。各テンプレートはツール名を挙げず、必要なデータを自然言語で宣言するため、ツール面が広がってもそのまま機能します。また、欠けている入力は記憶で埋めず明示することが求められます。CLI、REST、TUI の /playbook から利用できます:

vibe-trading playbook list                     # 5 本のテンプレート
vibe-trading playbook show premarket-brief     # 本文・宣言済み変数・推奨頻度
vibe-trading playbook create premarket-brief \
  --var home_market="US equities" --var watchlist="AAPL, MSFT, NVDA" \
  --timezone America/New_York

curl http://localhost:8899/scheduled-runs/playbooks
curl http://localhost:8899/scheduled-runs/playbooks/premarket-brief
curl -X POST http://localhost:8899/scheduled-runs/playbooks/premarket-brief \
  -H "Content-Type: application/json" \
  -d '{"variables":{"home_market":"US equities","watchlist":"AAPL, MSFT, NVDA"}}'

{} を POST すると、テンプレート自身の推奨頻度と既定変数でスケジュールされます。描画された本文はそのままジョブの prompt になり、宣言されていない変数は黙って無視されず拒否されます。


🔌 MCP Plugin

Vibe-Trading は MCP-compatible client 向けに 70 MCP tools を公開します。stdio subprocess として動作し、server setup は不要です。Core research tools は HK/US/crypto で API key なしに動作し、trading connector tools は選択中の connector profile を使います。LLM key が必要なのは run_swarm のみです。

環境変数: server は client 自身が spawn するため、shell の export は届きません —— client の env block に設定してください。生成された backtest code は allowed run roots 内に制限されるので、結果を自分の作業 directory に書き出すには VIBE_TRADING_ALLOWED_RUN_ROOTS が必要です:

{
  "mcpServers": {
    "vibe-trading": {
      "command": "vibe-trading-mcp",
      "env": { "VIBE_TRADING_ALLOWED_RUN_ROOTS": "C:\\Users\\me\\research" }
    }
  }
}
Claude Desktop

claude_desktop_config.json に追加:

{
  "mcpServers": {
    "vibe-trading": {
      "command": "vibe-trading-mcp"
    }
  }
}
OpenClaw

~/.openclaw/config.yaml に追加:

skills:
  - name: vibe-trading
    command: vibe-trading-mcp
Cursor / Windsurf / other MCP clients
vibe-trading-mcp                   # stdio (default)
vibe-trading-mcp --transport http  # Streamable HTTP (spec default) at /mcp
vibe-trading-mcp --transport sse   # legacy SSE (deprecated)

公開される MCP tools(70): list_skills, load_skill, start_research_goal, get_research_goal, add_goal_evidence, update_research_goal_status, backtest, factor_analysis, alpha_zoo, alpha_bench, analyze_options, analyze_options_payoff, pattern_recognition, read_url, read_document, web_search, write_file, read_file, list_swarm_presets, run_swarm, get_market_data, get_fund_flow, get_dragon_tiger, get_northbound_flow, get_margin_trading, get_block_trades, get_shareholder_count, get_lockup_expiry, get_sector_info, get_research_reports, get_stock_news, get_sec_filings, get_financial_statements, get_options_chain, get_stock_profile, screen_market, search_symbol, get_macro_series, iwencai_search, qveris_search, qveris_inspect, qveris_execute, get_institutional_holdings, etf_holdings, prediction_market, research_papers, get_swarm_status, get_run_result, list_runs, reap_stale_runs, retry_run, analyze_trade_journal, extract_shadow_strategy, run_shadow_backtest, render_shadow_report, scan_shadow_signals, trading_connections, trading_select_connection, trading_check, trading_account, trading_positions, trading_orders, trading_quote, trading_history, quantlib_call, cashflow_performance, orderbook_depth, sentiment, technical_indicators, get_fundamentals.

SWARM の外部 MCP tools

run_swarm の worker は、運用者が承認した外部 MCP server のツールを呼び出せます。サーバー側の allowlist を VIBE_TRADING_SWARM_AGENT_CONFIG~/.vibe-trading/swarm-agent.json、またはフォールバックの ~/.vibe-trading/agent.json に設定し、swarm preset ではローカル MCP のラッパー名(例:mcp_internal_kb_search)でリモートツールを列挙します。呼び出し側が渡す variables はテンプレートのデータに留まり、MCP URL・コマンド・環境変数・allowlist の上書きを注入することはできません。

ClawHub からインストール(1 コマンド)
npx clawhub@latest install vibe-trading --force

--force が必要なのは、skill が external APIs を参照し、VirusTotal の automated scan が起動するためです。コードは完全に open-source で、自由に確認できます。

これにより skill + MCP config が agent の skills directory にダウンロードされます。clone は不要です。

ClawHub で見る: clawhub.ai/skills/vibe-trading

OpenSpace — self-evolving skills

89 の finance skills はすべて open-space.cloud に公開され、OpenSpace の self-evolution engine を通じて自律的に進化します。

OpenSpace と使うには、agent config に両方の MCP servers を追加してください。

{
  "mcpServers": {
    "openspace": {
      "command": "openspace-mcp",
      "toolTimeout": 600,
      "env": {
        "OPENSPACE_HOST_SKILL_DIRS": "/path/to/vibe-trading/agent/src/skills",
        "OPENSPACE_WORKSPACE": "/path/to/OpenSpace"
      }
    },
    "vibe-trading": {
      "command": "vibe-trading-mcp"
    }
  }
}

OpenSpace は 89 skills を自動検出し、auto-fix、auto-improve、community sharing を可能にします。OpenSpace-connected agent では search_skills("finance backtest") から Vibe-Trading skills を検索できます。

MetaTrader 5(Exness などの MT5 ブローカー)

公式の MetaTrader5 パッケージ経由で、ローカルで稼働中の MT5 terminal に接続します(Windows 専用):

pip install "vibe-trading-ai[mt5]"

~/.vibe-trading/mt5.json を設定します(手動で作成し、対応環境では chmod 600 を設定):

{
  "login": 12345678,
  "password": "...",
  "server": "Exness-MT5Trial8",
  "symbol_suffix": "m",
  "max_order_volume": 1.0,
  "max_order_notional_usd": 10000
}

続いて:

vibe-trading connector use mt5-paper-sdk
vibe-trading connector check
vibe-trading connector account
vibe-trading connector quote EURUSD
vibe-trading connector history EURUSD
Profile 口座 注文
mt5-paper-sdk デモ 読み取り専用
mt5-live-sdk-readonly リアル 読み取り専用
mt5-paper-trade デモ 直接発注(connector のサイズガードが適用されます)
mt5-live-trade リアル mandate + kill-switch によるゲート

安全境界: 「paper」はブローカーのデモ口座を指し、毎回の呼び出しで検証されます — terminal が account_info().trade_mode と login を返すため、リアルマネー口座に接続された paper profile(またはその逆)は強制的に拒否されます。MT5 の注文サイズはロット単位です(1 lot EURUSD = 100,000 EUR)。live の mandate ゲートは connector の USD サイジングフックを通じてロットを USD 換算し、connector 自身の max_order_volume / max_order_notional_usd ガードはデモと live の両方に適用され、名目額を価格換算できない場合は fail-closed になります。ヘッジ口座(Exness の既定)での注意: 反対サイドの注文はヘッジを新規に建てます — ポジションは ticket 指定でクローズしてください(position ticket を指定した trading_cancel_order)。これにより deal がそのポジションに固定され、エクスポージャーの削減のみが行われます。ロールバック / 停止経路: kill switch は新規の live 注文をブロックし、キャンセルは引き続き利用可能で監査ログに記録されます。Mandate の上限は USD 建てです。USD 以外の口座通貨の場合は、ブローカー側で口座通貨建ての証拠金として強制されます。

mt5 マーケットデータ loader(為替フォールバックチェーンの先頭)は同じ mt5.json を共有します — ファイルがない場合は、最後に使用されたログイン済み terminal に読み取り専用で接続します。


🔌 eToro Public API コネクタ

API キーペア(x-api-key + x-user-key)で eToro Public API のデモ口座・リアル口座に接続します。デモとリアルは構造的に分離されており、デモキーは /demo API パスにしか到達しません。

~/.vibe-trading/etoro.json を設定します(自分で作成してください。対応環境では chmod 600):

{
  "api_key": "YOUR_PUBLIC_API_KEY",
  "user_key": "YOUR_USER_KEY",
  "profile": "paper"
}

代わりに ~/.vibe-trading/.envETORO_API_KEYETORO_USER_KEY を設定することもできます。

その後:

vibe-trading connector use etoro-paper-sdk
vibe-trading connector check
vibe-trading connector account
vibe-trading connector positions
vibe-trading connector quote BTC
プロファイル 口座 発注
etoro-paper-sdk デモ 読み取り専用
etoro-live-sdk-readonly リアル 読み取り専用
etoro-paper-trade デモ デモパスへの直接発注
etoro-live-trade リアル mandate + kill switch によるゲート

銘柄検索は eToro の internalSymbolFull 検索を使います(例:BTC → instrument id 100000)。取引前に etoro_search_instruments エージェントツールでティッカーを解決してください。

安全境界:デモとリアルはパス分離かつキー束縛です(paper_guard: path_separated_key_bound)。リアルでリスクを増やす操作(新規建て、コピー開始/増額)には、認可された mandate、停止していない明確な状態、そしてコピー名目額を制限するための検証済み USD 口座が必要です。検証済みの全決済・部分決済、未約定注文のキャンセル、コピー終了は停止中でも利用でき、すべて監査ログに記録されます。保留中の決済のキャンセルとポジションのストップ編集はデモ専用です。これらはエクスポージャーを増やしたり追加証拠金を移動させたりし得る一方、増分の USD リスクを定量化できるだけの API データがないため、リアル経路は fail-closed になります。コピー金額は eToro 口座通貨建てで、コピーの開始・調整のたびに呼び出し側が 1〜35 文字の URL-safe な参照 id を指定する必要があります。eToro 固有の書き込み系ツール(etoro_close_positionetoro_copy_* など)はエージェントツール専用で、MCP や CLI には公開されません。ロールバック:該当コネクタのコミットを revert するかプロファイルを無効化します。halt は新規のリアル・リスク増加操作をブロックします。


🔌 外部 MCP Server からツールを読み込む(MCP Client モード)

これは上の MCP Plugin とは逆方向です。 MCP Plugin は他の agent に Vibe-Trading のツールを呼ばせるものです。 本節は組み込みの Vibe-Trading agent があなたの外部 MCP server のツールを呼ぶためのものです。

クイックスタート

~/.vibe-trading/agent.json を作成します:

{
  "mcpServers": {
    "my-server": {
      "command": "uvx",
      "args": ["my-mcp-server"]
    }
  }
}

あとは任意の CLI コマンドを実行するだけです。通常の外部 server のツールは、ローカルツールの後に agent のレジストリへ自動的に注入されます:

vibe-trading run "use my-server to do X"

IBKR 公式 MCP の読み取り専用プローブ

Vibe-Trading は Interactive Brokers の公式リモート MCP endpoint に読み取り専用で直接接続できます。 ~/.vibe-trading/agent.json に次を追加します:

{
  "mcpServers": {
    "ibkr": {
      "type": "streamableHttp",
      "url": "https://api.ibkr.com/v1/api/mcp",
      "auth": {
        "type": "oauth",
        "scopes": ["mcp.read"],
        "clientName": "Vibe-Trading",
        "cacheDir": "~/.vibe-trading/live/ibkr/oauth"
      },
      "enabledTools": ["*"]
    }
  }
}

続いてブラウザでの OAuth フローを開始します:

vibe-trading connector authorize ibkr-live-official-mcp-readonly

ワイルドカードが認められるのは IBKR の mcp.read プローブに限られます。この profile を認可しても 確認できるのは IBKR 公式の読み取り scope へのアクセスまでで、IBKR が安全にマッピングできる安定した 読み取りツール名を公開するまで、汎用の trading_accounttrading_positions の呼び出しは無効の ままです。mcp.write を加える設定では、ツールの allowlist を明示的に固定する必要があり、それでも ライブ発注ガードを通過します。

IBKR から事前登録済みの OAuth client が発行されている場合は、auth の中に clientIdclientSecret を追加してください。

取引 connectors:最短ルート

IBKR の OAuth client 承認を待てない場合は、ローカルの TWS または IB Gateway セッションに接続します。 認証情報は IBKR のデスクトップアプリ内に留まり、Vibe-Trading は 127.0.0.1 に接続して connector profile として公開するだけです。

オプションの SDK をインストールします:

pip install "vibe-trading-ai[ibkr]"

TWS のペーパートレードまたは IB Gateway のペーパーを開き、API socket clients を有効にしてから実行します:

vibe-trading connector list
vibe-trading connector use ibkr-paper-local
vibe-trading connector configure ibkr-paper-local --yes
vibe-trading connector check
vibe-trading connector account
vibe-trading connector positions
vibe-trading connector orders
vibe-trading connector quote AAPL
vibe-trading connector history AAPL --duration "30 D" --bar-size "1 day"

ローカルの既定ポート:

アプリ ペーパー ライブ読み取り専用
TWS 7497 7496
IB Gateway 4002 4001

agent が公開する connector スコープのツールは trading_connectionstrading_select_connectiontrading_checktrading_accounttrading_positionstrading_orderstrading_quotetrading_history です。ライブブローカーの生の MCP ツールが mcp_<broker>_* として直接登録されることはありません。IBKR の発注ツールは一つも登録されません。

🔐 TAP モード — 認証情報の完全分離と人間による書き込み承認

オプトイン、既定はオフ。 下記の TAP_* 変数が未設定なら、connector の挙動はこれまでと完全に 同じ(ブローカー SDK 直結)で、何も変わりません。

TAP(Tool Authorization Protocol)は認証情報のプロキシです。agent が ブローカー API の生のシークレットを持つことはなく、影響のある書き込みは人間の承認で gate されます。 TAP モードを有効にすると、すべての Alpaca 呼び出し(発注・キャンセル・および account / positions / orders / quote / bars の読み取り)が、ブローカー SDK ではなく TAP プロキシの /forward endpoint へ送られます。TAP がサーバー側で本物のキーを注入してから上流へ転送します。

  • agent プロセスは Alpaca のキーを一切保持しませんalpaca-py すら不要です。egress 全体が TAP を通るためで、シークレットは名前(<CREDENTIAL:alpaca.key_id>)で参照され、TAP が置換します。
  • 書き込みは人間の承認でブロックされます。 発注もキャンセルも、人が承認しない限りブローカーには 届きません。prompt インジェクションによる「今すぐ買え」も保留され、拒否すれば Alpaca に届くことは ありません。注文には決定的な client_order_id が付くため、承認レースでの再試行は重複発注ではなく 重複排除されます。
  • 読み取りは自動承認。 account / positions / orders / quote / bars は GET であり、TAP は人間の ステップなしに転送します。これは認証情報の分離(プロセス内にキーがない)であって gate ではないので、 追加の摩擦はほぼゼロです。
  • TAP 認証情報の allowed_hosts がキーの送信先を固定するため、改ざんされた宛先は注入前に拒否されます(403)。

有効化の手順:

  1. TAP ダッシュボードで alpaca という名前のマルチシークレット認証情報を作成し、Alpaca のキーペアを key_idsecret_key のフィールドに格納して agent に割り当て、allowed hosts に paper-api.alpaca.markets(またはライブの api.alpaca.marketsおよび data.alpaca.markets (quote / bars が使う市場データホスト)を指定します。ペーパーとライブには別々の TAP 認証情報を 使ってください(例:alpaca-paper / alpaca-liveTAP_ALPACA_CREDENTIAL で選択)。それぞれの allowed_hosts を自分の API ホストに固定すれば、TAP は構造的にペーパーのキーをライブホストへ送ることを 拒否し、逆も同様で、ペーパー/ライブの分離が端から端まで明確に保たれます。
  2. agent/.env に追加します:
変数 必須 説明
TAP_PROXY_URL はい TAP プロキシのベース URL(例:https://proxy.tap.human.tech
TAP_AGENT_KEY はい あなたの TAP agent API キー(シークレット)
TAP_ALPACA_CREDENTIAL いいえ Alpaca 用の TAP 認証情報名(既定は alpaca
TAP_APPROVAL_TIMEOUT いいえ 人間の判断を待つ秒数(既定は 300

書き込みが発生したら、TAP のチャンネル(Telegram / ダッシュボード)で承認または拒否します。承認された 発注・キャンセルは Alpaca へ転送され、拒否またはタイムアウトしたものはエラーを返し、決して送信されません

既知の制限 — 承認レース。 ちょうど TAP_APPROVAL_TIMEOUT の境界で人が承認した場合、ポーリング側が 既に諦めている一方で TAP が注文を転送してしまうことがあります。この場合、注文はブローカーに届いている のに gate はエラーを報告し、max_trades_per_day のカウンタが 1 件少なく数えます。決定的な client_order_id により再試行がその注文を二重に出すことは防げますが、1 日の取引回数上限を厳密に運用 している場合は、TAP のタイムアウトエラーの後に再試行する前に未約定注文を確認してください。

スコープ: Alpaca の発注・キャンセルと 5 つの読み取りすべて — つまり connector の egress 全体を カバーするため、どの経路でもプロセスはキーを保持しません。HMAC 署名型のブローカー(Binance / OKX)は 今後の課題です(クライアント側署名は純粋な egress 注入に馴染みません)。これらのフックは追加的で、 Alpaca connector の内部に閉じており、ライブ mandate ゲートは変更しません。

設定リファレンス

フィールド 既定値 説明
type string stdio では推論、HTTP では必須 stdio では省略、URL ベースの server では sse / streamableHttp を指定。
command string stdio では必須 stdio server で起動する実行ファイル。sse / streamableHttp では無効。
args array [] stdio server 専用のコマンドライン引数。
env object {} stdio server 専用。サブプロセスの環境にマージされる追加の環境変数。
url string sse / streamableHttp では必須 リモート SSE / streamable HTTP endpoint の URL。stdio では未使用。
headers object {} sse / streamableHttp server 専用の追加 HTTP ヘッダー。
toolTimeout number 30 ツール呼び出し 1 回あたりのタイムアウト(秒)
initTimeout number 未設定(max(toolTimeout, 30) MCP initialize / OAuth 認可のタイムアウト(秒)。通常のツール呼び出しを広げずに、遅いブラウザ認可に対応するために使います。
enabledTools array ["*"] ツールの allowlist。["*"] でその server の全ツールを公開

設定ファイルの場所:~/.vibe-trading/agent.json(JSON または YAML)。

URL ベースの transport では type が必須です。agent は URL の接尾辞から SSE と streamable HTTP を 推測しなくなりました。

セッション単位の上書き(API)

API で session を作成する際、session.config の中に mcpServers を渡すと、そのセッションに限って グローバル設定を拡張・上書きできます:

{
  "config": {
    "mcpServers": {
      "research-server": {
        "command": "uvx",
        "args": ["research-mcp"],
        "enabledTools": ["search", "fetch"]
      }
    }
  }
}

ツールの命名

通常のリモートツールは安定した名前 mcp_<server>_<tool> で公開されます。 ライブブローカーの MCP server は trading_* connector の表面の背後に留まります。

2 つの server 名がローカル名の正規化後に同じ ASCII セーフな接頭辞になる場合(例:foo-barfoo_bar がどちらも foo_bar になる)、名前の一意性を保つために server セグメントへ決定的なハッシュ 接尾辞が付加され、運用者に警告が出ます:

WARNING: Configured MCP server 'foo-bar' collides with another server after local name
normalization. Using local tool prefix 'mcp_foo_bar_<hash>_<tool>' to keep generated
tool names unique. Rename the server in agent config if you want a different prefix.

v1 の制限

制限 詳細
Transport stdio、SSE、streamable HTTP
実行 直列のみ — MCP ツールが並列 readonly 経路に入ることはありません
対象面 tools のみ(v1 では resources と prompts は対象外)
ホットリロード 非対応 — 設定変更の反映にはプロセス再起動が必要
Swarm 経路 v1 では Swarm worker のレジストリに MCP ツールは入りません

📁 プロジェクト構成

クリックして展開
Vibe-Trading/
├── agent/                          # バックエンド (Python)
│   ├── cli/                        # CLI パッケージ — インタラクティブ TUI + サブコマンド
│   ├── api_server.py               # FastAPI サーバー — runs、sessions、upload、swarm、SSE
│   ├── mcp_server.py               # MCP サーバー — OpenClaw / Claude Desktop 向け 70 tools
│   │
│   ├── src/
│   │   ├── agent/                  # ReAct エージェントコア
│   │   │   ├── loop.py             #   5 層コンテキスト圧縮 + read/write ツールバッチング
│   │   │   ├── context.py          #   システムプロンプト + 永続メモリからの自動 recall
│   │   │   ├── skills.py           #   skill ローダー(89 個同梱 + CRUD でユーザー作成)
│   │   │   ├── tools.py            #   ツール基底クラス + レジストリ
│   │   │   ├── memory.py           #   run ごとの軽量ワークスペース状態
│   │   │   ├── frontmatter.py      #   共有 YAML frontmatter パーサー
│   │   │   └── trace.py            #   実行トレースライター
│   │   │
│   │   ├── memory/                 # クロスセッション永続メモリ
│   │   │   └── persistent.py       #   ファイルベースメモリ (~/.vibe-trading/memory/)
│   │   │
│   │   ├── tools/                  # 94 個の自動検出エージェントツール
│   │   │   ├── backtest_tool.py    #   バックテスト実行
│   │   │   ├── remember_tool.py    #   クロスセッションメモリ (save/recall/forget)
│   │   │   ├── skill_writer_tool.py #  skill CRUD (save/patch/delete/file)
│   │   │   ├── session_search_tool.py # FTS5 クロスセッション検索
│   │   │   ├── swarm_tool.py       #   swarm チームを起動
│   │   │   ├── web_search_tool.py  #   DuckDuckGo Web 検索
│   │   │   └── ...                 #   bash、file I/O、factor analysis、options、alpha browser + bench など
│   │   │
│   │   ├── factors/                # Alpha Zoo — 5 つのファミリーにまたがる 462 個の alpha
│   │   │   ├── base.py             #   19 個のオペレーター (rank/scale/ts_*/delta/decay_linear/safe_div/vwap)
│   │   │   ├── registry.py         #   AST 限定のメタデータ読み込み + 遅延計算 + sanity gate
│   │   │   ├── bench_runner.py     #   IC + alive/reversed/dead 分類
│   │   │   └── zoo/                #   qlib158 (154) + alpha101 (101) + gtja191 (191) + academic (12) + fundamental (4)
│   │   │
│   │   ├── api/                    # FastAPI ルートモジュール
│   │   │   └── alpha_routes.py     #   /alpha/list、/alpha/{id}、/alpha/bench、SSE ストリーム
│   │   │
│   │   ├── skills/                 # 9 カテゴリ 89 個の finance skills(各 SKILL.md)
│   │   ├── swarm/                  # Swarm DAG 実行エンジン
│   │   │   └── presets/            #   30 個の swarm preset YAML 定義
│   │   ├── session/                # マルチターンチャット + FTS5 セッション検索
│   │   └── providers/              # LLM プロバイダー抽象化
│   │
│   └── backtest/                   # バックテストエンジン
│       ├── engines/                #   8 エンジン + クロスマーケット composite engine + options_portfolio
│       ├── loaders/                #   24 ソース: tushare、okx、binance、yfinance、akshare、baostock、tencent、mootdx、ccxt、futu、pykrx、local、eastmoney、sina、stooq、yahoo、finnhub、alphavantage、tiingo、fmp、longbridge、mt5、qveris、india_broker
│       │   ├── base.py             #   DataLoader Protocol
│       │   └── registry.py         #   Registry + 自動フォールバックチェーン
│       └── optimizers/             #   MVO、equal vol、max div、risk parity
│
├── frontend/                       # Web UI (React 19 + Vite + TypeScript)
│   └── src/
│       ├── pages/                  #   Home、Agent、AlphaZoo、RunDetail、Compare、Correlation、Settings
│       ├── components/             #   chat、charts、layout
│       └── stores/                 #   Zustand 状態管理
│
├── Dockerfile                      # マルチステージビルド
├── docker-compose.yml              # 1 コマンドデプロイ
├── pyproject.toml                  # パッケージ設定 + CLI エントリポイント
├── tools/                          # リポジトリレベルの CI ヘルパー
│   └── ci_grep_gates.sh            # yaml.load / 商標 / 銘柄データ漏洩を拒否
└── LICENSE                         # MIT

🏛 エコシステム

Vibe-Trading は HKUDS agent ecosystem の一部です。

NanoBot
Ultra-Lightweight Personal AI Assistant
AI-Trader
Agent-Native Signal & Copy Trading Platform
CLI-Anything
Making All Software Agent-Native
OpenSpace
Self-Evolving AI Agent Skills
ClawTeam
Agent Swarm Intelligence

🗺 ロードマップ

段階的に出荷します。作業が始まった項目は Issues に移動します。

Phase Feature Status
Trust Layer 再現可能な run cards は出力・Run Detail 表示まで完了。v1 では tool traces と citations を追加 v0 出荷済み
Hypothesis Registry lifecycle status、data sources、skills、run-card links、invalidation notes を持つ永続リサーチ仮説 Backend MVP 出荷済み
Research Autopilot 手動実行から始める research loop: hypothesis → deterministic backtest → evidence report フェーズ1–3 出荷済み
Data Bridge Bring-your-own data: local CSV/Parquet/SQL connectors with schema mapping ローカルローダー出荷済み
Options Lab Vol surface, Greeks dashboard, payoff/scenario explorer Planned
Portfolio Studio Risk x-ray, constraints, turnover-aware optimizer, rebalance notes Turnover を考慮したオプティマイザは 0.1.11 でリリース済み;残りは Planned
Alpha Zoo 462 個の事前構築 alpha 因子(Qlib 158 + Kakushadze 101 + GTJA 191 + academic + fundamental)、1 行 CLI でベンチ、agent 統合、Web UI 0.1.8 でリリース済み、0.1.12 まで拡張
Strategy Development Manager Register papers / broker research as factors & strategies with a persistent store + automated IC/Sharpe decay lifecycle 0.1.11 でリリース済み
Correlation Regime Edge-density + hysteresis regime timeline layered on /correlation — spot when markets fuse into one bloc 0.1.12 でリリース済み
Research Delivery Slack / Telegram / email-style IM channels 経由の scheduled briefs と live research sessions スケジューラ + IM Runtime 出荷済み
Community Shareable skills, presets, and strategy cards Exploring

Contributing

Contributions を歓迎します。ガイドラインは CONTRIBUTING.md を参照してください。

Good first issuesgood first issue でタグ付けされています。気になるものから始めてください。

より大きな貢献を検討している場合は、上の Roadmap を確認し、着手前に issue を開いて相談してください。


Contributors

Vibe-Trading に貢献してくださった皆さまに感謝します。

最近の v0.1.13 サイクルの貢献者とクレジット:

  • @santhreal — a 17-PR correctness and resource-leak sweep: the HTTP throttle now sweeps stale buckets interval-aware so rate-limit spacing survives (#1047), the rate limiter stops growing without bound on unique client IPs (#1039), the event bus notifies and removes subscribers on clear (#1046), _json_loads is guarded against corrupted JSON in database columns (#1045), NaN/inf volume and close no longer crash format_grounding_block (#1043), inf from pct_change on zero equity is replaced (#1041), Shoonya tolerates empty-string numerics (#1038), drawdown is computed from the absolute peak on negative equity (#958) and insolvent empty cross accounts are marked liquidated (#959), plus exact memory index anchors (#956/#957) and an A-share code / trade-journal parsing batch (#919, #926–#935)
  • @shadowinlife — HK market-data fallback routing repaired with a new Tencent HK source (#1000), Shadow multi-market backtests split per settlement currency (#997), bare US tickers routed to us_equity (#994), MCP list/dict arguments tolerating JSON-string clients (#993), generated signal engines passing the backtest sandbox validator (#992), and the memory GC dry-run fix (#973)
  • @honginp — the USD-M perpetual lifecycle end to end: funding and liquidation execution (#903), isolated & cross margin liquidation modelling (#889), ordered fidelity evidence persistence (#936), atomic position rebalancing (#951), and strict historical position rebalancing that preserves collateral, funding, fees and fill evidence (#1019)
  • @QCYTSN — the desktop Electron shell lifecycle (#923), Windows packaging with a checksum-pinned embedded runtime and safeStorage credential handling (#1015), and Settings model discovery + runtime identity UX (#924)
  • @Robin1987China — the technical_indicators (#921) and sentiment (#939) tools, annualisation entries for 15 data sources with a CI coverage gate (#891), indicator inputs read without sampling (#1005), and the quant_strategy_desk final report aggregator (#1048)
  • @Shizoqua — MCP specs cache keyed on remote server identity (#1049), memory FTS5 ranking with importance decay (#1032), swarm detection of ok/success:false tool failures (#1028), and lowercase 4h resampling in the yfinance loader (#1013)
  • @ngoanpv — timezone-aware scheduled research (#954, closes #953), one malformed record no longer breaking the whole store (#1003), interval creates without a resolvable zone (#1004), and delete-route job id validation (#980)
  • @he-yufeng — risk x-ray artifacts in portfolio runs (#900), Portfolio Studio artifacts surfaced in run detail (#966), yfinance crypto routed to the crypto engine (#970), and hierarchy-routed memory entries keeping their .md extension (#984)
  • @wiliao — Canadian markets end to end: TSX/TSXV market data (#1024) and symbol support through search fail-fast and CSV grounding (#1037)
  • @MuggleJinx — session and run history stored under the user runtime root (#925, closes #904) and ~/.vibe-trading/.env loaded on the connector command path (#902, closes #901)
  • @cgycorey — Alpha Zoo tools reaching MCP (#979) and mapping-shaped Responses stream events accepted (#1034)
  • @ofeksh-tr — the eToro Public API connector with path-separated demo/real profiles (#989) — broker connectors 12 → 13
  • @su322 — source message ids threaded into IM outbound so QQ replies stay passive (#1008), and the output principle that stops the agent once evidence is sufficient (#1010)
  • @zwrong — the vibe-trading update self-upgrade command (#1020)
  • @yrk111222 — ModelScope as an OpenAI-compatible provider (#1011)
  • @x-lambda — agent proxy opt-out covering sync and async clients (#995)
  • @dineeshd — authenticated API capability surfaces under enforced CSP (#961)
  • @hhj123123 — the canonical run root preserved after HOME isolation (#1012)
  • @00EVA — the Settings model dropdown auto-resizing so long provider/model slugs stay readable (#1006)
  • @darkknight4563 — bar_returns kept bit-identical for gapped positive series (#895)
  • @sambazhu — mootdx config pre-seeded in the sandbox home (#982)
  • @yagnikpipaliya — self-healing for Claude models that deprecate the temperature field (#890, closes #856)
  • @JungHoonGhae — the Korea equity (KRX) market engine (#693)
  • @shugaoye — the OpenBB Workspace bridge (#817)
  • @TSENGCHIENFENG — the read-only Taiwan snapshot tool (#848)
  • @ddy4633, @tyj147454413-cmd, @y85998607, @klmtseng, @ebujinovch, @g0rdonL, @AmirF194, @Echoandelementwebsites, @dvirarad, @1anter — correlation, loader, vn.py-export, PIT-fundamentals and alpha-bench fixes carried into this cycle
  • @warren618 / Haozhe Wu — the finance-math layer and valuation engine, the entity + cash-flow spine, run manifests and the hash-chained audit ledger, the four read-only data tools, the institutional commands and investor lenses, the grounding-gate repair, the analytic options payoff tool (#946), Codex OAuth recovery (#1014), the Shadow runtime root fix (#1017), release integration and open-PR/issue triage
v0.1.12 サイクルの貢献者
  • @santhreal — a 30-PR correctness sweep: strict-JSON / finite-number hardening across metrics, factors, pattern, and options (#764/#765/#766/#767/#739/#740/#744), loader correctness (#761 yahoo 1m bars), and session / journal robustness (#762/#763/#768/#769/#770)
  • @xkam7ar — broad reliability across packaging, web, scheduler, swarm, and CLI (#584), cancellation before the first AgentLoop iteration (#641, closes #638), QVeris session budget + atomic credit accounting (#685/#686), CI / OOS gates (#630/#632), and journal month-filter / side-parse fixes (#626/#628)
  • @shadowinlife — the Strategy Development Manager skill (#457, closes #455), pluggable OCR + LLM-vision extraction (#548), centralized provider credentials (#563), the 80× signal-alignment vectorization (#698), and swarm MCP-discovery caching (#704)
  • @ebujinovch — the correlation regime timeline endpoint + UI (#756, closes #719) and its correlation-regime skill (#557), plus the academic_corr_rewire factor (#705)
  • @honginp — Binance USD-M routing with execution/mark separation (#470/#716) and the maintenance-bracket decouple that keeps -PERP backtests zero-credential (#757)
  • @StaniellG — the MetaTrader 5 (Exness) broker connector + mt5 data source (#481)
  • @tyj147454413-cmd — the Binance fallback loader (#643), bounded OKX history with rate-limit handling (#644), and codex stream-failure classification (#663)
  • @Marnie0415 — composite sub-engine fallback for unknown symbols (#734) and the frontend insertBefore streaming DOM-race fix (#717)
  • @YZY0108 — the look-ahead-bias fix across all five portfolio optimizers (#487)
  • @UNHNQ — the SiliconFlow CN + Global providers (#565)
  • @FenjuFu — the iFlytek Spark provider (#537)
  • @jelech — the native Anthropic Messages API adapter (#695)
  • @octo-patch — MiniMax regional API endpoints (#731)
  • @Thibaultjaigu — the Requesty OpenAI-compatible gateway provider (#474)
  • @Robin1987China — realized portfolio turnover metrics for every optimizer (#478)
  • @YogeshModi24 — the Frazzini-Pedersen betting-against-beta academic factor (#480)
  • @0xZKnw — opt-in TAP mode for Alpaca (#377)
  • @sambazhu — the fundamental zoo _VALID_ZOOS whitelist (#707)
  • @nareshkps — Robinhood connector account_number wiring (#726)
  • @darkknight4563 — user swarm-presets directory discovery (#570)
  • @MikeCer — IBKR thread-local connection pool + snapshot quotes (#636)
  • @Shizoqua — local loader interval resampling (#467)
  • @roberttidball — FastMCP transport import compatibility (#469)
  • @yxhuang — bare-ticker resolution in the correlation matrix (#472, closes #471)
  • @Bortlesboat — stale OPENAI_BASE_URL provider-switch fix (#484, closes #482)
  • @ananaymital — preflight EnvConfig stale-cache fix (#479, closes #477)
  • @GabbaTauchi — reported the native zai streaming / base-URL bug (#758)
  • @warren618 / Haozhe Wu — the correlation regime backend integration, the zai provider streaming + base-URL resolution fix (#758), release integration, and open-PR/issue triage
v0.1.11 サイクルの貢献者
  • @shadowinlife — the api_server modularization capstone (1,103 → 371 lines, #424 closing #331), centralized env config with the AST CI gate (#440), loader fetch() protocol conformance (#437), and the Strategy Development Manager RFC in review (#455/#457) — 12 merged PRs this cycle
  • @Robin1987China — Research Autopilot Phase 3 loop closure (#267), 4 canonical academic alphas (#277), Shadow Account PIT-safe entry conditions (#302/#314/#316), the turnover-aware portfolio optimizer (#466), scheduled-research route tests (#452), and test-coverage batches for trade-journal / pattern / loader layers (#268/#269/#276)
  • @muku314115 — first-class Indian equity (NSE/BSE) support: the IndiaEquityEngine, cost stack, .NS/.BO routing, and the india_broker bridge (#305)
  • @mvanhorn — the end-to-end scheduled-research executor (#278), the Trading 212 read-only connector (#321), OpenAI default-model resolution (#319), and Robinhood config validation (#320)
  • @fei-moss — the analyze_image vision tool (#464), NapCat DM pairing (#463), and the IM-media allowed-roots report (#465)
  • @sambazhu — the value-investing toolkit: financial-rigor + report-audit tools, 4 skills, and the value_investing_committee preset (#407/#408)
  • @Elfsa-Miranda — the evidence-bound alpha research pipeline exploration (#405/#416, since re-scoped into #442)
  • @Hinotoi-agent — loopback CSRF rejection (#293) and authenticated remote same-origin UI requests (#304)
  • @dpersek — configurable IM reply timeout (#413) and the provider-preflight redirect fix (#404)
  • @digger-yu — cross-platform setup/dev commands (#292) and dev-dependency pre-checks (#349)
  • @skloxo — tilde expansion + file-roots safety fallback (#299) and reactive zh-CN localization (#301)
  • @kadaliao — the beginner tutorial (#393) and Alpha Library social cards (#396)
  • @morluto — CLI resume first-message preservation (#448) and the Codex OAuth default model (#446)
  • @yxhuang — the Kimi for Coding provider (#435) and the precise #433 diagnosis behind the governance-stack revert
  • @isaveall — the validation.json artifacts-dir fix (#429) and clearer --swarm-run errors (#428)
  • @mustafakamal88 — timezone-aware UTC timestamps (#397)
  • @irfanallana-oss — the zero-size order guard in trading_place_order (#417)
  • @Shizoqua — the central OHLC-invariant loader guard (#274)
  • @hobostay — SSRF-guard hardening for CGNAT/mesh ranges + the QQ media redirect fix (#389)
  • @aeonframework — Pillow / langchain CVE floor bumps (#390)
  • @hannibal-lee — the pandas version-constraint fix (#329)
  • @MarkfuGod — dynamic data-source counts + token-gated microcompaction (#296)
  • @gyx09212214-prog — strict JSON validation outputs (#306)
  • @LemonCANDY42 — the backtest report library (#224)
  • @fanfpy — Longbridge Decimal→float serialization (#459)
  • @asahikiko — packaged SKILL.md capability-count sync + the manifest guard test (#461)
  • @wison1717-maker — the mandate second-confirmation dialog + unified error toasts (#453)
  • @imsankz — opencode provider mappings (#444)
  • @flash1234pku — the tushare reference code-fence fix (#449)
  • @Penn-Live — the Docker startup route-iteration crash report (#450)
  • @warren618 / Haozhe Wu — the fundamental factor layer (PIT-safe SEC panels), the QVeris premium track, the IM channel runtime, India-equity integration review, CN search fallbacks, and release integration
v0.1.10 サイクルの貢献者
  • @Hinotoi-agent — a security-hardening wave: local-shutdown auth (#241), loopback-host rebinding rejection (#242), agent shell-tool opt-in (#243), settings-write auth (#245), mandate proposal-id containment (#256), persistent-memory type validation (#257), and MCP swarm run-id containment (#258)
  • @mvanhorn — the opt-in local data cache (#177), Gemini thoughtSignature round-trip over OpenAI-compat tool calls (#176), the custom data loader guide (#194), and the glm/zhipu provider alias + model-name inference (#247)
  • @gyx09212214-prog — loader robustness for malformed crypto/RSSHub timeout env vars (#227, #240), requested yfinance end-date inclusion (#226), strict run-card JSON for non-finite metrics (#238), and ddgs retry-fallback coverage (#239)
  • @BillDin — swarm agent status in the chat UI (#188), explicit preset-name handling (#189), the loader-backed market-data tool for swarm workers (#199), and preset-context continuations (#200)
  • @Robin1987China — the Research Autopilot goal-hypothesis bridge (#260), the local CSV/Parquet/DuckDB data loader (#252), and an assistant-prefill fix + configurable Kimi User-Agent (#248)
  • @LemonCANDY42 — the read-only runtime status dashboard (#210), persisted AgentLoop usage artifacts (#223), and opt-in Run Detail chart payloads (#225)
  • @zwrong — the trace.jsonl overhaul with zero truncation + offload (#206) and session-id on exit + resume <session-id> (#218)
  • @forge-builder — the AI contributor guide (#173) and the OpenClaw MCP research-only smoke-test docs (#165)
  • @skloxo — Chinese (zh-CN) frontend localization (adopted from #217)
  • @LeeCQiang — Chinese docstrings across all 452 Alpha Zoo factors (#180)
  • @KaiLuettmann — GHCR pre-built image publishing on release (#187)
  • @ngoanpv — Gemini thought_signature preservation through the AgentLoop dict path (#184)
  • @ShahNewazKhan — Docker host-Ollama reachability via host.docker.internal (#196)
  • @sambazhu — frontend sync of completed chat attempts (#236)
  • @bhlt — baostock-native code format support (#230)
  • @octo-patch — MiniMax M3 default model upgrade (#162)
  • @warren618 / Haozhe Wu — the global data layer (8 sources + 18 read-only data tools), the 10 broker SDK connectors, the alpha-compare full stack, the provider-reliability overhaul, multi-engine web_search fallback, responsive Stop + SSE reconnect, and release integration

Disclaimer

Vibe-Trading は研究・取引ソフトウェアです。投資助言ではなく、資金を一切保管せず、取引所も運営しません。取引はご自身が明示的に認可したブローカーチャネル(例: Robinhood Agentic Trading)を通じてのみ行われ、設定した制限の範囲内で、いつでも停止できます。このブローカー取引機能は実験的であり、当方が実際のブローカー口座で検証したものではありません——自己責任でご利用ください。過去の成績は将来の結果を保証しません。

License

MIT License — see LICENSE


Vibe-Trading が研究の役に立ったら、Star を付けると他の人にも見つけてもらえます。


Vibe-Trading をご覧いただきありがとうございます ✨

visitors