mcpField
C
create-strategy

create-strategy

github.com/upbit-officialその他10118 回インストール15 週間前に更新
リポジトリ

create-strategy について

create-strategy は upbit-strategy-toolkit の戦略設計スキルです。利用者のアイデアをテスト可能な戦略 JSON にまとめ、承認後に検証して保存し、検証は backtest に引き継ぎます。バックテストの実行や投資助言は行いません。

主な機能

  1. 01アイデアを検証可能な仮説に整理
  2. 02売買とリスク管理のルールを構成
  3. 03ConditionGroup JSON の生成と検証
  4. 04承認後に戦略ファイルを保存
  5. 05仮説と判定基準を backtest に引き継ぎ

活用シーン

  1. 01市場仮説を戦略ファイルに変換
  2. 02利用者指定の売買条件をルール化
  3. 03backtest 用の検証済み JSON を準備
  4. 04バックテスト結果をもとに新しい版を作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/upbit-official/upbit-strategy-toolkit --skill create-strategy

インストール後、Claude Code で/create-strategyを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
strategy-template.json
references/
error-recovery.md
indicators.md
schema.md
scripts/
upbit-strategy-toolkit.sh

詳細

create-strategy

このスキルは、自然言語で記述された戦略のアイデアを、バックテストスキルに引き継げる状態の保存済み戦略 JSON ファイルに変換します。

アイデア → 仮説 → 設計のすり合わせ → 承認 → ConditionGroup JSON → 検証 → {data_root}/strategies/{slug}.json に保存 → backtest に引き継ぎます。

このスキルは、仮説から反証に至るワークフローの戦略設計段階です。自然言語のアイデアを、具体的な JSON 戦略定義に 1 つ以上変換します。バックテストは仮説を反証するためのツールであり、このスキルは仮説を実行可能な形式に変換します。

ドメインのカタログと詳細なルールは references/ に分けてあります:

指標名、インジケーター名、または戦略用語を韓国語で説明する場合は、skills/references/glossary.md を読み込んでください。


データルートと実行モード

作業を開始する際にモードを特定し、{data_root} を絶対パスとして解決してください。

モード判定方法{data_root}(config set data-dir が実行されていない場合に使用)
クローンモードupbit-strategy-toolkit リポジトリのワークスペース/cwd で実行中実行時の現在の作業ディレクトリ
エージェントスキルモード(グローバル)npx skills add ... -g でスキルがインストールされており、リポジトリが現在のワークスペースにない実行時の現在の作業ディレクトリ
エージェントスキルモード(プロジェクトスコープ)npx skills add ...(-g なし)でスキルがインストールされており、リポジトリが現在のワークスペースにない実行時の現在の作業ディレクトリ

config get data-dir が未設定を返す場合、CLI はモードにかかわらず実行時の現在の作業ディレクトリを使用します。ユーザーが config set data-dir を実行している場合は、保存された値が代わりに使用されます。判断に迷う場合は、上の表から推測するのではなく、bash scripts/upbit-strategy-toolkit.sh config get data-dir で確認してください。

ユーザーの承認後、戦略 JSON を {data_root}/strategies/{slug}.json に保存してください。同じ slug がすでに存在する場合は、上書きせず、-v2/-v3 などの新しいファイル名を使用してください。

ツール呼び出しには、このスキルのラッパーを使用し、upbit-strategy-toolkit を直接実行しないでください。

bash scripts/upbit-strategy-toolkit.sh ...

ルーティング契約

  • 役割:自然言語の戦略アイデアを、テスト可能な戦略 JSON として保存します
  • 前提条件/復旧:uv がない場合、ラッパーが失敗した場合、または CLI が失敗した場合は setup にルーティングします
  • 次のステップ:backtest
  • 引き継ぎ情報:slug、hypothesis、falsification_criterion、notes
  • 対象範囲外:このスキルはバックテストの実行や結果の解釈を行いません

トリガー

  • 「ゴールデンクロスを使った Bitcoin 取引戦略を作成して」
  • 「RSI の売られすぎで買い、買われすぎで売る戦略を作成して」
  • 「バックテスト結果を見て、損切りを厳しくして」(既存の戦略 -v2)
  • 「この仮説から戦略を作成しよう:出来高急増+トレンド反転=エントリー」

禁止事項

  • 自動取引/ライブ取引には接続しないでください - 要望された場合は、ライブ取引のガードレールを参照してください。
  • 資産、エントリーのタイミング、取引価格、目標リターン、保有期間を推奨しないでください - このスキルは、ユーザーが提示したアイデアを検証可能なルールにまとめるものであり、投資の推奨は行いません。
  • ユーザーの承認前に JSON を保存しないでください - STEP 2 の承認ゲートを通過する前に、ファイルを書き込まないでください。
  • JSON を直接編集するようユーザーに促さないでください - このスキルが JSON を作成し、ユーザーは自然言語だけで調整します。
  • カタログ外のインジケーターを推測しないでください - 15 種類の JSON タイプ/16 種類の対象インジケーター(references/indicators.md)以外は受け付けないでください。
  • 検証エラーをユーザーに処理させないでください - 検証エラーは自己修正ループ(references/error-recovery.md)で対処してください。

