テーマ
言語
smcictchochbosfair value gaporder blockliquidity sweepfib retracementoteai trading botsmart money conceptshyperliquidfomoed

スマートマネーコンセプト × AI:CHoCH・BoS・フィボボットを自然言語で構築する

スマートマネーコンセプト × AI:CHoCH・BoS・フィボボットを自然言語で構築する
著者 fomoed Team2026年5月15日3 分で読めます

スマートマネーコンセプト(SMC)は、最も分析負荷の高いトレーディングスタイルのひとつです。Change of Character(CHoCH)、Break of Structure(BoS)、未消化のオーダーブロック、Fair Value Gap(FVG)、流動性スイープ、そして0.618〜0.79のフィボリトレースメントに位置するOptimal Trade Entry(OTE)ゾーン — これらを正しく特定するには、常時チャートを監視し、構造を正確に描画し、1日1回現れるかどうかというコンフルエンスの揃ったセットアップをひたすら待つ必要があります。裁量SMCトレーダーの多くは、適切なタイミングで画面に向かっていないためにセットアップを逃したり、熱くなった瞬間にBoSとCHoCHを取り違えて誤ったセットアップでエントリーしてしまいます。AIが構築したSMCボットは、この両方を解決します。すべてのローソク足を監視し、ルールを一貫して適用し、構造パターンを取り違えることもありません。

7
SMCプリミティブ
0
書くコード行数
24/7
常時監視
100%
一貫した実行

本ガイドでは、AIが構築するSMCトレーディングボットが内部でどう動いているか — 構造検出、OTEエントリーロジック、フィボリトレースメントの計算、未消化オーダーブロックのスキャン — を解説し、fomoed上で自然言語のままどう構築するかを示します。AIがアクセスできる7つのSMCプリミティブを順に紹介し、CHoCH × フィボ戦略をプロンプトから稼働中のボットまで通しで構築し、そして熟練のチャーティストであっても、自動執行が裁量SMCトレードを上回りやすい理由を説明します。

SMC × AIが「掛け算」になる理由

SMCトレードで難しいのは理論ではありません。理論は十分に文書化されており、経験を積んだトレーダーであれば、整ったチャート上でCHoCHや未消化の強気オーダーブロックを見分けられます。本当に難しいのは執行 — 自分が決めた時間軸で、自分が決めた通貨ペアすべてに対して、それを一貫してやり続けることです。適切なタイミングで画面を見ていなかったから、あるいはセットアップが現地時間午前3時に出たから、というだけでセットアップを逃さない執行こそが難しいのです。

裁量SMCトレードを殺すものは2つあります。ひとつは「選択バイアス」 — うまくいったセットアップだけを覚えていて、外れたものは忘れてしまうため、戦略が本当に利益が出ているかどうかの判断が歪みます。もうひとつは「執行のドリフト」 — 週のはじめは「Aグレードのセットアップだけ取る」と決めていても、木曜日には「何かトレードしないと落ち着かない」とBグレードに手を出してしまう。自動化はこの両方を解決します。ボットには感情の揺らぎがなく、勝ち負けに関係なくすべてのトレードが同じデータベースに記録され、バラ色フィルターをかけずに振り返ることができます。

最近変わったのは、ボットを自分で書く必要がなくなった点です。CHoCHをアルゴリズムで検出するには、スイングハイ・スイングローを正しく特定し、HH-HL-LH-LLのシーケンスとして構造を追跡し、終値が直近のLower High(下降トレンド中)を上抜けた瞬間 — すなわち強気CHoCH — を検出する必要があります。これを丁寧に書けば数百行のPythonコードになります。リテールのSMCトレーダーのほとんどはそれを書かず、裁量で目視判定し続けるしかありませんでした。今ではAIがその検出層をあなたの代わりに書いてくれます — というより、より正確には、fomoedのカスタム戦略エンジンがサンドボックス内で公開している、実戦投入済みのSMCライブラリに対してコードを組み上げているのです。だからAIは生成のたびにピボット検出を再発明する必要はありません。

AIが利用できる7つのSMCプリミティブ

SMC戦略を自然言語で記述すると、AIはサンドボックスランタイム内で動くPythonスクリプトを生成します。スクリプトは自前のピボット検出を書くわけではなく、fomoed.smcというキュレーションされたヘルパーライブラリに対して組み上げられます。このライブラリは7つのプリミティブを公開しており、それぞれがSMCトレーダーに馴染みのある概念に対応しています。

