記事の目次

根拠と適用範囲

CMEはサポート/レジスタンスのコンテキストを提供し、scikit-learnはリンケージの概念を定義し、OslerのFX研究はストップカスケードについて論じている。しかし、いずれも提案された逐次クラスタリング検出器の収益性を検証するものではない。

データと市場定義した市場のOHLCVを使います。過去の極値の集まりから、ストップ注文、板で待機する流動性、取引者の身元を直接知ることはできません。
研究対象の時間足H=1、または固定履歴ウィンドウWを持つ日次データなどが研究デザインとして考えられます。接触頻度と離脱ルールは、選択したサンプリングスケールで解釈する必要があります。
100,100.35と100.55の高値は狭いゾーンを形成し、その後100.9まで上昇すると、その上限を下回る。図解を原寸で開く
独自の仮想データから選んだ価格観測です。価格の離脱を挟む三回の訪問後、上方へのはみ出しと戻りを示します。描画間隔は説明用で、五本の時間間隔を文字どおり検査した図ではありません。

実践の流れ

実践手順: クラスター化されたサポートとレジスタンス:ピボットからの因果ゾーン
詳しい手順を以下に示します。各段階でデータ不足や条件不成立があれば、除外理由を記録します。
  1. ピボットを受け取る同種の確定済み極値を用いる。
  2. 構成条件を検査する新しい価格を追加した後、全体の直径を確認してください。
  3. タッチを評価する事前の価格離脱と十分な時間間隔が必要です。
  4. バージョンを公開する境界、中央値、およびメンバー識別子を固定します。
  5. 反応を観察する別途定義された突破戦略または奪還戦略を適用する。

ゾーンは既に知られている観測結果を表す

CMEは、サポートとレジスタンスの基準点として過去の高値と安値を含めています([1])。ソフトウェアでは、より正確なラベルは、互いに近い位置にある確認済みの過去の極値のセットです。この観察は、買い手または売り手が現在そこで待機していること、または次の訪問で反発が発生することを証明するものではありません。

提案されたクラスタレコードには、cluster_id、HIGHまたはLOWタイプ、メンバーピボットID、最小値、最大値、中央値、最新の確認時刻、および独立タッチカウントが含まれます。ゾーンを使用する前に、すべてのメンバーが確認されている必要があります。等高ゾーンは価格ジオメトリを表しますが、それをオーダーブックウォールと呼ぶには、実際のオーダーブックの証拠が必要です。

検出器と利用する戦略を分けます。同じ価格帯は逆張り、継続ブレイクアウト、後の支持抵抗転換の再テストに使えます。ある仮説では無効なゾーンになっても、そのゾーンの構築に使った過去の観測を消すことはできません。

近い点を鎖状につなぐだけでなく全体幅を制限する

クラスターが作成されたときに、epsilon=max(2 ticks,0.15×A_ref) を設定し、A_ref を固定します。これらは提案されたパラメータです。結果として得られる最大値から最小値を引いた値が 2epsilon の範囲内にある場合にのみ、新しいピボットを追加します。この直径制約は、完全連結の背後にある最大距離の考え方に似ています [2]。ただし、ここでの逐次アルゴリズムは、AgglomerativeClustering の完全な実装ではありません。

複数のクラスターが該当する場合は、最も近い中央値を選択し、同点の場合は最も古いクラスターIDで順位を決定します。そうでない場合は、新しいクラスターを作成します。W=200バーとmin_separation=5は研究の出発点です。特定の役割逆転プロトコルが定義されるまで、HIGHクラスターとLOWクラスターは分けて管理してください。

独立したタッチを1回使用して新しいクラスタを初期化します。後続のメンバーについては、時間的分離条件と離脱条件の両方が満たされている場合にのみタッチ数を増やしながら、幾何学的メンバーシップを更新します。メンバー数とタッチ数を区別しないと、横ばいのプラトーが見かけ上の証拠を作り出す可能性があります。

アクティブなクラスターの有効期限が切れたら、IDを再利用するのではなく、最終履歴を凍結します。同じ価格の新しいクラスターは新しいオブジェクトです。イプシロンとその参照ATRをクラスターとともに保存することで、後々のボラティリティの変化によって古いゾーンが不都合な新しいピボットを吸収するために密かに拡張されることを防ぎます。

