mantis-strategy について
MANTISは、BTCの大きな値動きにまだ追随していない相関アルトコインを探し、信頼度に応じたエントリーシグナルを出すトレード戦略です。リーダー反転時の決済、時間制限、リスク管理も備えています。
主な機能
- 01BTCの値動き後に遅れる資産を検出
- 02追随率と信頼度でシグナルを選別
- 03信頼度の段階に応じてエントリー規模を設定
- 04リーダー反転またはタイムアウトで決済
- 05ポジション数と損失を制限
活用シーン
- 01BTCに追随する可能性のあるアルトコインを探す
- 02過去の遅行時間と追随データに基づく取引
- 03リーダーの値動きが反転した際にポジションを決済
MCP 対応
Producerは`SenpiClient.mcp_call()`でSenpiの市場・口座ツールを使い、リーダー反転時に`close_position`を呼び出せます。Runtimeは`create_position`とDSLの決済ツールを使います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ senpi-ai/ senpi-skills --skill mantis-strategyインストール後、Claude Code で/mantis-strategyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdruntime.yamlconfig/mantis-config.example.jsonreferences/cross-asset-flow-guide.mdskill-attribution.mdscripts/mantis_config.pymantis_state.pymantis-producer.py詳細
🦎 MANTIS v6.0.0 — Slipstream
カマキリは忍耐とスピードです。静止し、そして攻撃します。
v6.0.0 (2026-05-12) — 配管のみの移行
戦略に変更はありません。v5.0 のエントリーフィルター、信頼度ティアに基づくサイズ設定、動的な hard_timeout、リーダー反転の拒否ロジックはすべて一切変更せず維持されています。6 層の配管を切り替えました。
- MCP トランスポート:
mcporterサブプロセス(コールドスタートに 2.5〜5 秒)から、プロセス内の HTTPS を使うSenpiClient.mcp_call()(約 280ms)へ。 - シグナル送信:スキャナーは
create_positionを直接呼び出していましたが、プロデューサーは現在、push_signal()を介してランタイムの/signalsに送信します。ランタイムは LLM の判定を経たmantis_entryアクションでポジションを開始し、FEE_OPTIMIZED_LIMIT を使います。ティアベースのサイズ設定に使用するleverageとmarginUsdは、シグナルデータからそのまま渡されます。 - リーダー反転の拒否が機能するようになりました。 v5.0 では、ランタイムのアクションが消費しない
VETO_CLOSEの stdout JSON を出力していたため、何も起こりませんでした。v6.0 では、プロデューサーが直接権限を持つアクションとしてこれを接続し、リーダーがエントリー時の値から 1% を超えて反転すると、cfg.mcp_call("close_position", ...)が実行されます。ランタイムでは「別の資産の 4 時間の値動きが X% 反転したら、このポジションを閉じる」という条件を表現できません。この戦略はプロデューサー側にあります。 - スケジューラー:openclaw cron(60 秒)から
producer_daemon(interval_seconds=60)へ。長時間稼働するプロセスであり、scanner_lockは古い PID を自動的に復旧します。 - リスクゲート:Python の
MAX_DAILY_ENTRIESとasset-cooldowns.jsonから、宣言型のrisk.guard_railsブロックへ。state/asset-cooldowns.jsonは削除されました(per_asset_cooldown_minutes: 240をランタイムが正式な設定として適用します)。 - 決済手数料:DSL の決済方法を MARKET(テイカー、0.045%)から FEE_OPTIMIZED_LIMIT(メイカー優先、0.015%、ALO タイムアウト 60 秒、テイカーにフォールバック)へ変更しました。
保持される状態ファイル(プロデューサーが管理し、ランタイムに漏れません):
state/position-metadata.json— 各資産のleader_pct_at_entry(拒否判定の通過に必要)state/entry-log.jsonl— 可観測性のみ(1 日あたりの上限カウントには使用しなくなりました)
Mantis の機能
Mantis は 60 秒ごとに market_get_cross_asset_flows を監視します。リーダー(現在は BTC)が 4 時間で大きく値動きすると、このツールは、歴史的にそのリーダーに追随してきたものの、まだ反応していない相関性の高いアルトコインを提示します。Mantis は厳格な基準でこれらの出遅れ銘柄を絞り込み、最も信頼度の高い銘柄を選び、リーダーの値動きと同じ方向に出遅れ銘柄へエントリーするシグナルを送信します。ポジションサイズは信頼度に応じて決まり、ハードタイムアウトはそのアルトコインの典型的な遅延分布に合わせて調整されます。
戦略
時間的な範囲を定量化した、純粋な統計的優位性です。
- 優位性:低いタイミング分散で 85% 以上の確率でリーダーに追随するアルトコインは、リーダーの値動き後に追いつく可能性が高いです。
- タイミング:アルトコインの過去の
avg_lag_minutesが、取引の時間枠を定めます。 - 決済:追いつきは
avg_lag × 1.5分以内に起きるか、まったく起きないかのどちらかです。 - 拒否:ポジション保有中にリーダーが反転すると、戦略全体が無効になり、Mantis は直ちにポジションを閉じます(プロデューサー側から
close_positionを呼び出します)。
エントリー基準(すべて通過必須 — v5.0 から維持)
| フィルター | しきい値 | 確保される条件 |
|---|---|---|
follow_rate | ≥ 0.85 | アルトコインが過去に値動きの 85% 以上でリーダーに追随している |
confidence | ≥ 0.75 | 相関、追随、遅延、SM の整合性を組み合わせた指標 |
gap_pct | ≥ 1.5%(絶対値) | 追いつきの機会に十分な大きさがある |
sm_starting_to_rotate | true | スマートマネーが追いつきを裏付けている |
lag_stddev_minutes | ≤ 90 | 取引に十分な予測可能性がある |
| 資産 | すでにポジションが開いていない | 同じ資産への二重エントリーを防ぐ |
| 資産 | per_asset_cooldown_minutes の対象でない | ランタイムが適用(240 分) |
サイズ設定 — 確信度ティア(v5.0 から維持)
サイズは confidence スコアに直接連動します。プロデューサーがティアに基づいて marginUsd と leverage を計算し、シグナルの data に埋め込みます。LLM は両方をランタイムの OPEN_POSITION ペイロードに渡します。
| 信頼度 | 証拠金 % | レバレッジ |
|---|---|---|
| ≥ 0.92 | 75% | 8x |
| ≥ 0.85 | 50% | 7x |
| ≥ 0.75 | 25% | 5x |
ハード上限:レバレッジ 8x、利用可能な証拠金の 75% を想定元本の上限とします。
方向
リーダーに追随します。リーダーが4時間で上昇した場合は出遅れ銘柄をロングし、下落した場合はショートします。Mantis はリーダーの方向に逆らいません。この戦略全体の考え方は、「アルトコインはリーダーの水準に追いつく」というものです。
決済ロジック — 優先順位順の3つのレイヤー
-
リーダー反転時の拒否(プロデューサー側、v6.0で正しく接続済み) — 60秒ごとのティックで、Mantis は現在のリーダーの4時間変動幅とエントリー時のリーダーの変動幅を比較します。リーダーがエントリー時から1.0%を超えて反転した場合、Mantis は
orderType: FEE_OPTIMIZED_LIMITとensureExecutionAsTaker: trueを指定し、ALO タイムアウトを30秒としてclose_positionを直接呼び出します。この戦略の前提はリーダーの値動きです。それが崩れれば、取引も終了します。ただし、メイカー優先で、テイカーへのフォールバックを保証することで、メイカー約定した決済ごとに0.030%を節約できます。拒否処理はリトレースベースの DSL 決済よりも若干時間的制約が厳しいため、DSL の決済タイムアウト(60秒)を半分にした30秒に設定します。 -
動的ハードタイムアウト(シグナルデータを介したプロデューサー側の処理) —
avg_lag_minutes × 1.5を [30, 240] 分の範囲に収め、シグナルのdata.hardTimeoutMinutesとして渡します。この時間内にアルトコインが追いつかなければ、追いつく可能性は低いと考えられます。DSL のhard_timeout: 240が上限として機能します。 -
DSL トレール — 期間内の勝ちポジションに対する標準の Phase 1 / Phase 2 トレーリングロジックです。
- Phase 1 最大損失:12%
- Phase 2 トレール段階:5/30、10/60、15/75、25/85
- 弱いピークのカット:20分、最小値1.5%
- FEE_OPTIMIZED_LIMIT による決済(v6.0での改善)
リスク管理
| 制御項目 | v6.0の設定元 | 値 |
|---|---|---|
| 同時保有ポジションの最大数 | strategy.slots | 2 |
| 資産ごとのクールダウン | risk.guard_rails.per_asset_cooldown_minutes | 240分 |
| 1日あたりのエントリー上限 | risk.guard_rails.max_entries_per_day | 6 |
| ポジションの最大想定元本 | プロデューサー側の上限 | 利用可能な証拠金の75% |
| 1日の損失上限 | risk.guard_rails.daily_loss_limit_pct | 10% |
| 連続損失の最大数 | risk.guard_rails.max_consecutive_losses | 3 |
| 損失後のクールダウン | risk.guard_rails.cooldown_minutes | 60分 |
| ドローダウン時の停止 | risk.guard_rails.drawdown_halt_pct | 20% |
| 日付変更時のリセット | risk.guard_rails.drawdown_reset_on_day_rollover | false |
使用する MCP ツール
プロデューサー側(SenpiClient.mcp_call 経由のプロセス内呼び出し):
market_get_cross_asset_flows— 主なシグナルソースstrategy_get_clearinghouse_state— 現在のポジションと口座価値close_position— リーダー反転時の拒否が発生した場合の直接呼び出し
ランタイム側(シグナルに応じて senpi-trading-runtime が呼び出し):
create_position(mantis_entryアクション経由での FEE_OPTIMIZED_LIMIT エントリー)- FEE_OPTIMIZED_LIMIT による DSL トレーリング決済
Cron の実行間隔
プロデューサーデーモンは60秒ごとに実行されます。クロスアセットフローデータ自体は、hyperliquid-cross-asset-flow-cron ジョブによって毎日 00:00 UTC に更新されます。Mantis は最新の出力を使用します。
ユーザーとの会話を行う Claude セッションの厳格なルール
ユーザーとの会話を行う Claude セッションは、次のいずれのツールも呼び出してはいけません。
create_position、close_position、edit_position、
ratchet_stop_add、ratchet_stop_edit、ratchet_stop_delete、
cancel_order、strategy_close、strategy_close_positions。
これらのツールは、プロデューサーデーモン → ランタイムのアクションパス(エントリー)、DSL ラチェットエンジン(DSL 決済)、および プロデューサーのリーダー反転時の拒否処理(position-metadata.json に記録され、追跡中のリーダーが反転した資産に厳密に限定された、プロデューサーから close_position を直接呼び出す唯一の箇所)専用です。ユーザーとの会話を行うセッションは読み取り専用です。
オペレーター向けインストール
v5.0 からの新規インストールおよび移行コマンドについては、README.md を参照してください。
ステータス
v6.0.0 — helpers-native への移行。 現在、リーダーは BTC のみです。対象資産の事前計算済みラグデータが提供され次第、mantis_config.py の設定を1行変更するだけで、ETH/SOL/HYPE をリーダーに追加できます。
ライセンス
MIT — Copyright 2026 Senpi (https://senpi.ai)。