1. スイング(Swings)。 fomoed.smc.swings(highs, lows, lookback)は、直近の価格履歴からスイングハイとスイングローを返します。インデックスiのスイングハイは、i - lookbackからi + lookbackまでの窓における最高値です。lookbackのデフォルトは20本で、ほとんどの時間軸で機能します。戻り値はhighslowsの配列を持つdictで、検出された各ピボットのインデックスと価格を含みます。

2. 構造(Structure)。 fomoed.smc.structure(highs, lows, lookback)はスイングを受け取り、HH(Higher High)、HL(Higher Low)、LH(Lower High)、LL(Lower Low)とラベル付けします。現在のトレンド(強気・弱気・中立)と構造シーケンスを返します。ボットはこれを使って、ロングを取る前に「今は上昇トレンドか?」を確認できます。

3. Break of Structure(BoS)。 fomoed.smc.bos(opens, highs, lows, closes, lookback)はトレンド継続のブレイクを検出します。強気BoSとは、強気トレンド中に直近のスイングハイを強い終値で上抜けること。弱気BoSはその逆で、弱気トレンド中に直近のスイングローを強い終値で下抜けることです。「強い」という条件が重要で、ヘルパーはブレイクキャンドルの実体が直近20本の平均実体の1.5倍以上であることを要求し、変位を伴わない不発のブレイクを除外します。

4. Change of Character(CHoCH)。 fomoed.smc.choch(highs, lows, closes, lookback)はトレンド反転のピボットを検出します。強気CHoCHとは、弱気トレンド中に直近のLower Higherを上抜けて終値で確定すること、すなわち反転シグナルです。弱気CHoCHは、強気トレンド中に直近のHigher Lowを下抜けて終値で確定することを指します。これは裁量トレーダーがBoSと最も取り違えやすいSMCプリミティブですが、ヘルパーはこの区別をアルゴリズムで明確に行います。

5. オーダーブロック(Order Blocks)。 fomoed.smc.order_blocks(opens, highs, lows, closes)は、アクティブな(未消化の)強気・弱気オーダーブロックゾーンを返します。強気OBは、スイングハイを破る変位ムーブの直前にある最後の弱気キャンドル。弱気OBはその鏡像です。ゾーンはICTメソドロジーに従い、ヒゲを含む全体ではなくキャンドルのBODY(始値〜終値)を使います。形成後に一度も価格がタッチしていないゾーンのみが返され、価格がOBに再訪した時点でmitigated(消化済み)とみなされリストから外れます。

6. Fair Value Gap(FVG)。 fomoed.smc.fvg(opens, highs, lows, closes, min_gap_pct)は未充填の3本ローソクのインバランスパターンを検出します。強気FVGは、キャンドルi-1の高値とキャンドルi+1の安値の間のギャップで、その間のキャンドルiが変位キャンドルとなったものです。min_gap_pctパラメータで小さなギャップを除外できます(デフォルトは価格の0.2%)。返される各FVGには、後続のヒゲでギャップがどれだけ埋まったかを示すfill_pctが含まれます。

7. 流動性スイープ(Liquidity Sweeps)。 fomoed.smc.liquidity_sweeps(highs, lows, closes, sweep_depth_pct, reclaim_candles)はストップ狩りパターンを検出します。スイングローの下にヒゲが伸びたあと、指定本数以内にそのレベルを終値で上回り回復するパターン(強気スイープ)、またはその弱気版です。sweep_depth_pctはスイープと認定する最小貫通幅で、かすった程度のものを除外します。

7つのSMCプリミティブに加えて、AIはフィボナッチリトレースメントの計算用にfomoed.fibを利用できます。fib.retracement(swing_high, swing_low, level)は指定したフィボレベル(0.5、0.618、0.705、0.79、0.886)の価格を返し、fib.zonesは標準レベルすべてのdictを返し、fib.in_zoneは「価格がスイング幅のX%以内でこのフィボレベル付近にあるか」をbooleanで返します。

自然言語によるCHoCH × フィボ戦略 — エンドツーエンド

実際の戦略をプロンプトから稼働中のボットまで通しで見てみましょう。戦略の概要は:強気CHoCHを待ち、インパルススイングの0.705フィボリトレースメントへのプルバックでエントリー。利食いはエントリー上方の次のスイングハイ、損切りはCHoCH下のスイープされた安値、というリバーサルトレードです。

