記事の目次
根拠と適用範囲
これら3つの参考文献は、定義と実装動作を裏付ける公式のSciPy API文書です。これらの文書は、これらの機能に基づいて構築された取引戦略が利益を生むという証拠を提供するものではありません。
実践の流れ
- シリーズを選択してください終値系列または指標系列を選んで固定し、欠損データを検証する。
- 窓が完成するまで待つ右側が閉じた後にのみ、その中心を評価してください。
- 左右の基準点を求める窓の境界または候補より高いピークで探索を止める。
- ノーマライズ目立ち具合を、登録済みの単位整合性のある閾値と比較する。
- イベントを凍結するプロパティと実際の確認タイムスタンプを保存します。
価格が高いからといって、必ずしもピークがより顕著になるとは限らない。
周囲の基準が119.8付近にある終値120は、基準が100付近にある終値105より構造的に目立たない場合があります。絶対的な高さは銘柄の名目価格に依存します。突出度が問うのは別の幾何学的性質です。候補ピークは、周囲の構造を結ぶ等高線からどれだけ高く突出しているのでしょうか。
SciPy は、左右二つの基準点のうち高い方を用いてプロミネンスを定義します [1]。幅は、指定した相対プロミネンスの高さで測定されます [2]。一方、find_peaksは複数の独立したフィルターを提供します [3]。これらは数値系列を扱うツールです。条件を満たしたピークを抵抗帯、分配、または取引機会と解釈するには、追加の文脈と独立した検証が必要です。
意図されたメリットは、重要性の低いアンカーポイントを再現性高く削減することです。大きな突出が最終的な天井を示すという保証はありません。強いトレンドは、目立つ局所的なピークを生み出し、その後さらに価格が上昇する可能性があり、周囲の構造を待つと、イベントが確認される頃にはリスクに対するリターンがほとんど有利にならない場合があります。
有限の確認遅延を持つ局所検出器
提案されたベースラインは、W=11 の観測値と半径 h=5 を使用します。t の終了時に、i−5 から i+5 までの i=t−5 のみ候補を評価します。少なくとも 1.5×ATR[i−1] の顕著性が必要です。W=11 と 1.5 は実験的な設定であり、最適化された値ではありません。候補の前の ATR は、確認によって既にわかっている固定の変動性参照を提供します。
ピークから、ウィンドウの境界またはより高いピークによって検索範囲が制限されるまで、両側を調べます。結果として得られる各区間の最小値を見つけ、より高い基準値を選択して、候補値から差し引きます。谷については、同じ幾何学をマイナスの終値に適用します。両側の最小値を取ると、より大きな構造の肩にあるピークの顕著性を過大評価することになります。
コードでは平坦な頂上を単一観測に限定しています。平坦な頂上を許容する場合は、代表時刻と完全な確認方針を別バージョンで定義します。NaNを無断でゼロに変換してはいけません。人工的に深い基準が生じるためです。窓端の候補には必要な周囲の情報がないため、中心ピークとして扱ってはいけません。
h = 5; W = 2*h + 1
on_closed_bar(t):
i = t - h
if i-h < 0 or invalid_data(i-h, t): return
x = close[i-h:t+1]
candidates, _ = find_peaks(x, plateau_size=(1,1))
if h not in candidates: return
prominences, left_bases, right_bases = peak_prominences(x, [h], wlen=W)
p = prominences[0]
a = ATR[i-1]
if a is not missing and isfinite(a) and a > 0 and p / a >= 1.5:
emit_once(i, confirmed_at=t, prominence=p, window=W)
# Troughs: repeat on -close, preserving timestamps and ATR.
高さ・閾値・突出度・幅は異なる性質を測る
高さはピークの値です。閾値は、隣接する観測値との直接的な差を測定します。突出度は、より広い周囲の基底を使用します。幅は、選択した垂直レベルにおける水平方向の広がりを測定します。幅広で丸みを帯びた頂部は、大きな突出度を維持しながら、隣接する観測値との直接的な差が小さくなる場合があります。高い閾値要件は、意図せずして1本のローソク足のスパイクのみを残すことになる可能性があります。
距離フィルタリングにも因果関係に基づくポリシーが必要です。find_peaks を全履歴系列に適用し、将来のより大きなピークによって以前の近傍のピークを排除できるようにすることで、過去の選択が変わる可能性があります。ベースラインでは、中心となる各候補を評価し、全体的な距離剪定は適用しません。公開イベント後にクールダウンを行うことも代替案として考えられますが、これは後から現れる最も印象的なピークよりも時系列的な可用性を優先します。
フィルターによって候補が拒否された場合でも、測定されたすべてのプロパティをイベントレコードに保持してください。そうすることで、どの条件によって機会が失われたかを診断できます。そうしないと、幅と距離を同時に追加しても、集計統計は改善されるかもしれませんが、その変化が形状、タイミング、または取引数の違いによるものなのかを明確に説明できなくなります。
数値例、拒否された波紋、損失トレード
合成ローカルセグメント: 100、101、103、106、104、102、103。この例示セグメント内では、左ベースは 100、右ベースは 102 であり、プロミネンスは 4 です。参照 ATR=2 に基づくと、正規化されたプロミネンスは 2 ATR であり、提案されたしきい値 1.5 を超えています。このイベントを公開するには、周囲のウィンドウの処理を完了する必要があります。
別の区間108, 109, 110, 109.8, 109.7は絶対的なピークが高くても、左右の基準の高い方は109.7です。局所的な突出度はわずか0.3で、ATR=1なら同じフィルターを通過しません。これらは幾何学の例であり、完全なW=11のテストケースでも、一方が利益を出し他方が出さないという証拠でもありません。
突出した高値の後でも取引は損失になり得ます。確認後に売り建てを許可し、次に約定できる価格が101.8、構造に基づくストップが106.2だとします。予定価格リスクはすでに4.4ポイントです。107まで反発すれば、検出器が以前の極値を正しく測定していても損失になります。突出度と同じ距離を投影して目標を置くことは、それ自体が別の仮説です。
局所性を検証するために、固定ウィンドウの内側と外側に、より高い隣接ピークを追加してください。新たに評価された候補の顕著性はデータセット間で変化する可能性がありますが、変更されていないプレフィックスから以前に公開されたイベントは書き換えてはなりません。これにより、意図的なウィンドウ定義と、将来の構造の偶発的な使用を区別できます。
エントリーを作る前に突出度をアンカーの特徴量として使う
提案されている用途の 1 つは、ダブルトップまたは抵抗帯のアンカーを選択し、トリガーを、中間安値より低い終値など、後のイベントに任せることです。候補とともに、window_start、window_end、両方のベース、プロミネンス、ATR_ref、検出器バージョン、および confirmed_at を固定します。これらのフィールドにより、決定を正確に再現できます。
確認直後のエントリーには、独自のストップロス、時間決済、リスク制限、および執行モデルが必要です。プロミネンスは、自然な保証価格目標を提供するものではありません。プロミネンスに基づく予測を、登録済みの設定内でのみ、固定R目標または時間決済と比較してください。魅力的なチャートごとに個別に決済を選択しないでください。
検出器が RSI または他の境界付きインジケータで動作する場合、その顕著性はインジケータポイントで測定されます。RSI の顕著性を価格 ATR で割ると、単位が混在します。次元的に一貫性のある正規化を使用するか、生のインジケータポイントを個別に較正された特徴として保持してください。対数価格検出器と通常価格検出器を比較する場合にも、同様の注意が必要です。
ボリュームテストで明確な貢献度を検証する
ボリュームは顕著性を示す式に含まれていないため、別のデータ特徴量として追加できますが、統計的独立性を保証するものではありません。極値付近の活動と、最終的なトリガーとなるRVOLを別々に保存してください。総ボリュームが高いだけでは機関投資家の参加を特定できず、ニュース周辺の顕著なピークは高額なスプレッドと一致する可能性があります。
観測値を突出度/ATRでグループ化し、各グループ内で異なるRVOL範囲を比較します。出来高が大きな値動きを選ぶだけでなく、価格振幅を超える情報を加えるかを調べます。日中データでは比較可能なセッション内時刻の基準を使い、暗号資産では取引所と、基軸資産建て・決済通貨建て出来高の定義を固定します。
ボリュームフィルターがシグナル数、平均保有時間、およびエクスポージャーにどのような影響を与えるかを報告してください。フィルターが多くの有用な機会を排除する場合、約定取引あたりの平均利益が高くてもポートフォリオのパフォーマンスが低下する可能性があります。ボリュームが欠落している場合は、極端な枯渇と解釈するのではなく、データ利用不可ポリシーを明確に定める必要があります。
形状、安定性、経済的価値をそれぞれ個別に検証する
フィクスチャには、大きなピークの横にネストされた小さなピーク、平坦なプラトー、NaN、ウィンドウの端、および近接した候補が含まれる必要があります。正確なベース位置と結果として得られるプロミネンスを確認してください。SciPyを使用する場合は、そのバージョンと前処理を記録してください。中心平滑化フィルタは、独自の将来データ遅延を追加します。
保持されたアンカーの数、固定hバー確認ラグ、および最終アンカーが利用可能になった時点で古くなっている下流パターンの割合を測定します。次に、現実的なコストと実行条件で、固定されたテスト期間における正味の結果を評価します。視覚的に見やすいチャートは、経済的な指標ではありません。
Wを増やすと、新たに評価される局所構造の定義が変わります。ただし、以前のバージョンに属する既に公開されているイベントは変更してはなりません。開発データ上で近隣のウィンドウサイズを比較し、試行回数を記録し、機会損失を考慮した後、追加のフィルタリングによって正味期待値またはリスクが有意に改善されるかどうかを報告してください。
よくある落とし穴
突出度と絶対的な高さを混同する
名目価格が高いからといって、その局所的な底値に対してより顕著なピークを示すとは限らない。
シリーズ全体を見た後の距離の剪定
将来のピークによって、以前のイベントが削除される可能性があります。代わりに、リプレイ機能を使用するか、明示された因果関係に基づくクールダウンを設定してください。
遅延を考慮しない平滑化
中心化した平滑化は後の観測値を使います。その遅延をイベントが実際に利用可能になる時刻に加えます。
この手法を使う前のチェックリスト
ご自身のデータで確認した項目にチェックを入れてください。進捗はこのブラウザに保存されますが、戦略の収益性を認定するものではありません。
よくある質問
突出度は通常のピボットより優れていますか?
これは振幅と基底値に関する基準を追加するものです。それが有効かどうかは、検出器の目的と、アンカーを使用する戦略のサンプル外性能によって異なります。
プロミネンスはRSIピークを検出できますか?
はい、RSIは数値系列だからです。結果として得られる単位はRSIポイントなので、価格ATRは有効な直接分母ではありません。
研究資料
各資料は、その横に記載された定義や根拠を支えています。擬似コード、架空の例、提案パラメータは別途検証が必要です。
- scipy.signal.peak_prominencesSciPy. 左右の基準、wlen、アルゴリズム定義を参照。数値処理の文書であり、金融研究ではありません。 確認日: .
- scipy.signal.peak_widthsSciPy. 相対突出度に対する幅の測定と補間動作を参照。 確認日: .
- scipy.signal.find_peaksSciPy. フィルターの定義と距離の扱いを参照。 確認日: .
関連する手法
リスクについて
この内容は学習と研究設計を目的とし、金融上の助言ではありません。Backtestは過去データのシミュレーションであり、将来の成果を保証せず、実際の売買注文も行いません。このライブラリの手法が、そのままアプリで利用できる機能とは限りません。関連情報: 検証方法 および 学習センター.
実際の資金を使う前にルールを検証する
アプリの対応範囲、データ、個々の模擬取引を確認してください。高度な検出手法は別途実装が必要な場合があります。
App StoreでBacktestをダウンロード