投資推奨のガードレール

ユーザーから、何を買うか、売るか、保有するか、選ぶか、いつ取引するか、どの目標リターンを目指すか、どの価格で取引するか、どれくらいの期間保有するかを尋ねられた場合、推奨そのものには回答しないでください。

以下の注意書きを、記載どおりに回答の末尾に付けてください。ユーザーのメッセージが韓国語の場合は韓国語版を、それ以外の場合は英語版を使用してください。

韓国語:

Upbit Strategy Toolkit은 어떠한 경우에도 특정 종목, 거래 시점, 투자 방식, 투자 전략 등을 추천·권유하지 않습니다. 생성되는 응답은 사용자가 이용 중인 AI 모델이 입력 내용과 도구 실행 결과를 바탕으로 생성한 것으로, 거래·투자 행위와 관련된 모든 책임은 이용자에게 귀속됩니다.

英語:

Upbit Strategy Toolkit does not, under any circumstances, recommend, advise on, or solicit the purchase, sale, timing, method, or strategy of any specific asset or investment. Any responses are generated by the AI model based on the user's inputs and tool executions. All responsibility for trading and investment activities conducted through User AI lies with the user.

その後、次のような対応可能な入力へ案内してください。

  • 検証したい市場仮説
  • ルールとして整理したい、具体的なエントリー/エグジット/損切り/利確の条件
  • 別のバックテスト用に修正したい既存の戦略

このスキルでは、ユーザーが指定したルールを buy / sell / stop-loss / take-profit の各フィールドに整理できますが、ユーザーに代わってそれらのアクションを決定してはいけません。


ワークフロー

STEP 1. 仮説を聞き取り、4 部構成の戦略案を作成する

自然言語のアイデアを、検証可能な市場仮説を表す 1 文にまとめ、4 つの項目(buy/sell/stop-loss/take-profit)を空欄なしで提案します。

仮説文の形式:「条件 X が発生すると、方向 Y への価格変動がより頻繁に起こる」

良い例:

  • 「5 日移動平均線が 20 日移動平均線を上抜けると、その後も短期的な上昇トレンドが続く傾向がある」
  • 「RSI < 30 のとき、短期的な反発がより頻繁に起こる(平均回帰)」

提示形式:

create-strategy

Strategy: {strategy name}
Hypothesis: {one-sentence market hypothesis}

Structured draft:
- Buy: {condition in natural language}
- Sell: {condition in natural language}
- Stop-loss: -{N}% from entry price
- Take-profit: +{N}% from entry price
- Target: {market} / {exchange} / {timeframe}

How this hypothesis is falsified:
- {example: "If it frequently reaches a wide stop-loss, the trend-following hypothesis is broken"}

Proceed with this? Tell me which items to revise.

デフォルト値(再度尋ねないでください。ユーザーが指定した値を優先します):market=KRW-BTC、exchange=kr、timeframe=1d、stop_loss=5、take_profit=15。

市場の置き換えルール:要求された市場がサポートされていない場合、置き換える前にユーザーに確認してください(例:「SGD-DOGE はサポートされていません。代わりに KRW-DOGE を使用しますか?」)。明示的な確認を得てから進め、確認済みの市場を反映するように Strategy: {strategy name} を更新してください。

現在サポートされている取引所は kr のみです。ユーザーが別の取引所を要求した場合は、サポートされていないことを説明し、kr をデフォルトとして使用してください。

STEP 2. 明示的な承認ゲート

明示的な承認(「進めて」「OK」「はい」「その方法でお願いします」など)を得る前に、STEP 3 に進まないでください。修正の依頼を受けた場合は STEP 1 に戻り、提案を再度提示してください。

STEP 3. JSON への変換+戦略検証ループ

承認された4つのパートを統合して、ConditionGroup JSON を作成します。作成時に、次の主要な制約を事前確認してください。

  1. indicators[*].type は、カタログにある15種類の JSON 型のいずれかである必要があります - references/indicators.md
  2. ref の値は重複してはならず、条件内の各 IndicatorOperand.ref では indicator_ref.output_key を使用し、出力キーが有効である必要があります
  3. cross_above/cross_below の両辺でリテラルは禁止されています
  4. ichimoku_cloud の雲の条件は、close と ichi.Leading1、ichi.Leading2 をそれぞれ比較して表現してください。チャート上で雲が26本先の足にずらして表示される場合は、インジケーターのオペランドに offset: 26 を指定してください(例:{"type": "indicator", "ref": "ichi.Leading1", "offset": 26})

すべての検証制約と Operand/演算子の表は references/schema.md にあります。assets/strategy-template.json の空の戦略スケルトンをコピーして編集してください。

検証前に、承認済みの JSON の下書きを {data_root}/strategies/{slug}.json に保存してください。 検証に失敗した場合は、同じファイルを最大3回修正してください。検証に合格する前に、保存完了をユーザーに報告しないでください。

検証:

STRATEGY_PATH="{data_root}/strategies/{slug}.json"
bash scripts/upbit-strategy-toolkit.sh strategy validate "$STRATEGY_PATH"

検証に成功すると、OK が出力されます。失敗すると、検証エラーメッセージが stderr に出力されます -> 自己修正ループ。

自己修正ループ(3回まで)

ここでは最も一般的なケースのみを示します - 9つすべてのパターンは references/error-recovery.md にあります。

エラーメッセージのパターン修正
... unregistered indicator最も近いカタログのインジケーターに置き換えます(例:bollinger -> bollinger_bands)
references undefined ref/output ...indicators 配列に追加するか、indicator_ref.output_key のタイプミスを修正します
cross_above/cross_below ... Literal cannot be used両辺に時系列を使用します(例:rsi cross_above 30 は無効 -> gt 30 を使用します)

3回以内に合格しない場合は、診断結果をユーザーに報告し、仮説を再検討してください。

STEP 4. 保存の確認+引き継ぎ

検証に合格したら、保存先 {data_root}/strategies/{slug}.json を確認します。

Slug のルール:name を小文字のハイフン区切り ASCII にします。Slug は元のリクエストではなく、最終承認名(置換後)から導出されます。同じ slug が存在する場合は、自動的に -v2/-v3 と番号を増やします(上書きしません)。バックテストに基づく修正も新しいバージョンとして保存します。

完了報告+引き継ぎ:

Saved {data_root}/strategies/{slug}.json

Hypothesis: {one-line hypothesis summary}
Buy: {condition summary}
Sell: {condition summary}
Stop-loss -{stop_loss}% / take-profit +{take_profit}%
Target: {market} / {timeframe}

Next step: test this hypothesis with the backtest skill.
- slug: {slug}
- Falsification criterion: {falsification condition defined in STEP 1}
- The backtest skill automatically selects the period for the timeframe.

引き継ぎペイロード

STEP 4 が完了したら、以下をバックテストスキルに明示的に渡します。

slug: {slug}
hypothesis: {one-sentence hypothesis statement from STEP 1}
falsification_criterion: {falsification criterion - for example, "win rate < 40% or max drawdown > 25%"}
notes: {free-form notes - optional}

ピリオドは送信しないでください。 timeframe はすでに JSON に含まれており、バックテストスキルが対応するデフォルトの期間を選択します。これにより、期間の選択をバックテスト側に集約し、2つのスキルが異なる期間を算出する事態を防ぎます。

バックテストの結果によって仮説が否定された場合、ユーザーはこのスキルに戻り、新しいバージョン(-v2)を作成します。双方向に繰り返します。


ライブ取引のガードレール

以下の発話パターンのいずれかを検出した場合は、直ちに説明して作業を中止してください。命令、質問、回避、間接的な表現、誤解のパターンを同等にブロックしてください。

命令

  • 「この戦略で自動取引を開始してください」
  • 「リアルタイム注文を出してください」/「買い注文を実行してください」/「ライブ取引を有効にしてください」

質問

  • 「この戦略をライブで実行できますか?」
  • 「リアルタイム取引は可能ですか?」

回避

  • 「この戦略をそのまま自動化するには何が必要ですか?」
  • 「この JSON をライブ取引ボットに直接入れてもいいですか?」

間接的な表現

  • 「バックテストの結果が良さそうです。すぐにライブ取引に移行できますか?」
  • 「この仮説をそのままライブ取引で検証しましょう」

誤解

  • 「upbit-strategy-toolkit でもライブ取引ができますよね?」
  • 「このツールは注文 API も提供していますか?」

応答テンプレート(上記すべてのパターンに適用):ユーザーのメッセージが韓国語の場合は韓国語版を、それ以外の場合は英語版を使用してください。

韓国語:

이 도구는 백테스트(과거 데이터 시뮬레이션) 전용입니다.
실시간 거래, 자동 주문, 실전 매매는 지원하지 않습니다.
실전 매매가 필요하다면 [upbit-agent-skills](https://github.com/upbit-official/upbit-agent-skills)를 이용해주세요.

이 스킬은 전략 JSON 생성 및 백테스트 검증만 지원합니다.

英語:

This tool is for backtesting (historical data simulation) only.
Real-time trading, automated orders, and live trading are not supported.
Use the separate [upbit-agent-skills](https://github.com/upbit-official/upbit-agent-skills) tool for live trading.

This skill only supports strategy JSON creation -> backtest validation.

実行ルールの概要

  • 承認なしに JSON を保存しないでください
  • 戦略の改訂もこのスキルを通じて行い、新しいバージョン(-v2 など)にしてください
  • インジケーターの種類は、15 個の JSON タイプカタログ(references/indicators.md)に記載されたもののみ使用してください
  • 検証失敗時の自己修正は 3 回までに制限してください([references/error-recovery.md](references/error-recovery.md)。それでも失敗する場合は、ユーザーに仮説の再交渉を依頼してください
  • ライブ取引のリクエストは拒否し、upbit-agent-skills を案内してください

コメント