on_confirmed_pivot(p):
    candidates = active_clusters_of_same_kind(p)
    eligible = [c for c in candidates
      if max(c.max,p.price)-min(c.min,p.price) <= 2*c.eps]
    c = nearest_median_then_oldest_id(eligible)
    if c is None:
        c = new_cluster_with_single_member(p, touch_count=1,
                                          last_touch_index=p.index)
        return
    independent = p.index-c.last_touch_index >= min_separation
    independent &= price_departed_frozen_zone_between(c.last_touch_index,p.index,c)
    add_pivot_once(c,p)
    if independent:
        c.touch_count += 1
        c.last_touch_index = p.index
    if c.touch_count >= 2:
        publish_new_zone_version(c, available_at=p.confirmed_at)
# Active candidates retain their original zone-version snapshot.

数値によるゾーン構築と損失になるリクレーム

合成例: 参照 ATR=2 と tick=0.01 から epsilon=0.30 が得られ、最大直径は 0.60 となります。独立して確認された高値 100.00、100.35、100.55 から、中央値 100.35 を持つ [100.00,100.55] が生成されます。新しい高値 100.80 は、最も近い既存のメンバーから 0.25 しか離れていないにもかかわらず、全幅が 0.80 になるため、却下されます。

最寄りの構成点との距離だけでは不十分です。100,100.4,100.8,101.2は隣同士の差が小さくても全体では広がります。その広い領域のどこで反応しても再テスト成功と呼べば、検出器が誤りだと検証できる有用な基準を失います。

成功例:価格が100.55を上回って100.90まで上昇し、100.20で引け、ショートリクレーム候補が形成されます。エントリーは100.10、ストップは101.00、ターゲットは98.30となり、総ターゲットは2Rとなります。失敗例では、価格は101.10で引け、ゾーンを上回ったままとなります。既に約定したショートは、ストップポリシーに基づいて損失を保持する必要があります。その後、ゾーンを上方に移動してラベルを救済することはできません。

直径の制限値と、その1目盛り分だけ外側の位置に、新しいピボットポイントをテストします。また、2つの適切な中央値から等距離にある点も作成します。同じデータであれば、辞書の反復順序や最初に読み込まれたチャートに関係なく、常に同じクラスターが選択される必要があります。

連続したバーではなく、独立した訪問をカウントする

100.3付近に連続する五本の足は、通常五回の独立検証ではなく一回の訪問です。次の接触を数えるには、終値がゾーンから固定済みATRの少なくとも一倍だけ離れ、かつ少なくとも五本が経過することを要求します。こうして領域外から戻る条件を明示します。

価格の離脱にも固有の時刻が必要です。後で確定するピボットが、離脱の情報を受信する前に発生していた場合があります。宣言した順序で処理し、未来の離脱を過去の接触に割り当てないでください。確定が遅れる場合は発生時刻と確定時刻の両方を保存し、独立接触の条件を再現できるようにします。

経過時間、独立した再訪、離脱幅は特徴量にできますが、未来の接触で過去の点数を上げてはいけません。繰り返す試しがゾーンを強めるか突破されやすくするかは実証の問題です。接触数は校正済み確率ではなく、一回につき十パーセントポイントを加えるなら検出器以外の証拠が必要です。

ブレイクアウトとリアクションには、それぞれ異なる戦略ルールが必要である。

リクレーム案は終値が固定ゾーン内に戻るのを待ち、その後の約定可能な機会にポジションへ入ります。ブレイクアウト案はmax+bufferより外側の終値を要求し、別の再テスト待機期間を設けられます。各案に無効化、損切り、目標、有効期限が必要で、ゾーン検出器が決めるものではありません。

Oslerの公式要約レポートは、ストップロス注文が通貨の動きを加速させる可能性があるという証拠を報告しています [3]。このメカニズムは、OHLCVの高値圏周辺のストップロスの数を決定したり、スイープが反転することを保証するものではありません。より強力なデータが別のラベルを裏付けていない限り、観測されたイベントをエクスカーション、クローズブレイクアウト、またはリクレームとして記述してください。

注文が参照した正確なゾーン版を保存します。新たな構成ピボットの追加で、将来の候補用に広い版や位置の変わった版を公開しても、既存取引は元の根拠を保持します。損切りや文脈の更新を認める戦略なら、元の図を書き換えず、有効化時刻を持つ明示的な操作として記録します。