AIトレーディングエージェントのステップで、こんな指示を書きます:

「強気CHoCHの後に、ブレイクアウトスイングの0.705フィボへプルバックしたタイミングでロングエントリー。利食いはエントリー上方の次のスイングハイ。損切りはCHoCH下の直近スイングロー。ロングオンリー — ショートは取らない。」

数秒後、ウィザードのレビュー画面にAIの解釈が表示されます。

AIサマリー: SMCのトレンドリバーサル戦略。強気CHoCH — 弱気トレンド中に価格が直近のLower Highを上抜けて確定し、反転をシグナル — を待ちます。その後、インパルススイング(安値〜CHoCH高値)の0.705フィボリトレースメント、すなわちOTEゾーンへのプルバックを監視します。価格がゾーンにタッチした時点で、設定済みのポジションサイズでロングを開きます。利食いはエントリー上方の次のスイングハイ、損切りはCHoCH下の最安値(反転失敗時にストップが狩られるレベル)。ロングオンリーで、ショートセットアップは取りません。

動作の流れ:

1. 強気CHoCHを監視 — 弱気トレンド中に価格が直近のLower Highを上抜けて終値で確定(反転シグナル)。

2. CHoCH発生後、インパルススイング(安値 → CHoCH高値)を計測し、0.705フィボリトレースメントレベルを算出。

3. 価格が0.705フィボゾーン(スイング幅の0.5%以内)へプルバックするのを待つ。

4. ゾーンにタッチした時点で、設定済みのポジションサイズでロングを開く。

5. エントリー上方の次のスイングハイで利食い、あるいは最安値(狩られた流動性)で損切り。

AIが戦略を正しく理解したかどうかが即座に分かります。違和感があればプロンプトを編集して再生成。意図と一致したら保存すれば、次のローソク足の確定からボットが稼働を開始します。

AIが実際に書くコード(舞台裏)

上記のCHoCH × フィボ戦略の場合、AIはサンドボックス内で各ローソク足確定時に実行される、30〜40行ほどのPythonスクリプトを生成します。読みやすさのため簡略化していますが、おおよそ次のような形です:

def on_candle(ctx):
    if len(ctx.closes) < 100:
        return None

    # Exit logic if already in a position
    if ctx.position is not None:
        sw = fomoed.smc.swings(ctx.highs, ctx.lows, lookback=20)
        entry = ctx.position.entry_price
        price = ctx.closes[-1]
        # TP at next swing high above entry
        tp = next((s['price'] for s in reversed(sw['highs'])
                   if s['price'] > entry), None)
        # SL at most recent swing low below entry
        sl = next((s['price'] for s in reversed(sw['lows'])
                   if s['price'] < entry), None)
        if tp and price >= tp:
            return {'action': 'close', 'reason': f'TP swing-high {tp:.2f}'}
        if sl and price <= sl:
            return {'action': 'close', 'reason': f'SL swing-low {sl:.2f}'}
        return None

    # Entry logic: bullish CHoCH + fib pullback
    choch = fomoed.smc.choch(ctx.highs, ctx.lows, ctx.closes, lookback=20)
    bull = [c for c in choch if c['type'] == 'bullish_choch']
    if not bull:
        return None
    last = bull[-1]
    idx = last['index']
    if idx < 10:
        return None
    swing_low = float(ctx.lows[max(0, idx - 30):idx].min())
    swing_high = float(ctx.highs[idx:].max())
    if swing_high <= swing_low:
        return None
    price = ctx.closes[-1]
    if fomoed.fib.in_zone(price, swing_high, swing_low, 0.705,
                          tolerance_pct=0.5):
        return {
            'action': 'buy',
            'size_usd': ctx.user.position_size_usd,
            'reason': f"CHoCH @ {last['broken_level']:.2f}, fib 0.705 pullback",
        }
    return None

エンドユーザーがこのコードを見ることはありません — 見えるのはAIサマリーと「動作の流れ」の各ステップだけです。Pythonコードは監査用にサーバーサイドに保存され、サンドボックスランタイム内で実行されます。ここで敢えて見せた目的は、AIが実際に生み出すものを脱・神秘化することです。短く焦点の絞られたロジックで、難しい部分(ピボット検出、フィボ計算、構造追跡)はヘルパーライブラリに委ねています。AIはボット生成のたびにSMCアルゴリズムを再発明しているわけではありません — SMCプリセットが使っているのと同じ、実戦投入済みの実装に対して組み上げているだけです。

