記事の目次
根拠と適用範囲
オリジナルのインジケーターはEQH/EQLを提供し、サポート/レジスタンス分析とリペイントに関するドキュメントが背景情報を提供します。提案されているオンラインクラスタリングアルゴリズムは、ここでは取引における収益性が実証されていません。
実践の流れ
- ピボットを確認する発生時刻と確認時刻は分けて記録してください。
- タッチ分離を確認してください同じスケールを使い、接触の間に価格が十分離れたことを確認します。
- 全幅をチェック最も近いピボットとの距離だけでなく、クラスター全体を評価します。
- バージョンを公開する境界線と、それらが資格を得る時期を固定する。
- トリガーを待つスイープ戦略とブレイクアウト戦略をそれぞれ個別にテストする。
観測可能な価格集中と流動性仮説
50と50.08の2つの安値は、通常の変動幅がそれらの差よりもはるかに大きい場合、ほぼ等しい可能性があります。しかし、0.25のティックを持つ銘柄では、50.08は有効な未調整取引価格ではありません。検出器は、統計的許容値を適用する前に、価格グリッドを理解している必要があります。
LuxAlgoは、設定可能な確認機能を備えたEQH/EQLを公開しています([1])。Oslerの研究は、独自の経験的範囲内でのサポート/レジスタンスに関するものです([2])。どちらも、2つの近接するピボットポイントに対する普遍的な勝率を確立するものではありません。ここでの目的は、その後のスイープまたはブレイクアウト調査のためのオンライン参照ゾーンジェネレーターです。
2つの類似した高値は、必ずしもダブルトップを意味するわけではありません。反転パターンには、先行する状況、中間の谷、ネックラインのトリガーも必要です。同等の高値は位置のみを表し、後にさらに上昇する上昇トレンドの中で発生する可能性があります。タッチカウントは、ゾーン外のストップ注文のボリュームを明らかにするものではありません。
クラスター全体の幅を制限する
提案するピボットは左三本・右三本のバーを使います。i の高値は i+3 で判明し、i+4 から利用できます。クラスター作成時に直前の ATR14 から A_ref を固定し、eps=max(2 ticks,0.15A_ref) とします。同種・同スケールのピボットが少なくとも二つ必要で、価格全体の最大値と最小値の差は 2eps 以下とします。ゾーンは実際の最低・最高ピボット価格の間、中心は価格の中央値です。両境界に eps を重ねて加えません。
提案されたタッチは少なくとも5バー離れており、その間の価格は少なくともeps離れている必要があります。これにより、短い横ばい状態が複数の独立したテストになるのを防ぎます。サンプルTTLは、公開から100バーです。年齢は、古いレベルが強いというルールではなく、測定すべき特徴として残ります。
新しいピボットが複数のクラスターに適合する場合は、最も近い中心を選択し、同点の場合は新しいクラスターを優先します。クラスター全体が広くなりすぎるような追加は拒否します。隣接連鎖は不十分です。AがBの近くにあり、BがCの近くにあっても、AとCが離れすぎている場合があります。
最初の有効なピボットは、未公開のシードを初期化できます。2番目の有効な、分離されたピボットのみが、取引可能な参照を公開します。実装では、シードの有効期限とタイ動作、および成熟クラスタールールを定義する必要があります。そうしないと、都合の良い一致が見つかるまで、孤立したピボットが無期限に存続する可能性があります。
未公開のシードは最初のピボット確認から100バーで失効します。公開済みクラスターは最初の公開から100バーで失効し、新しい版でも期限を延長しません。価格が接触位置から離れた距離は、二回の接触が発生した時刻の間だけで測ります。二回目の接触後、確認を待つ間のバーは含めません。重複ピボットIDを無視し、公開時には eligible_from を守ります。
for p in newly_confirmed_pivots:
eligible_from = p.confirmed_at+1
expire_seeds_and_clusters_at_fixed_deadlines(p.confirmed_at)
candidates = active_clusters_same_type_and_scale(p)
keep = [c for c in candidates if
max(c.prices+[p.price])-min(c.prices+[p.price]) <= 2*c.eps]
c = nearest_center_then_newest(keep)
if c is None:
A = ATR14[p.confirmed_at-1]
if not finite_positive(A): continue
create_unpublished_seed(p,eps=max(2*tick,0.15*A),
seed_expiry=p.confirmed_at+100)
continue
if p.id in c.pivot_ids: continue
if not separated_touch_between_occurrences(p,c,min_bars=5): continue
append_pivot_once(c,p)
c.last_touch_index = p.occurred_at
if c.first_published_at is None:
c.first_published_at = p.confirmed_at
c.expiry = p.confirmed_at+100
publish_new_version(c,eligible_from=eligible_from,expiry=c.expiry)
# Departure is measured only between touch occurrence times.
# Later versions never reset expiry or rewrite active setup snapshots.
接触付近の出来高は確認時刻を守って使う
ピボットを中心とした対称ボリュームウィンドウには、ピボット位置を基準とした将来のバーが含まれます。右側のボリュームが確定するまで、その機能全体は利用できません。ゾーンが先に公開された場合、その機能は判断に関与できません。よりシンプルな代替案として、タッチからピボット確定までを、各タッチに同じ期間を使用して測定する方法があります。
二回目の接触で出来高が減ることは、圧力低下の仮説として検証できます。出来高が増えてもレベルを超えなかった接触も残します。どちらのヒストグラムも買い集め、売り抜け、特定の参加者を識別するものではありません。主流トレンドと同方向のクラスターでは、むしろゾーンを突き抜けて継続する場合があります。
日中データについては、同じ時間帯で正規化してください。始値安値と昼休み安値を生の出来高で比較すると、タッチオーダーと通常のセッション活動が混同されます。プリントの欠落やセッション時間の短縮は、供給不足の証拠と誤解されてはなりません。
合成クラスター、連鎖の失敗、取引の結果
tick=0.01、A_ref=1、eps=0.15、および最大値width=0.30。バー10、24、および39の高値は、100、100.12、および100.25です。すべてが確認され、分離条件が維持されると、そのゾーンは100.12を中心とする[100,100.25]になります。最終バージョンは、最後の高値が確認された後にのみ使用可能になり、バー10で遡及的に使用することはできません。
100.42 の新しい高値は、100.25 から 0.17 にしか離れていませんが、グループ全体を 0.42 まで拡張します。古いクラスタからこの値を拒否してください。新しいクラスタを作成することは可能なポリシーですが、既にアクティブな設定の座標を移動することはできません。この例は、最近傍チェイニングが無制限にドリフトする可能性がある理由を示しています。
下流の取引の例として、後のバーが 100.50 に到達し、99.80 で終値となり、独自のバッファを備えたアップサイドスイープルールを満たす可能性があります。99.75 での合成ショート、100.60 でのストップ、98.05 でのターゲットは、コスト控除前で 2R を提供します。次の動きが 100.80 に到達し、100.65 でプロテクションが約定した場合、損失は 0.90 になります。有効なクラスターは保持を約束していません。
ゾーンは、別のトリガーによってのみ取引となる。
公開されている同じクラスターを使用して、スイープ/リクレームの逆張りと、承認されたブレイクアウトの追随の両方をテストします。2回目の高値が確認されたという理由だけでショートするのは、まったく別の戦略です。価格は、何本ものバーの間、その領域を再訪しない可能性があります。
各候補は、有効期限が切れるまでzone_versionを保持します。後から有効な接触が行われると、独自のeligible_atを持つ新しいバージョンが作成されます。実行中のスイープ検出器は、侵入後に境界を拡張してイベントを消去してはなりません。すべての参照を再構築できるように、source_pivot_idsを保存してください。
クローズブレイクの後、ゾーンは、あらかじめ定められたポリシーに基づいて消費されるか、新しい状態に移行されます。前日のレベルとの重複は有用なメタデータであり、リスク予算を倍増する許可ではありません。TradingView のタイミングに関するドキュメントは、過去のピボットで描画されたマーカーと、そのピボットが認識された時点を区別するのに役立ちます [3]。
同時に複数の版が利用できる場合、最も古い適格版や最も近い外側境界など、明示的な選択規則を使います。取引後に「勝てるストップのうち最も幅が狭くなる版」を選ぶと、隠れた最適化になります。
取引収益の検証より先に基準ゾーンの品質を確かめる
まず、プレフィックスリプレイの一貫性を要求します。つまり、一度に1本のバーを処理する場合、そのプレフィックスに限定したバッチ計算と同じ公開バージョンが生成されなければなりません。価格が同額の場合、バーが欠落している場合、企業行動、ティックの変化などをテストします。全サンプルクラスタリングとそれに続く履歴スコアリングは、オンライン検出器ではありません。
次に各ゾーンへの公開後最初の接近を測り、突破と反発の両方を残します。ゾーンの経過時間、幅、接触数、相場環境を揃えた比較対象を使います。同程度の密度のローリング極値やランダムな価格格子も比較に役立ちます。数百のレベルを描けば、ほぼすべての反転がどれかのレベル付近に見えてしまいます。
報告対象範囲、セッションごとの候補者数、および各トリガーの純成果を報告してください。2回接触クラスターと3回接触クラスターを比較する際は、同じリスク配分を維持してください。接触回数が増えるということは、認識力の向上、流動性の再消費、あるいは単にゾーンの持続期間が長くなることを意味する可能性があります。データは、単調な改善を仮定するのではなく、これらの仮説を区別する必要があります。
よくある落とし穴
すべての相場で同じ絶対価格幅を許容する
固定通貨距離は、変動性の状況によって異なる挙動を示す可能性があります。ATRとティック感度をテストしてください。
隣接する支点を連結する
クラスター内の最高価格から最低価格を引いた全幅を使い、ゾーンが際限なくずれるのを防ぎます。
同じ高さをダブルトップとして扱う
反転の文脈とネックラインがなければ、クラスターは単なる参照に過ぎない。
この手法を使う前のチェックリスト
ご自身のデータで確認した項目にチェックを入れてください。進捗はこのブラウザに保存されますが、戦略の収益性を認定するものではありません。
よくある質問
価格は完全に同じでなければならないのか?
いいえ。ティックと事前に決定されたボラティリティ基準を使用して許容範囲を定義し、テスト全体を通してそれを維持してください。
3回の接触は、2回の接触よりも常に強いのでしょうか?
普遍的な関係は仮定しません。接触の追加は支持・抵抗の弱まりに伴うこともあるため、相場環境ごとに評価します。
研究資料
各資料は、その横に記載された定義や根拠を支えています。擬似コード、架空の例、提案パラメータは別途検証が必要です。
- Smart Money ConceptsLuxAlgo on TradingView. 元のツール説明と証拠の限界を読んだ範囲。 確認日: .
- Support for ResistanceFederal Reserve Bank of New York. 元の研究発表を読んだ範囲。このクラスター生成版を検証した研究ではありません。 確認日: .
- RepaintingTradingView. 履歴計算とリアルタイム計算についての文書を読んだ範囲。 確認日: .
関連する手法
リスクについて
この内容は学習と研究設計を目的とし、金融上の助言ではありません。Backtestは過去データのシミュレーションであり、将来の成果を保証せず、実際の売買注文も行いません。このライブラリの手法が、そのままアプリで利用できる機能とは限りません。関連情報: 検証方法 および 学習センター.
実際の資金を使う前にルールを検証する
アプリの対応範囲、データ、個々の模擬取引を確認してください。高度な検出手法は別途実装が必要な場合があります。
App StoreでBacktestをダウンロード