ローソク足の出来高は、そのゾーンでの取引量ではありません。

OHLCVは、バーの総取引量を示しており、ゾーン内で取引された割合を示しているわけではありません。ゾーンに接するすべてのバーの取引量を合計して価格別取引量と呼ぶのは、特にレンジの広いバーの場合、不正確です。価格分布を推定するには、取引レベルのデータ、または公表された近似値が必要です。

候補特徴量は突破足RVOL、同等基準に対する押し目出来高、独立した訪問ごとの平均活動量です。出来高を形状条件に混ぜず、条件の有無の比較で構成ピボットを変えずに除外できるようにします。活動増は異なる相場環境を示す一方、得られる約定条件を悪化させることもあります。

日中のアクティビティは、セッションの時間帯を比較して正規化し、欠損データと実際の低ボリュームを区別します。訪問時間が異なる場合は、合計値だけでなく、割合または同じ期間のウィンドウを比較します。範囲と変動性を考慮した上で、ボリュームが正味の情報量を追加するかどうかを報告します。

ゾーン履歴と実際の機会集合を検証する

ストリーミング再生とバッチ処理では、同一のゾーンバージョンを公開する必要があります。フィクスチャには、連鎖リンク試行、等距離タイ、W有効期限、1回の訪問内での複数バー、および遅延ピボット確認が必要です。すべての過去の取引は、保存されたversion_idを参照する必要があります。今日のチャートだけでは、過去の決定を再現するには不十分です。

単一ピボット戦略と、それ以外は同一の2タッチおよび3タッチ戦略を比較します。ゾーン数、待機時間、再訪確率、重複度、エクスポージャー、純利益を報告してください。再訪されなかったゾーンも調査対象に含めてください。勝ちトレードを生み出したゾーンのみを残すと、結果が偏ります。

重複部分にはポートフォリオルールが必要です。近隣の複数のゾーンが同じ市場イベントで注文をトリガーし、シグナルIDによって分散されているように見える集中的なエクスポージャーを生み出す可能性があります。登録済みのポリシーに基づいて候補を統合するか、同時エクスポージャーを制限し、分析のために元の検出器の観測値を保持します。

よくある落とし穴

鎖状につないだ価格帯が際限なく広がる

最近接ペア間の距離は、クラスターの全体範囲を制約しない。

横ばいの足が接触数を水増しする

価格が離れる条件がなければ、一回の長い滞在が複数の独立した証拠に見えてしまいます。

形状だけで隠れた注文を推測する

極値の集まりは、ストップロスや流動性を直接測定したマップではありません。

この手法を使う前のチェックリスト

ご自身のデータで確認した項目にチェックを入れてください。進捗はこのブラウザに保存されますが、戦略の収益性を認定するものではありません。

0/8 項目

よくある質問

ゾーンの中心は平均値と中央値のどちらにするべきか?

中央値は外れ値の影響を受けにくいが、トリガーは通常、明確な境界値を参照する必要がある。中心値が実際に戦略に影響を与える場合は、中心値の定義を比較する。

以前の支持帯と新しい抵抗帯を統合できますか?

役割逆転プロトコルは、ブレイクアウトと再テストが確認された後に定義できます。近くの価格を自動的にマージするのではなく、状態履歴を保持します。

研究資料

各資料は、その横に記載された定義や根拠を支えています。擬似コード、架空の例、提案パラメータは別途検証が必要です。

  1. Support and ResistanceCME Group. 以前の極値と価格帯についての教育的説明を確認。 確認日: .
  2. AgglomerativeClusteringscikit-learn. 完全連結法と単連結法の定義を確認。 確認日: .
  3. Stop-Loss Orders and Price Cascades in Currency MarketsCarol L. Osler, Federal Reserve Bank of New York. 公式要旨のみ確認。この検出器のバックテストではありません。 確認日: .

関連する手法

リスクについて

この内容は学習と研究設計を目的とし、金融上の助言ではありません。Backtestは過去データのシミュレーションであり、将来の成果を保証せず、実際の売買注文も行いません。このライブラリの手法が、そのままアプリで利用できる機能とは限りません。関連情報: 検証方法 および 学習センター.

実際の資金を使う前にルールを検証する

アプリの対応範囲、データ、個々の模擬取引を確認してください。高度な検出手法は別途実装が必要な場合があります。

App StoreでBacktestをダウンロード