自動化SMCが裁量を上回りやすい理由

熟練の人間SMCトレーダーと、よく作られたSMCボットは、同じチャートを見れば多くの場合同じ構造を描きます。それなのに、なぜ数ヶ月の窓で見るとボットが人間を上回りやすいのでしょうか?

執行の一貫性。 ボットはAグレードのセットアップを全て取ります。人間はほとんどを取りますが、全部ではありません。週に1回逃すだけでも、四半期で複利的に積み上がるとリターンに実質的な差が出ます。裁量トレーダーは「なんかしっくりこない」と言語化できないままセットアップをスキップしがちで、それは時に良い直感ですが、平均すればコストになります。

他所見バイアスがない。 人間は無意識に広いマーケットコンテキストで判断します — BTCが直前に下落したならセットアップが悪く見え、他のポジションが含み益ならセットアップが良く見える。ボットはそれを気にしません。ルールが一致すればトレードします。

退屈に対する忍耐。 裁量SMCトレーダーは、相場が静かな週が続くと基準を緩めがちです(「Bグレードでも取るか、4日もトレードしてないし」)。ボットは退屈しません。1週間Aグレードのセットアップが出なければ、1週間ノーポジで座っているだけです。その忍耐こそが、長期で戦略を実際に収益化させる要因です。

24時間365日の監視。 セットアップはあなたのトレード時間に合わせて出てくれません。4時間足のその月最高のCHoCHが、現地時間午前3時に発生することも普通にあります。ボットは起きています。あなたは寝ています。

トレードオフとして、自動化SMCは熟練人間が持ち込むコンテキスト判断を欠きます。広域の地合いが明らかに強気レジームなら、人間の裁量トレーダーは弱気セットアップの閾値を上げるかもしれません。ボットは関係なくルール通りに動きます。自動化システムでこれを扱う方法は、レジーム検出をプロンプト自体に組み込むこと — 例えば「BTCが日足200日EMAより上にあるときだけ、強気CHoCHセットアップを取る」。レジームフィルターを言語化できれば、AIはそれを実装できます。

リスク管理は最初から組み込まれている

AI生成トレーディングボットに対してよく聞かれる懸念は、「AIが無理なサイズで建てたり、大量に発注したりしないか?」というものです。Fomoedは資金決定と戦略決定を分離することでこれに対応しています。ポジションサイズ、レバレッジ、トレーディングモード(本番/ペーパー)は、プロンプトを書く前に、ウィザードのMoneyステップで設定します。これらの値はAIに対して、変更可能な変数ではなく制約として渡されます。

AI生成スクリプトが{'action': 'buy', 'size_usd': 100, ...}のようなアクションを返すと、サンドボックススーパーバイザはリクエストされたサイズをウィザードで選んだ値にクランプします。Moneyステップで$50に設定しているのにAIが$200を要求しても、プラットフォームは$50で発注し、クランプを記録します。実際のexecute_entry呼び出しは、スクリプトが要求した値ではなく、あなたの設定したポジションサイズを使います。AIがその気になっても、あなたの資金上限を上書きすることはできません。

同じ保護はTPとSLにも及びます。ウィザードのTP・SL設定がプラットフォーム標準のエグジットパイプラインを駆動し、AIの「close」アクションはあくまで補助的なものです。ウィザードで2%の損切りを設定したなら、AIのスクリプトが何と言おうと2%下落で発火します。AIの役割はエントリーの知能を加えることであり、リスクルールを上書きすることではありません。

この分離こそが、AIトレーディングエージェントを実資金で安全に運用できる根拠です。戦略ロジックはAI生成、リスク管理はウィザード設定 × プラットフォーム強制。両者は明示的にデカップリングされています。

よくある質問

AIはCHoCHやBoSを自動検出できますか?

はい。fomoed.smc.chochfomoed.smc.bosのヘルパーが、専用SMCプリセットと同じ構造追跡ロジックでアルゴリズム的に検出します。AIは検出を再発明せず、既存の実装に対して組み上げます。これにより、AI生成ボットとプラットフォーム標準のSMCボットで検出品質が一貫します。

AIは人間SMCトレーダーより優れていますか?

