1. ホーム
  2. algorithm

[解決済み] Support Resistance Algorithm - テクニカル分析

2023-05-20 23:38:55

質問

私は日中足チャートを持っていて、サポートとレジスタンスのレベルを計算する方法を見つけ出そうとしています。 サポートとレジスタンスのレベルを計算する方法を見つけようとしていますが、誰かそれを行うためのアルゴリズム、または良い出発点を知っていますか?

どのように解決するには?

はい、非常に簡単なアルゴリズムは、タイムフレーム、たとえば100バーを選択し、局所的な転換点、または最大値と最小値を探すことです。最大値と最小値は、1次および2次導関数 (dy/dx と d^2y/dx) を使用して、平滑化した終値から計算することができます。dy/dx = 0 で d^y/dx が正の場合、最小値があり、dy/dx = 0 で d^2y/dx が負の場合、最大値があります。

実用的には、平滑化された終値シリーズを反復し、3つの隣接するポイントを見ることによって計算されるでしょう。ポイントが相対的に低い/高い/低いなら、最大値を持ち、そうでなければ、高い/低い/高いなら、最小値を持っています。この検出方法を微調整して、より多くのポイント(例えば5、7)を見て、エッジポイントが中心点から特定の%離れている場合にのみトリガーすることができます。

局所的な最大値と最小値を得たら、次にY方向で互いに一定の距離内にある回転点のクラスタを探します。N個の転換点のリストを取り、それと他の発見された転換点のそれぞれとの間のY方向の距離を計算します。その距離が一定の定数より小さい場合、2つの「近い」転換点を見つけたことになり、サポート/レジスタンスの可能性があることを示します。

例えば、20ドルの2つの転換点は、20ドルの3つの転換点よりも重要度が低いというように、S/Rラインをランク付けすることができます。

これを拡張して、トレンドラインを計算することができます。ターニング ポイントのリストを発見し、各ポイントを順番に取り、他の 2 つのポイントを選択し、直線の方程式に当てはめようとします。その方程式がある誤差の範囲内で解けるなら、傾斜したトレンドラインができる。そうでない場合は、破棄して次の3点の組合せに移る。

トレンドラインを計算するのに3つずつ必要なのは、任意の2点を直線方程式に使うことができるからです。トレンドラインを計算する別の方法は、すべての回転点の組の直線方程式を計算し、3番目の点(または複数の点)が誤差の範囲内で同じ直線上にあるかどうかを確認することです。1つ以上の点がこの直線上にある場合、サポート/レジスタンス トレンドラインを計算したことになります。

ご参考になれば幸いです。コードの例がないのは残念ですが、どのように行うことができるかについていくつかのアイデアを提供しただけです。要約すると

システムへの入力

  • ルックバック期間L(バーの本数)
  • L本の終値
  • 平滑化係数(終値を平滑化するための係数)
  • エラー マージンまたはデルタ (一致を構成するための転換点間の最小距離)

出力

  • 回転点のリスト、それらをtPoints[]と呼ぶ(x,y)
  • トレンドラインの候補のリスト、それぞれを線分方程式 (y = mx + c) で表す。

EDIT:更新

という非常にシンプルなインジケータを最近知りました。 ドンチャンネル これは基本的に20本中の最高値と最安値のチャンネルをプロットするものです。これは、おおよそのサポート・レジスタンスレベルをプロットするために使用することができます。しかし、上記のような転換点を持つドンチャンチャネルの方がカッコイイですね^_^。