シグナルから執行へ:ストラテジー版が従来と異なる点
AIO Top/Bottom Confidenceインジケーターは、リバーサルの可能性が高いタイミングを教えてくれます。AIO Top/Bottom Strategyは、同じ9要素スコアリングエンジンに完全な執行レイヤーを追加します:自動ショート・ロングエントリー、ATRベースのストップロスとテイクプロフィット配置、オプションのトレーリングストップ、ブレイクイーブン管理、そしてBinanceなどの取引所に直接注文をルーティングできるwebhook対応アラートシステムです。
多くの裁量トレーダーはシグナルインジケーターを読んで手動でエントリーしていますが、シグナルから約定までの間に躊躇、スリッページ、不一致が生じます。ストラテジー版はそのギャップを排除します。コンフィデンススコアが閾値を超えてストラクチャーゲートが発動すると、ストラテジーは即座にバークローズでエントリーします — 手動操作は一切不要です。
この記事では、ストラテジーのシグナル生成方法、トレード管理方法、ライブ取引向けの正しい設定方法、そしてTradingViewが取引所に自動的に注文を送信するwebhookアラートシステムの接続方法について解説します。
シグナルエンジン:9要素、1つのスコア
シグナルロジックはAIO Top/Bottom Confidenceインジケーターと同一です — 9つの独立した条件にわたる加重スコアリングシステムです。これらのウェイトを理解することは重要で、どの設定が最も信頼性の高いシグナルを生成するかを決定します。
必須ゲート:BOS または MSS
ストラクチャーブレイクが存在しない限り、エントリーは発動しません。これは絶対条件です。ストラテジーは直近bosLenバー(デフォルト8)以内に2種類のストラクチャーブレイクを確認します:
- BOS — Break of Structure(20pt):価格が直近の高値または安値を超えてクローズします。シンプルですが、モメンタムの確認はありません。
- MSS — Market Structure Shift(25pt):BOSにモメンタム条件を加えたもの — ブレイクしたローソク足のボディサイズが
ATR(14) × 0.75より大きく、ブレイク方向にクローズしている必要があります。MSSはモメンタムが確認されたストラクチャーブレイクの継続性が実質的に優れているため、5ポイント高くなっています。
チャート上にシグナルが表示された際、テーブルで最初に確認すべきことはBOSとMSSのどちらが発動したかです。65%コンフィデンスのMSSベースシグナルと65%のBOSベースシグナルは本質的に異なるトレードです — 前者はモメンタムディスプレイスメントが確認されており、後者は受動的な価格クローズのみです。
残り8要素とウェイト
| 要素 | ウェイト | 確認内容 |
|---|---|---|
| Exhaustion(枯渇) | 15 | ローソク足レンジ > ATR × 1.5、移動方向と逆方向にクローズ |
| Retest(リテスト) | 10 | retestBarsバー以内にスイングレベルへ価格が戻る(±0.5%) |
| Trap(トラップ) | 10 | ウィックがスイングレベルを貫通し、クローズが反転 — ウィック/レンジ > 30% |
| HTF Alignment(HTF整合性) | 15 | 4Hクローズ vs 4H EMA(50)がリバーサル方向を確認 |
| Arc Pattern(アークパターン) | 10 | 直近5つのスイング高値/安値が放物線減速曲線に適合 |
| Volume Spike(出来高急増) | 10 | リバーサルポイントで出来高 > SMA(20) × 1.5 |
| Trend Context(トレンドコンテキスト) | 10 | EMA(20) vs EMA(50)が事前トレンドの存在を確認 |
| Candle Shape(ローソク足形状) | 5 | リバーサルレベルでのピンバー、十字足、または包み足 |
100ポイントキャップ前の合計可能ポイント:MSS(25)+ Exhaustion(15)+ HTF(15)+ BOS(20、ただしMSSに含まれる)+ Retest(10)+ Trap(10)+ Arc(10)+ Volume(10)+ Trend(10)+ Candle(5)= 生110ポイント、100にキャップ。実際には9つ全てが同時に発動することはほとんどありません — スコア70–80%は通常5〜6要素が収束していることを意味し、これは本当に強力なセットアップです。
ゾーンフィルターとクールダウン
2つの追加ゲートがシグナルの乱発を防ぎます。まずゾーンフィルター:ストラテジーは直近zoneLookbackバー(デフォルト100)の最高値と最安値の中間点を計算します。TOPシグナルはその中間点より価格が上にある場合のみ発動し、BOTシグナルは下にある場合のみ発動します。これにより、価格がすでにレンジ底付近にいる際に「TOP」シグナルが発動する不合理な状況を排除します。
次にシグナルクールダウン(cooldownBars = 10):同方向の2つのシグナル間に最低10バーの間隔が必要です。1Hチャートではおよそ半トレーディングセッションに相当します。低い時間足では5〜7バーに引き下げ、横ばい統合が同じ構造エリアから繰り返し弱いシグナルを生成しやすい日足チャートや低ボラティリティ期間では15〜20に増やしてください。
トレード管理:SL、TP、トレーリングストップ
バークローズでシグナルが発動すると、ストラテジーはエントリーを配置し、即座に決済ルールを設定します。全ての距離はATR(14)ベースで、現在の銘柄のボラティリティに応じて自動的にスケーリングされます。
ストップロスとテイクプロフィット
- ストップロス:
ATR(14) × slAtrMult(デフォルト1.5)。SHORTの場合、SLはエントリークローズの上方に配置され、LONGの場合は下方に配置されます。ATRが約$1,800の1H BTCチャートでデフォルト設定の場合、SLはエントリーから約$2,700の距離に置かれます — シグナル後の通常のノイズを吸収するのに十分な広さを持ちながら、明確な無効化レベルを定義するほど狭い設定です。 - テイクプロフィット:
ATR(14) × tpAtrMult(デフォルト3.0)。これはトレーリングストップを考慮する前に理論上2:1のリスクリワード(3.0 TP / 1.5 SL)をもたらします。実際には、トレンドがTPターゲットを超えて延長した場合にトレイルがより多くを獲得します。
重要なニュアンス:これらは固定価格レベルではありません。各エントリーバーで現在のATR(14)値を使って新たに計算されます。高ボラティリティ拡張中のシグナルは、同じシグナル設定の静かなレンジ期間と比べて広いSLとTPを取得します。これは意図的な設計です — ボラティリティ正規化サイジングにより、高ボラティリティエントリーで不均衡にストップアウトされることがなくなります。
トレーリングストップ:最も重要なパラメーター
トレーリングストップはライブ取引の複雑さの大部分が集まる場所です。2つのパラメーターがこれを制御します:
- トレイル距離(
trailAtrMult = 0.10):トレーリングストップはATR(14) × 0.10の距離で価格に追従します。ATR約$1,800のBTC $70Kでは、これは約$180です — 典型的なTradingView→Binance webhookレイテンシーと成行注文スリッページ(その価格で約$60)の約3倍です。0.10のデフォルトは、トレイルが現実の執行摩擦よりも十分に広くなるように特別に調整されており、それでもリバーサルムーブの大部分を獲得できます。ライブ取引では0.075以下に設定しないでください。その閾値以下では、webhookレイテンシーだけでトレイルターゲットより悪い価格での決済が発生する可能性があります。 - トレイル起動(
trailActivateR = 0.4):トレーリングストップは、価格が有利な方向に0.4 × 初期リスク以上動くまで開始しません。1.5倍ATRストップロスの場合、トレイルは価格が利益方向に0.6倍ATR(1.5倍ATRリスクの40%)動いた後に起動します。これは以前のデフォルト0.2から0.4に引き上げられました。以前のデフォルトではトレイルが早期に起動しすぎていたためです — TradingView’sのブローカーエミュレーターはバー内の各ローソク足をパスウォークし、エントリーから即座に起動するトレイルはライブ注文の挙動を反映しないフィルシミュレーションを生成します。0.4のデフォルトはライブパフォーマンスを大幅により代表するバックテスト結果を生成します。これを絶対にゼロに設定しないでください — Pineのtrail_price=naは、ライブアカウントで勝率が崩壊する既知のエミュレーターバグを引き起こします。
ブレイクイーブンストップ(オプション)
ブレイクイーブンストップ(useBEStop、デフォルト無効)は、価格が有利方向にbeTriggerR × 初期リスク(デフォルト1.0倍)動いた時点でストップロスをエントリー価格に移動します。これを有効にすると、トレイルが起動する前に反転する勝ちトレードのドローダウンが減少します。トレードオフは、最終的にはテイクプロフィットに到達したはずのトレードをブレイクイーブンでクローズすることです。使用すべきかはお使いの市場によります:ボラティリティの高いトレンド日の暗号資産では、BEストップは価格が継続する前に押し戻される際にトレードを早期に決済することが多くあります。インデックス先物のようにより秩序立った銘柄では、エクイティカーブを改善する傾向があります。
ライブ取引所執行のためのWebhookアラート設定
アラートシステムは、ストラテジーがバックテストツールからライブ取引システムへと移行する場所です。現在のバージョンでは、エントリーと決済のメッセージが個別に独立して設定可能です — 以前の単一メッセージシステムからの大幅な改善です。
エントリーと決済メッセージを分ける理由
エントリーと決済注文では、執行要件が根本的に異なります。エントリーは確定バーのバークローズで発動します — つまりアラートが発動する時点ですでにローソク足はクローズ済みです。価格レベルが確定して変動しないため、その正確なクローズ価格での指値注文は非常に高い約定確率を持ちます。スプレッドと成行注文のスリッページを払うことなくクローズ価格を取得できます。
決済は異なります。トレーリングストップがバー途中でヒットした場合、即座に決済する必要があります — トレイル価格での指値注文は、価格がギャップスルーした場合に約定しないリスクがあります。決済注文にはreduceOnly: trueの成行注文を使用し、最良の買い/売り気配値でポジションがクローズされ、注文がオーバーシュートした場合に誤ってリバースポジションが開かれないようにします。
アラートメッセージの設定
デフォルトのエントリーメッセージ形式(3Commas、Cornix、カスタムBinance webhookサーバーを含むほとんどのwebhookボットに対応)は以下の通りです:
{
"symbol": "{{ticker}}",
"side": "{{strategy.order.action}}",
"positionSide": "BOTH",
"investmentType": "coin_qty",
"qty": "{{strategy.order.contracts}}",
"order_type": "Limit",
"price": "{{strategy.order.price}}",
"reduceOnly": false,
"positionMode": "one_way_mode",
"signalId": "abc",
"uid": "xyz"
}
ライブ運用前に"abc"と"xyz"を実際のボット認証情報に置き換えてください。プレースホルダー{{ticker}}、{{strategy.order.action}}、{{strategy.order.contracts}}、{{strategy.order.price}}はアラート発動時にTradingViewが自動的に置換します。
決済メッセージは"price": "market"と"reduceOnly": trueを使用します:
{
"symbol": "{{ticker}}",
"side": "{{strategy.order.action}}",
"positionSide": "BOTH",
"investmentType": "coin_qty",
"qty": "{{strategy.order.contracts}}",
"price": "market",
"reduceOnly": true,
"positionMode": "one_way_mode",
"signalId": "abc",
"uid": "xyz"
}
TradingViewでのアラート作成
- チャートにストラテジーを追加し、対象市場と時間足に合わせて全パラメーターを設定します。
- TradingViewの「アラート」ボタン(ベルアイコン)をクリックし、ストラテジーに新しいアラートを作成します。
- 条件を「注文約定時のみ」に設定します — これにより各バーではなく各注文執行時に発動します。
- 頻度をエントリーシグナルには「バークローズごとに1回」に設定します(確定バーでのみ発動)。決済シグナルについては、ストラテジーが内部で
barstate.isrealtimeを使用しているため、トレイルヒット発生時にバー途中でアラートが発動します。 - 「Webhook URL」フィールドにwebhook URLを貼り付けます。
- 「メッセージ」フィールドに
Entry Alert Message入力からJSONを貼り付けます。決済用JSONを使用した決済専用の2つ目のアラートを別途作成します。
実務的な注意:アラートはデフォルトで同一条件につき1バーに1回のみ発動します。ストラテジーは内部でサーバーサイドの重複排除機構としてalert.freq_once_per_barを使用しているため、トレイル条件がバー内の複数のティックで真であり続けても、1バーにつき1つの決済アラートのみが発動します。これにより取引所側での誤った二重決済を防ぎます。
執行モデル:以前のバージョンからの変更点
以前のバージョンはprocess_orders_on_close=trueとcalc_on_every_tick=falseで動作していました。これにより全ての約定(エントリー、決済、トレイル)がバークローズでシミュレートされていました。よりクリーンなエクイティカーブが得られましたが、ライブ注文の実際の約定方法と根本的にミスマッチがありました。
現在のバージョンはprocess_orders_on_close=falseとcalc_on_every_tick=trueを使用します。これにより、ブローカーエミュレーターがバー内のトレーリングストップ反応をシミュレートできます:LONGのローソク足のバー内安値がトレイルレベルにタッチした場合、決済はバークローズを待たずにバー途中でシミュレートされます。トレードオフは、バー内パスウォーキングが非常に広いローソク足でやや楽観的な約定を生成することがある点ですが、それでも純粋なバークローズシミュレーションよりもライブ挙動に近く、特にライブ取引で本質的にバー内で発生するトレーリングストップコンポーネントにとって言えます。
バックテストへの実際的な影響:現在の執行モデルは、同じ日付範囲で以前のバージョンとわずかに異なるトレード数とエクイティカーブを示します。絶対的な意味でどちらが「より正確」ということはありませんが、現在のモデルはバー内で決済注文が約定し得るライブ環境に対してより適切に校正されています。
バックテスト結果の読み方
デフォルトのバックテストパラメーターには片道0.05%の手数料が含まれており、BTCUSDT.P 1Hデータで校正されています。結果を評価する際は、以下のメトリクスに注目してください:
確認すべきこと(と無視すべきこと)
- 勝率単独では意味がありません。勝率85%・平均R:R 0.3のストラテジーは、勝率60%・R:R 2.5のストラテジーより劣る可能性があります。プロフィットファクター(総利益 ÷ 総損失)と1トレードあたりの期待値に注目してください。
- エクイティの%としての最大ドローダウンは、絶対的なドルドローダウンより重要です。200トレードで口座の1.5%のドローダウンは許容範囲ですが、純利益がどれほど良くても15%は許容できません。
- シャープレシオ1.5以上は、ストラテジーがボラティリティを超えるリターンを生成していることを示します。1.0以下では、リターンがリスクプロフィールを補償していません。
- ロングとショートの勝率を分けて確認してください。ショートの勝率がロングより大幅に高い場合、ストラテジーには方向性バイアスがあります。必ずしも悪いことではありません — 一方向により明確にトレンドする市場もあります — ただし、ストラテジーのパフォーマンスがシグナル品質だけでなく市場レジームに部分的に依存していることを意味します。
ライブ前のストレステスト
単一の好ましい期間のバックテストは魅力的に見えますが、脆弱性を隠している可能性があります。実資金をリスクにさらす前に、少なくとも3つの異なる市場レジームでストラテジーを実行してください:
- 強いトレンド期間(例:2020–2021年BTC強気相場)
- 平均回帰的な横ばい期間(例:2022年後半のBTC統合)
- 高ボラティリティショック期間(例:主要マクロイベント — FOMCサプライズ、取引所崩壊)
ストラテジーが一つのレジームで大幅に悪化し他では悪化しない場合、ポジションサイズを縮小するか取引を一時停止すべき市場環境を把握できます。長期横ばい市場で損失を出すストラテジーは有益な情報を提供しています:BOSゲートにはストラクチャーブレイクが必要ですが、レンジ相場では「ブレイク」は日常的にフェードバックされます。既知の低ボラティリティ期間中はコンフィデンス閾値を65%以上に引き上げることを検討してください。
自動注文サイジング:エクイティに応じたスケーリング
自動注文サイズ機能(autoOrderSizeEnable)は、シンプルなステップベースのポジションスケーリングシステムを実装します。デフォルト注文サイズ(orderSizeDef = 0.1 BTC)を起点として、初期資本を超える累積利益がstepMoneyドル(デフォルト$1,000)増えるごとに1ステップ(orderStep = 0.1 BTC)を追加します。
例:初期資本が$10,000でストラテジーが$3,200の利益を生成した場合、_orderSteps = floor(3200 / 1000) = 3となり、注文サイズは0.1 + 3 × 0.1 = 0.4 BTCになります。これは保守的なコンパウンドアプローチです — 劇的にではなく、勝ちランで徐々にスケールアップするため、エクイティピーク後の負けトレード期間のドローダウンが抑制されます。
初期テスト中はこれを無効にしておいてください。取引所でストラテジーが期待通りに機能し、webhookが安定しており、少なくとも20〜30のライブトレードを確認してから有効にしてください。未検証のライブシステムでポジションサイズをスケーリングすることは、小さなエラーを大きな損失に変える直接的な方法です。
パラメーター設定ガイド
ほとんどのパラメーターはBTCUSDT 1Hのデフォルト設定のままで問題ありません。これが主要な調整済み設定です。ライブパフォーマンスに最も大きく影響するパラメーターは以下の通りです:
高影響パラメーター
- BOSルックバック(
bosLen = 8):短いルックバック = より敏感なストラクチャーブレイク = より多くのシグナルだが誤検知も増加。ストラクチャーはより長いウィンドウで定義すべき高い時間足チャート(4H、日足)では12〜15に増やしてください。 - シグナルクールダウン(
cooldownBars = 10):15分チャートでは10バーはわずか2.5時間です — 20〜30への引き上げを検討してください。日足チャートでは5に減らしてください。 - トレイル距離(
trailAtrMult = 0.10):ライブ取引では0.075以下に減らさないでください。より深い押し戻しを通じてポジションを長く保持したい場合は0.15〜0.20に増やしてください。ただし各勝ちトレードでより多くを返上することになります。 - トレイル起動(
trailActivateR = 0.4):0.4のデフォルトは「ライブリアリスティック」な挙動を反映しています。0.6〜0.8に引き上げると、トレイルがより遅く起動し、勝ちトレードがより大きく動く余地ができますが、一時的に利益に動いた後に反転するトレードでフルストップロス決済の頻度が増します。 - HTF時間足(
htfTF = “240”):日足トレードには“W”(週足)に切り替えてください。15分スキャルプには“60”(1H)を使用してください。原則として、HTFはトレード時間足の少なくとも4倍以上であるべきです。
低影響パラメーター(微調整のみ)
- リテストトレランス(
retestPct = 0.5%):±0.1〜0.2%の調整はストラテジー挙動を大きく変えない可能性が高い - 十字足レシオ(
dojiRatio = 0.1):ローソク足形状は5ポイントのみ寄与 — 広範な最適化は不要 - アーク最小スコア(
arcMinScore = 0.015):放物線アーク確認についての厳格性を変える特定の理由がない限りそのまま維持
情報テーブル:リアルタイム診断
チャート上のテーブル(デフォルトは右下、設定変更可能)はTOPとBOT両方の現在の要素内訳を同時に表示します。フルモードでは各行が要素の現在の有効/無効状態を表示します。コンパクトモードでは合計スコアのみが表示されます。
テーブルをシグナル前モニターとして使用してください:BOTサイドで4要素が有効でスコアが48%を示している場合、ストラテジーがトリガーに近づいていることがわかります。ポジションサイズを準備してチャートコンテキストを確認してください — 次のバーで出来高急増が発動すれば、スコアが50%の「ミディアム」閾値を超えてシグナルが生成される可能性があります。このワークフローにより、自動システムが引き継ぐ前に構造的コンテキストを手動で確認したい場合に、シグナルに反応するのではなく予測できるようになります。
重要なポイント
- BOS/MSSは必須ゲートです。全てのシグナルはストラクチャーブレイクから始まります。MSS起動シグナル(25pt)はBOS単独シグナル(20pt)より強力です。ディスプレイスメントモメンタムが確認されているためです。
- トレーリングストップ距離(0.10倍ATR)はライブ取引向けに調整されています。視覚的な美しさではありません。典型的な取引所webhook執行摩擦の約3倍の広さに設定されています。ATRの0.075倍以下に削減すると、意味のある価格アクションではなく注文ルーティングレイテンシーによる頻繁なトレイル決済のリスクがあります。
- 0.4倍リスクでのトレイル起動はエミュレーターのアーティファクトを防ぎます。以前の0.2のデフォルトはTradingView’sのブローカーエミュレーターがライブ取引では発生しないトレイル挙動をシミュレートする原因となっていました。0.4のデフォルトは実質的により代表的なバックテスト結果を生成します。
- エントリーには指値注文、決済には成行注文を使用してください。エントリーは確定バークローズで発動します(価格が確定)。そのためクローズ価格での指値注文はほぼ確実な約定が見込めます。決済はトレイルヒット時にバー途中で発動するため、
reduceOnly: true付きの成行注文が、リバースポジションリスクなしに即座の執行を保証します。 - エントリーと決済の個別アラートメッセージにより異なる注文タイプとサイズが使用できます。指値注文が利用可能な場合に成行注文でエントリーする手数料非効率性が排除されます。
- ライブ運用前に3つの市場レジーム(トレンド、レンジ、ショック)でバックテストしてください。単一期間の結果は複合条件ストラテジーの検証には不十分です。
- 自動注文サイジングは検証後の機能です — お使いの特定の取引所とwebhookインフラストラクチャーでライブ執行がエンドツーエンドで機能することを確認した後にのみ有効にしてください。