ルール執行については、はい。コンテキスト判断については、まだです。SMCトレーディングの機械的な部分 — 構造を正しく描く、未消化オーダーブロックを特定する、フィボリトレースメントを算出する、条件を満たすセットアップをすべて取る — ではボットの方が一貫しています。広域のレジームコンテキストの統合は、それをプロンプトに明示しない限りボットの方が苦手です。ハイブリッド型(セットアップ検出はAIに任せ、今週どれだけ積極的にトレードさせるかは人間が決める)が、純粋自動化や純粋裁量のいずれよりもパフォーマンスが良い傾向があります。

AIはフィボリトレースメントのエントリーをどう扱いますか?

fomoed.fibモジュールがリトレースメント計算を提供します。スイングハイとスイングローを与えれば、任意のフィボレベル(0.5、0.618、0.705、0.79、0.886)の価格を算出します。in_zoneヘルパーは許容%を取り、現在価格がそのフィボレベルの許容範囲内かを返します。AI生成ボットは通常、特定のフィボレベル(よく使われるのは0.705や0.79 — OTEゾーン)にタッチするのを待ってエントリーします。複数のフィボレベルを同時にチェックすることもでき、あなたの説明から正しいロジックをAIが書き出します。

AI製SMC戦略をバックテストできますか?

はい。ペーパートレードは、同じAI生成スクリプトをライブ市場データに対してシミュレート執行で実行します — 実資金リスクなし。SMCセットアップは時間軸感度が高い(1時間足で機能する戦略が5分足では機能しないこともある)ため、新しいSMC戦略を本番投入する前にこれで検証することを推奨します。さらにfomoedバックテストサンドボックスでは、過去データに対して戦略を走らせて高速にイテレートできます。

オーダーブロックやFair Value Gapは?

どちらもfomoed.smc.order_blocksfomoed.smc.fvgで公開されています。オーダーブロックは未消化ゾーンを実体ベースの境界で返し、価格がタッチすると自動的にリストから外れます。FVGは未充填の3本ローソクギャップを返し、fill_pct属性により部分的に埋まったギャップを有効と見なすかをAI生成スクリプトが判定できます。両ヘルパーともSMCプリセットと同じ検出ロジックを使うため、プラットフォーム全体で動作が一貫しています。

SMCを他の戦略と組み合わせられますか?

はい — そこがAIトレーディングエージェントが固定プリセットに対して輝くポイントです。典型的なコンフルエンス戦略は「強気CHoCH + RSIが買われすぎでない + 価格が未消化の強気オーダーブロック内 + 現在価格より上に直近の弱気FVGがない」のような組み合わせです。AIはこれを正しい呼び出し(fomoed.smc.chochctx.indicators.rsifomoed.smc.order_blocksfomoed.smc.fvg)に変換し、エントリー条件として合成します。SMCプリセット単体ではこの種のドメイン横断的なコンフルエンスを簡単には組めません。AIトレーディングエージェントはまさにそのための仕組みです。

CHoCHが発生したのにフィボプルバックの前に否定されたら、ボットはどう振る舞いますか?

AI生成スクリプトは各ローソク足確定時にエントリー条件を再評価します。強気CHoCHが発生しても、価格が0.705フィボまでプルバックせず一気に上昇していけば、ボットはエントリーしません。CHoCH自体が否定されれば(価格がブレイクしたレベルを終値で再び下抜けるなど)、次のfomoed.smc.choch呼び出しがそれを反映し、ボットは古いシグナルで動くことはありません。状態はティックをまたいで保持されるのではなく、毎ティック現在の市場データから再計算されます。

最初のSMCボットを作る

AIトレーディングエージェントがSMCをどう扱うか理解する最短ルートは、登録して、ウィザードでAIトレーディングエージェントを戦略として選び、本ガイドのようなプロンプトを貼り付けることです。最初のボットはペーパートレードモードで動かしましょう — 実資金を使わずにライブ市場データに対して戦略が走るので、選んだペアと時間軸でセットアップが実際にどれくらいの頻度で発火するかを観察できます。

SMCを超えたAIトレーディングエージェントの可能性については、AI製トレーディングボットに関するピラーガイドを参照してください。市況に応じてどの戦略プリセットを選ぶべきかの比較は、戦略比較ガイドでラインアップ全体をカバーしています。

SMCボットを自然言語で構築する

CHoCH、BoS、オーダーブロック、Fair Value Gap、流動性スイープ、フィボリトレースメント — 自然言語で記述し、AIが実装、サンドボックスで安全に実行。検証中はペーパーモードで無料運用。

無料で始める →

関連リソース