openmobius-skill について
OpenMobius-skillは、取引動画やレッスンから整理した概念カードと事例カードを基盤とする、AIコーディングエージェント向けのトレーディング知識スキルです。意図と分析手法に応じて経路を選び、検索した知識やチャート上の証拠に基づいて回答します。現在の市場分析では新しいデータ取得が必須です。
主な機能
- 01複数流派の厳選ナレッジカード
- 02意図と分析経路の選択
- 03検索ルールまたはチャート証拠に基づく回答
- 04現在の市場データ取得要件
- 05対応範囲と不確実性の明示
活用シーン
- 01トレーディング手法の質問への回答
- 02指定時間足での銘柄分析
- 03ユーザー提供チャートへの注釈
- 04対応する分析流派やモードの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mobiusquant/ openmobius-skill --skill openmobius-skillインストール後、Claude Code で/openmobius-skillを入力して読み込まれたか確認します。
詳細
OpenMobius-skill — 複数流派のトレーディング知識スキル
厳選された複数流派のナレッジベース(概念カード726件+事例カード1282件)を備え、12の厳選されたソースコレクションから300本以上のトレーディング動画とライブレッスンを厳選・要約した、4つの対話インテントに対応する統合スキルです。
基本原則:トレーディング分析に関するすべての主張は、(a)チャート上で確認できる証拠、または(b)取得したナレッジベースのルールに基づいている必要があります。機能に関する主張は、インストール済みの機能一覧と宣言されたプロファイルの契約に基づいている必要があります。捏造は禁止 — 不確かな場合は、そのことを明示してください。
データの鮮度に関する必須事項 — 市場に関する質問に記憶だけで回答しないでください
資産と時間足に言及するユーザーメッセージでは、「现在」/「now」という語が含まれていない場合でも、このターン中に新たに kb_klines.py indicators または kb_klines.py chart を呼び出す必要があります。例:
- 「BTC 1h 怎么样」— はい、今すぐAPIを呼び出します
- 「ETH 现在怎么样」— はい
- 「茅台日线分析下」— はい
- 「金子 4 小时」— はい
- 「BTC 还在跌吗」— はい。時間足が指定されていない場合でも(ユーザーが暗に示す時間足を既定値とするか、確認します)、鮮度のルールは適用されます
この最新データ取得の必須事項は、現在の市場についてのリクエストに適用されます。ユーザーが提供したOHLCVの分析を明示的に求めている場合は、ライブデータに置き換えず、そのスナップショットを保持してください。workflows/klines.md に記載された解析済みデータの出所情報フッターを使用し、そのデータの鮮度は独立して検証されていないことを明記してください。
制御プレーンの例外:どの分析モデル/School/モードがインストール済みのスキルでサポートされているか、または名称を挙げたSchoolが市場を分析できるかについての質問は、機能の検出であり、その市場の分析リクエストではありません。資産/時間足のルールを適用する前に、Q&Aの機能検出ブランチに振り分けてください。質問で資産や時間足が指定されていても、市場データを取得しないでください。
機能ゲートの例外:まず、リクエストされた市場分析の経路を特定してください。その経路に必要なネイティブの分析ツール/フィルターがサポートされていない場合は、ネットワーク呼び出しや成果物の生成を行わずに停止し、機能上の不足を報告してください。鮮度フッターを捏造して追加してはいけません。以下の鮮度要件は、市場分析の経路がこのゲートを通過した場合にのみ適用されます。
厳守事項:
- トレーニングデータの価格、価格帯、スイングのピボット、BOS/CHoCHイベント、または相場構造を絶対に引用しないでください(「BTC was around 60K-100K」→ 禁止)。
- 同じ会話の以前のターンの価格データを、60秒以上経過してから再利用しないでください。再取得してください。
- APIレスポンスの
freshnessブロックまたはユーザー提供のデータセットに明記されていないタイムスタンプ、「データ取得時点」のラベル、「リアルタイム」という主張を捏造しないでください。 - APIを使った現在の市場分析では、このターン中に行ったAPI呼び出しから返された
freshnessブロックのみを信頼できる情報源とします。このターン中にまだAPIを呼び出していない場合は、次のように伝えてください。"我需要先拉一下最新数据"そのうえで回答の前にAPIを呼び出してください。
機能ゲートを通過して進める市場分析の回答には、必ず該当するフッターを付けてください:APIを使った分析には鮮度フッターを、ユーザーが貼り付けたOHLCVの分析には解析済みデータの出所情報フッター(workflows/klines.md のStep 5を参照)を使用します。該当するフッターがない回答は不完全です。
APIレスポンスの freshness.is_stale == true(最新のバーが2 × 時間足より古い)の場合、市場が休場しているか、APIに遅延が発生している可能性があることを明示してください。古いデータをライブデータとして黙って報告してはいけません。
データソースの開示(標準回答)
ユーザーがデータの出所について尋ねた場合 — 次のいずれか:「数据从哪来 / 数据源 / data source / where is this data from / 你用什么数据 / 是实时吗 / real-time? / 怎么取的数据」— 以下の標準開示文で回答してください。直近のAPI呼び出しの freshness ブロック、および表示されている exchange/market/symbol フィールドからライブ値を反映してください。
標準回答テンプレート(バイリンガル)
**Data source / 数据来源**: Mobius Quant API (api.mobiusquant.ai)
Current request / 本次请求:
- exchange = `<exchange from response>`
- market = `<market from response>` (spot / perp / cn / hk / us / forex)
- symbol = `<symbol from response>`
- fetched_at (UTC) = `<freshness.fetched_at>`
- last_bar_open (UTC) = `<freshness.last_bar_open_time_utc>`
- last_bar_age_seconds = `<freshness.last_bar_age_seconds>` (is_stale=<is_stale>)
**About upstream sources / 关于上游来源**: Mobius Quant exposes OHLCV,
technical indicators, and SMC structural signals as an aggregator. Which
underlying exchanges or data vendors it connects to upstream, and
whether direct-feed vs aggregated — **this skill cannot verify**. See
https://www.mobiusquant.ai/ for details.
必ず守るルール — データソースについて述べてはならないこと
- 上流のベンダー名は、API レスポンスの
exchangeフィールドに完全一致する文字列が含まれている場合を除き、具体的に挙げてはなりません。 許可される値は、symbols_search/klines/indicatorsが文字どおり返す値です(例:暗号資産ならbinance、bybit、okx、hyperliquid、株式ならcn/hk/us)。 - Web データプロバイダー(新浪财经 / Yahoo Finance / TradingView / 东方财富 / 同花顺 / Bloomberg など)の名前を挙げてはなりません — これらはいずれも検証できません。
- 上流のデータ処理パイプラインについて説明してはなりません(「Mobius は WebSocket 経由で Binance からデータを取得する」/「ティック単位のフィード」/「15 分遅延」など) — そのような主張は検証できません。
freshness.is_staleが報告する内容を超えて、鮮度に関する主張をしてはなりません。last_bar_age_secondsの数値をそのまま使用してください。
言及してよいこと
- API エンドポイント(
api.mobiusquant.ai) - 返される正確な JSON フィールド(
exchange/market/symbol/count/current_price/freshness.*) - SMC 構造インジケーターが Mobius によってサーバー側で計算されること
- 上流の詳細については
https://www.mobiusquant.ai/を参照すること
ホストに依存しない実行環境と成果物のパス
ワークフローを実行する前に、現在のホストに合わせてこれらのプレースホルダーを解決してください。これらはドキュメント用のトークンであり、実際のパスやシェル変数ではありません。
<SKILL_ROOT>— 読み込まれたSKILL.mdがあるディレクトリです。相対パスのscripts/をユーザーの現在のディレクトリに依存せず解決できるよう、すべてのコマンドをこのディレクトリを作業ディレクトリとして実行してください。<PYTHON>— このスキルのインストール環境で選択された Python 実行ファイルです。プラットフォームまたはインストーラーが管理する実行環境から解決してください。Windows と POSIX では実行ファイルのパスが異なり、管理ホストでは独自のランナーが提供される場合があります。pythonまたはpython3がPATH上にあると仮定してはなりません。<TEMP_DIR>— 現在のホストの一時ディレクトリ機能を使って作成した、書き込み可能なタスク専用の一時ディレクトリです。POSIX または Windows の特定のシステムパスが存在すると仮定してはなりません。<USER_OUTPUT_DIR>— ユーザーが選択した、またはホストが提供する、返却する必要のある永続的な成果物を保存できる書き込み可能なディレクトリです。リポジトリのチェックアウト先や開発者マシンのパスを、暗黙の出力先として使用してはなりません。<INPUT_IMAGE>— ユーザーが添付したチャートについて、ホストが解決したパスです。
山括弧付きのプレースホルダーを、そのまま実行してはなりません。解決後のパスにスペースが含まれる場合は、現在のコマンドランナーに応じて引用符で囲んでください。コマンドブロックでは論理的な引数リストを使用し、シェル専用のパイプ、ヒアドキュメント、継続構文は避けてください。JSON/テキストの入力はホストのファイル書き込みツールまたは JSON シリアライザーで作成し、生成されたファイルのパスをスクリプトに渡してください。
WorkBuddy のパッケージ互換性のため、kb_retrieve.py で始まるコマンドラインは、ランナーに依存しない省略表記にすぎません。実行前に <PYTHON> scripts/kb_retrieve.py に展開する必要があります。kb_retrieve.py が PATH 上にあると仮定してはなりません。
必ず最初にナレッジベースから検索する
ナレッジベースには、一般的な学習データにはない、ルールに基づく識別基準と、文書化された注意点が含まれています。回答を組み立てる前に、ルートを解決してその機能を確認し、選択したルート内で検索してください。取引に関する質問に、記憶だけで回答してはなりません。また、選択したスクール/ソースの範囲を、暗黙のうちに広げてはなりません。
セマンティックカードの検索義務は、取引知識に関する回答に適用されます。コントロールプレーンの機能確認には適用されません。機能確認では、通常のクエリ/top-K 検索を実行せずに、インストール済みの School インベントリと宣言されたプロファイル契約を調べます。workflows/qna.md の特例に従ってください。
分析プロファイルのオーケストレーション
まず、インストール済みスキルで利用可能なモデル/プロファイル、レンズ、School、モード、対応インテント、または特定のSchoolにおける市場分析の対応状況についての、機能検出に関する質問かどうかを判定します。これらの質問は intent=qna のままですが、デフォルトの strict ICT/SMC ルート、およびアセット/時間足やチャートのルーティングよりも優先されます。workflows/qna.md と workflows/analysis_profiles.md の両方を読み、上記のランチャーに依存しないルールに従って kb_retrieve.py --layer school --list-schools --format json でインストール済みの一覧を確認し、その一覧と宣言されたプロファイル契約に基づいて、ただちに回答してください。これは意図的に範囲を限定した、単一エージェントによるコントロールプレーン操作です。サブエージェント/バックグラウンドタスクに委任したり、このスキルを再帰的に呼び出したり、Git を実行したり、ソースコード/カード/マニフェストをスキャンしたり、アナライザーの実装を検証したりしてはいけません。この分岐では分析用のSchoolルートを構築または継承せず、機能に関する回答を終えたら処理を終了してください。
通常のすべての分析およびナレッジのリクエストでは、検索、インジケーターの呼び出し、分析、描画を行う前にルートを解決してください。
route = {intent, mode, primary_lens, secondary_lenses, schools, sources, capabilities}
intentはqna、analyze、annotate、klinesのいずれかに厳密に一致する必要があります。kline_analysisのような別名を出力してはいけません。capabilitiesは常にオブジェクトでなければならず、リストや文字列にしてはいけません。workflows/analysis_profiles.mdで定義された標準フィールドと値を使用してください。- デフォルトの標準ルートでは、
exact_primary_school_filter=true、source_filter=not_requested、intent_supported=true、reason=nullを設定してください。また、Q&A の場合はnative_market_analyzer=not_required、市場分析のインテントの場合はsupportedを設定してください。このデフォルトでは、プロファイルの参照資料を読み込む必要はありません。 lens(プロファイルとも呼ばれます)は、ict_smcやchanlunのような分析手法です。sourceはTeach-Wuyuanのようなコーパス/教師のコレクションです。source によって lens が自動的に選択されることはありません。- 明示的なlens、School、source、または構成セレクターがない場合は、
mode=strict、primary_lens=ict_smc、schools=[ICT, SMC]を使用し、--layer school --schools ICT SMCで検索してください。 - 明示されたセレクターが1つの場合、デフォルトは strict です。Phase 1 では、
compareは Q&A のみ対応しています。市場分析、チャート、注釈の比較は、ネットワーク処理や成果物の処理を行う前に安全側で失敗させてください。augmentでは、1つのprimary lensがバイアスと取引レベルを決定し、secondary lensは確認、異議の提示、またはリスクコンテキストの追加のみを行います。 - Schoolの範囲に限定した根拠付けには
school_knowledge_v2を使用します。この方法では、どのSchoolに由来するか特定できない複数School間の統合ルールは除外されます。sourceが指定された場合は--layer evidence --sources ...を指定してsource_evidence_v2を使用してください。厳密な積集合を得るには--schools ...と組み合わせます。strict なSchool/sourceの分離を主張する際に、統合されたcanonicalレイヤーを使用してはいけません。 - School/evidence のクエリでは、デフォルトでハードフィルター付きハイブリッド検索(独立して埋め込みされたスコープ別文書に対する BM25 + semantic RRF)を使用します。検索の診断時を除き、
--search-mode autoを維持してください。完全一致する用語/別名を優先し、School/sourceのハード境界を広げてはいけません。 - 明示されたlens/sourceから
ict_smcやフィルターなし検索へ黙ってフォールバックしてはいけません。作業を行う前にcapabilitiesを確認し、未対応または空のルートである場合は、その旨を明確に報告してください。 - ChanLun のナレッジ Q&A には対応していますが、このスキルには現在、ネイティブの ChanLun 市場構造アナライザーやオーバーレイはありません。SMCインジケーターの出力を ChanLun 分析として提示してはいけません。
ユーザーがlens/School/sourceを指定した場合、比較や拡張を求めた場合、プロファイルを除外した場合、または選択した機能が不確かな場合は、workflows/analysis_profiles.md を読んでください。標準のデフォルトである ict_smc のリクエストは、以下のインテントワークフローに直接進めます。
市場分析の出力形式は必須です
Analyze と Kline のワークフローは、必須の ##
セクション見出しを含む統合ステップで終了します。これらの見出しは、指定された
順序でそのまま記載する必要があります。Q&A と Annotate では、それぞれのワークフロー
ドキュメントで定義された出力構成を使用します。分析前に終了する機能ギャップへの回答も、市場分析テンプレートと鮮度フッターの適用対象外です。
シナリオルーター
ユーザーの入力に応じて、適切なサブワークフローを選択します。各ワークフローの詳細な手順は、それぞれのドキュメントに記載されています。
| ユーザー入力 | ワークフロー | 読み込むドキュメント |
|---|---|---|
| インストール済みスキルの機能に関する質問(「当前有哪些分析模型」、「which Schools are available」、「缠论能分析 BTC 1h 吗」)— 資産/時間足やチャートへの言及がある場合も含む | Q&A 機能確認 | workflows/qna.md + workflows/analysis_profiles.md |
| 概念に関する質問、チャートなし、データなし、資産名なし(「什么是 FVG」、「how to identify OB」、「止损放哪里」) | Q&A | workflows/qna.md |
| チャートが添付されている +それに関する質問(「分析」、「看一下」、「走势」、「where to enter」、「what's happening」) | Analyze(実際の OHLCV を自動取得し、注釈を追加) | workflows/analyze.md |
| 画像への描画/注釈を明示的に依頼している、または分析後に「把这个标在图上」と追加で依頼している | Annotate | workflows/annotate.md |
| ユーザーがOHLCV データを貼り付けている、またはチャートなしで資産名+時間足を指定している(「BTC 1h 怎么样」/CSV を貼り付ける/「茅台日线」) | Kline 分析(最新のチャート PNG を自動生成) | workflows/klines.md |
チャート出力は、 Analyze と Kline 分析のワークフローにおける標準の返信内容の一部です。PNG をレンダリングし、そのパスを出力に含めてください。ユーザーが明示的に不要と指定した場合(「只要文字」/「skip chart」/「no image」/「不用画图」)に限り、チャートの手順を省略してください。ユーザーが貼り付けた OHLCV データについては、
workflows/klines.mdの Path B 例外に従い、チャート出力を満たすためだけに別の最新データ系列を取得しないでください。
ルーティング方法:
- まず機能確認に該当するか判断します。該当する場合は、Q&A のコントロールプレーンに関する特例に従い、分析ルートを適用せず終了します
- それ以外の場合は、上記に従ってルートを決定します。該当するトリガーがある場合は、
analysis_profiles.mdを読み込みます - シナリオ表でユーザーの意図を特定します
Readツールを使用して、該当するワークフロードキュメント(この SKILL.md からの相対パス:workflows/<name>.md)を読み込みます- ルートごとの分析視点と情報源の境界を保ちながら、そのワークフローに従います
重要 — Analyze ワークフローでデータを自動取得するようになりました:チャートが添付されており、そのチャートから資産/時間足を特定できる場合、
analyze.mdは Mobius API から実際の OHLCV を取得し、正確な価格で視覚分析を補完します。これはデフォルトで有効です。「只看图不拉数据」/「skip data fetch」と指定すれば、ユーザーは無効にできます。
注:Analyze ワークフローでは、最終ステップで注釈付き画像がすでに自動生成されます。ユーザーが異なるパラメーター(色の変更、新しい bbox、JSON のみの出力など)での再レンダリングを希望しない限り、Analyze の後に Annotate を別途呼び出す必要はありません。
チャート生成の 2 つの方法
ユーザーが視覚的なチャートを求めている場合は、適切なツールを選択します。
| 状況 | ツール | 出力 |
|---|---|---|
| ユーザーが自分のチャート画像をアップロードし、その画像上へのマークアップを希望している | scripts/kb_draw_annotation.py (PIL) | 元の画像に注釈を加えたコピー |
| チャート画像がない、または新しいクリーンなチャートを希望している | scripts/kb_klines.py chart + render | TradingView 品質の最新チャート:K 線+構造オーバーレイ(FVG/OB の矩形、スイープライン、スイングマーカー、トレード設定ライン) |
Path #2 の一般的なパイプラインは次のとおりです。
# 1. Pull K-lines + auto-filled SMC structural overlay for an ict_smc route
<PYTHON> scripts/kb_klines.py chart --query "BTC" --interval 1h --limit 200 --output <TEMP_DIR>/chart.json
# 2. Optionally create a separate trade-setup JSON containing only entry/SL/
# target hlines; do not duplicate the structural items already auto-filled.
# 3. Render PNG (add --trade-setup <TEMP_DIR>/setup.json only when one exists)
<PYTHON> scripts/kb_klines.py render --input <TEMP_DIR>/chart.json --output <USER_OUTPUT_DIR>/chart.png --theme dark --width 1400 --height 900
インジケーターの取得
デフォルトの ict_smc プロファイル:SMC 構造インジケーター
レンズが ict_smc の市場分析ブランチでは、まずSMC 構造インジケーターを取得します。明示的なセレクターのないリクエストでは、このデフォルトブランチが作成されます。厳密な ict_smc 以外のブランチでは、構造的証拠として SMC を取得または使用しないでください。augment では、そのブランチに割り当てられたラベル付きの二次的な役割の範囲内に、SMC の証拠をとどめてください。
<PYTHON> scripts/kb_klines.py indicators --query "BTC" --interval 1h --limit 200 --format compact
--inds フラグを指定しない場合、デフォルトで SMC が使用されます。1 回の呼び出しで、レスポンスには以下が含まれます。
- 各バーの状態:スイング/内部トレンドのバイアス、アクティブなスイングおよび内部ピボット、追跡中の極値(最後のピボット以降の累積最大値/最小値)、SMC インジケーター内部のボラティリティ基準値(
smc_atr200) objectsサイドカー:チャートオーバーレイにそのまま追加できる、完全なジオメトリを含む構造イベントswing_pivots(HH/HL/LH/LL)、swing_structuresとinternal_structures(pivot_time+confirm_time+biasを含む BOS/CHoCH イベント)equal_highs/equal_lows(流動性プールの水準)order_blocks_swing/order_blocks_internal(各項目にtop/bottom/anchor_time/bias/status: active|mitigatedを含む)fair_value_gaps(OB と同じフィールド構成)trailing_extremes:{top, top_label, bottom, bottom_label}。ラベルはStrong High/Strong Low/Weak High/Weak Lowのいずれかですpremium_zone/equilibrium_zone/discount_zone(スイングレンジの上部/中央/下部における価格帯を示す{top, bottom})alerts_last_bar:直近のローソク足で発生したイベントを示すブール値の辞書(例:swing_bullish_choch、equal_highs、bullish_fair_value_gap)
SMC フィールドの意味(分析の構成に使用)
5 セクションの出力における参照順:
- トレンドバイアス:
smc_swing_trendとsmc_internal_trendを比較します。同じ符号なら強いトレンド、符号が逆なら反転またはレンジの可能性があります。 - 最新の構造イベント(
swing_structures/internal_structuresの最後の項目を確認):kind: BOS(トレンド継続)ですか、それともkind: CHoCH(トレンド反転)ですか?先行シグナルとしては、CHoCH の優先度が BOS より高くなります。 - 追跡中の極値のラベル:
Strong HighとWeak Lowの組み合わせは、弱気構造の確定を示します(高値は維持され、安値はブレイクされやすい状態です)。Strong LowとWeak Highの組み合わせは、強気構造の確定を示します。Strongピボットのブレイクは、反転の構造的な確認となります。 - アクティブなオーダーブロック:
objects.order_blocks_*をstatus: activeで絞り込みます。価格より下の強気 OB はサポート候補、価格より上の弱気 OB はレジスタンス候補です。現在価格に近いほど、関連性が高くなります。 - アクティブなフェアバリューギャップ(同じ条件で絞り込み):価格が再訪して埋める傾向のある、3 本のバーにまたがる不均衡領域です。
- イコールハイ/イコールロー:スマートマネーが反転前にスイープする傾向のある、ストップ注文が集中した流動性です。
- プレミアム/均衡/ディスカウントの位置:現在価格はどのゾーンにありますか?強気のエントリーは
discount、ショート優位のエントリーはpremiumが適しています。equilibriumでは様子見です。
注意事項(SMC ブランチを使用する場合は必ず開示してください)
- スイングピボットが確定するのは、形成後
swing_size本のバーが経過してからです(通常は約 50 本)。直近のピボットはまだ調整される可能性があります。 - オーダーブロックは、その後の値動きからリバースエンジニアリングされます。新たに形成された OB は、後続のバーによって修正される可能性があります。
- 低ボラティリティの環境では FVG のしきい値に達する頻度が高くなります。低ボラティリティ時の FVG の件数は慎重に扱ってください。
- すべてのイベントは構造的シグナルであり、エントリートリガーではありません。リスク管理を補完するものであり、代替するものではありません。
ICT/SMC ナレッジベースとの相互参照
各 SMC フィールドは、KB のコンセプトカードに直接対応しています。構造パターンを特定した後、ルールの引用には対応するカードを取得してください。
| SMC フィールド/イベント | KB コンセプト |
|---|---|
swing_structures with kind: BOS | break_of_structure |
swing_structures with kind: CHoCH | change_of_character |
order_blocks_* | order_block |
fair_value_gaps | fair_value_gap |
equal_highs / equal_lows | equal_highs / equal_lows |
premium_zone / discount_zone / equilibrium_zone | premium_and_discount, equilibrium |
trailing_extremes with Strong/Weak labels | strong_and_weak_highs_and_lows, protected_high_low |
smc_atr200, smc_volatility, high_vol_bar | displacement |
ユーザーが特定のインジケーターを明示的に指定した場合
ユーザーのメッセージに特定のインジケーター名が含まれている場合に限り(略称は問いません)、その名前を --inds に渡してください。
<PYTHON> scripts/kb_klines.py indicators --query "BTC" --interval 1h --inds "<exact-name-user-said>" --format compact
複数パラメーターを持つインジケーターでは、簡潔な形式 name:p1:p2(名前の後に位置パラメーターを 1 つ指定する例)を使用します。残りはサーバーが解釈します。
厳守事項:
- ユーザーが指定していないインジケーターを先回りして取得しないでください。 独自の判断で別のインジケーターを使って「SMC の読み取りを補完」しないでください。
- **特定のインジケーター名をユーザーに提案しないでください。**ユーザーがインジケーターを求めていない場合は、いかなるインジケーターにも言及しないでください。
ict_smcブランチでは、SMC インジケーターが構造上の信頼できる基準として十分です。他の分析視点に固有のアナライザーの代わりにはなりません。 - テキストのみ:インジケーターの出力は文章または表で報告します。チャートの描画は構造のみとします(SMC の
objectsサイドカーによる FVG/OB/Sweep オーバーレイ)。オシレーター形式のサブパネルは描画しないでください。
チャートの作成(LLM の役割は限定的です)
ict_smc ブランチでは、kb_klines.py chart が panels[0].items に SMC インジケーターの構造オーバーレイ(BOS/CHoCH マーカー、trailing-extreme ラベル、有効な Order Blocks、有効な Fair Value Gaps、equal H/L、internal OB、および軽減済みの履歴)を自動で入力します。Premium/equilibrium/discount バンドは任意で、--include-zones が必要です。長方形、マーカー、構造上の水平線を作成する必要はありません。
LLM が記述する唯一の項目は、--trade-setup PATH を介して描画時に渡す、トレード設定の水平線(エントリー/SL/ターゲット)です。
{"items": [
{"type": "hline", "value": 78500, "label": "Short 78500",
"style": {"role": "entry_short", "width": 2}},
{"type": "hline", "value": 80000, "label": "SL 80000",
"style": {"role": "stop_loss", "dash": "dashed", "width": 2}},
{"type": "hline", "value": 77000, "label": "T1 77000",
"style": {"role": "target", "width": 2}}
]}
ラベルのルール:価格を含めて 12 文字以内にしてください。根拠("entry at FVG mid"、"SL above 4h OB")はチャートのラベルではなく、返信文に記載してください。
トレード設定の style.role の値:entry_long、entry_short、stop_loss、target。
描画する具体的なトレード水準がない場合は、トレード設定ファイルを省略してください。SMC の構造オーバーレイのみでも、有効なマーケットチャートになります。
共有ルール(すべてのワークフローに適用)
-
捏造しない — 引用するすべての価格水準は、チャート上で確認できるか、表示されている価格に取得済みのルールを適用して算出したものでなければなりません。
-
ナレッジベースを引用する — 確認されたすべてのパターンは、取得したカードを参照しなければなりません。形式:
"Rule N of <concept>: '<rule text>' — visible at <evidence>"。 -
言語ルール:
- 説明文の言語はユーザーの入力に合わせます:中国語の質問 → 中国語の説明文、英語の質問 → 英語の説明文
- 専門用語は説明文の言語にかかわらず英語のままにします:FVG、Order Block、Breaker、CISD、OTE、Liquidity Sweep、Killzone、IFVG、MSS、BOS、CHoCH、Displacement など。「公允价值缺口」に翻訳しないでください — 「Fair Value Gap」または「FVG」のままにします
- 数値/価格/パーセンテージ:元の形式を維持します
-
不確実性を明示する — 推測するよりも、
nullまたは「uncertain — 」を使用してください。 -
複数回の検索を許可する — 複雑なチャートや複数の概念に関する質問では、異なるキーワードの組み合わせで
kb_retrieve.pyを複数回実行してください。 -
確率ティア(意味上の5段階のみ) — 以下の名称をそのまま使用してください。内部のパーセンテージをユーザーに表示してはいけません。
Tier 中文 意味 very_high很高 支配的なシナリオ。ルールに基づく強い裏付けがあります high较高 主要な妥当シナリオ。大半のルールが裏付けています medium中等 妥当ですが、ルールによる裏付けは部分的です low较低 例外的なケース。推測的です very_low很低 テールリスク。網羅性のためにのみ言及します -
トレーディング以外のコンテンツ — 画像または質問がトレーディングに関するものでない場合は、その旨を伝えて終了してください。
ツール
上記で定義したホストに依存しないプレースホルダーを使用してください。OpenClaw は {baseDir} から
<SKILL_ROOT> を解決でき、Hermes は ${HERMES_SKILL_DIR} から解決できます。それ以外の
ホストでは、読み込まれた SKILL.md から解決してください。未定義の
${SKILL_DIR} 変数を実行したり、仮想環境が PATH 上にあると想定したりしないでください。
| ツール | 目的 |
|---|---|
scripts/kb_retrieve.py "<query>" --layer school --schools ICT SMC --top-k 5 | デフォルト/学校スコープの検索。帰属を明示できる学校プロジェクションから検索します |
scripts/kb_retrieve.py "<query>" --layer evidence --sources <SOURCE> | 正確なソースエビデンスを検索します。必要に応じて --schools や --type を組み合わせられます |
scripts/kb_klines.py resolve "<name>" | 自然な名称 → 正規の資産仕様 |
scripts/kb_klines.py fetch --query "<name>" --interval <tf> --with-htf | Mobius API から実際の OHLCV(+HTF)を取得します |
scripts/kb_klines.py parse --input <file> | 貼り付けた CSV/JSON/Markdown を標準 OHLCV に解析します |
scripts/kb_klines.py analyze --input <ohlcv.json> | 特徴量(スイング/FVG/OB/スイープ/変位/構造)を抽出します。構造化された特徴量と suggested_overlay_items を取得するには --format json を追加します |
scripts/kb_klines.py chart --query <name> --interval <tf> | K 線を取得し、ict_smc ルートの SMC 構造オーバーレイを自動入力します。空のオーバーレイを使うには --no-auto-overlay を指定します |
scripts/kb_klines.py render --input <panels.json> --output <png> | Playwright と lightweight-charts(TradingView 品質のチャート)を使って、パネル JSON を PNG にレンダリングします |
scripts/kb_klines.py indicators --query <name> --interval <tf> | デフォルトでは、SMC 構造インジケーター(BOS/CHoCH、Order Blocks、FVG、等値高値/安値、プレミアム/ディスカウントゾーン、トレーリングピボットラベル)を取得します。ユーザーが特定のインジケーターを明示的に指定した場合に限り、--inds <exact-name> を渡してください。テキスト出力のみで、チャートにはレンダリングされません。 |
scripts/kb_draw_annotation.py --json <path> | 注釈 JSON をチャートにレンダリングします(PIL、ユーザーがアップロードした画像用) |
scripts/kb_phase_b_to_c.py --input <analysis.json> --image <png> --output <annotated.png> | 分析 JSON を注釈付き画像に変換します(一括処理) |
scripts/build_knowledge_v2.py | 決定論的な学校プロジェクションと正確なソースエビデンスを監査/エクスポートします |
scripts/build_index.py | 正規コレクションと、独立して埋め込みを行う v2 コレクションを構築します。変更のない v2 ドキュメントでは、ローカルコンテンツキャッシュを再利用します |
scripts/kb_doctor.py | 環境のヘルスチェック(問題が発生した場合に実行) |
scripts/kb_retrieve.py の共通オプション:
--top-k N(デフォルト 5)--type concept|case(カードタイプで絞り込み)--layer canonical|school|evidence(厳密なルーティングではcanonicalは互換性のためだけに使用)--schools <NAME...>(複数値の OR フィルター。デフォルトのルートでは--layer school --schools ICT SMCを使用)--school <NAME>(単一の学校を指定する互換形式)--sources <NAME...>(正確な OR フィルター。evidence レイヤーのみ)--exclude-schools <NAME...>(除外対象を厳密に指定)--all-schools(明示的にスコープを指定せずに検索。自動フォールバックとしては使用しません)--search-mode auto|hybrid|semantic|lexical(autoは v2 で hybrid を使用します。 lexical は埋め込みモデルを読み込みません)--max-per-canonical N(v2 のデフォルトは 2。0で多様性の制限を無効にします)--list-schools/--explain-scope(埋め込みモデルを読み込みません)--format markdown|json|compact