タイム・プライス・オポチュニティ (TPO) インジケーター
タイム・プライス・オポチュニティ (TPO) は「マーケットプロファイル」とも呼ばれており、価格水準別に時間経過を伴った市場活動を分析するものです。TPOを使うと、市場の動向や価格分布はもちろん、将来の市場の動きを予測するのに役立つ目標価格についてもユニークな観点が得られます。
TradingViewではチャートタイプとしてもTPOを利用することができます。しかし、ここではインジケーターとしてのTPOに焦点を当てます。テクニカル分析ツールとしては、このインジケーターがチャートタイプの基盤にもなっているからです。
目次:
TPOインジケーターとは
「タイム・プライス・オポチュニティ」の概念は、1980年代のシカゴ商品取引所 (CBOT) においてJ・ピーター・スタイドルマイヤーが提唱したものです。先物やコモディティ市場で脚光を浴び、現在ではあらゆる分野で広く使われるようになっています。
「タイム・プライス・オポチュニティ」は、プロファイル内の各価格レベルで費やされた時間を示すブロックと、プロファイル期間内で価格水準が移動した順序を視覚化します。
これは、生の価格データを調べるだけでは分かりにくい重要な価格水準や市場パターンを見極めるのに役立ちます。

TPOの計算原理
このインジケーターでは、左側に各期間ごとのTPOプロファイルが表示され、右側にオプションの出来高プロファイルが表示されます。
TPOプロファイル
ユーザーがプロファイルのカバー期間を日/週/月の単位で指定します。
ユーザーが指定した「ブロックサイズ」(5分、10分、15分、30分、1時間、2時間、4時間)に基づいて、このカバー期間が均等な時間ブロックへと分割されます。
各時間ブロックは時系列にしたがってアルファベットの順番に並べられます。ここで使用されるアルファベットは大文字 [A-Z] から始まり、さらに必要になった場合は小文字 [a-z] が使用されます。カバー期間内の時間ブロックで使用できる文字をすべて使い切った場合には、上記の文字の順番が繰り返されます。
インジケーターは指定された行のサイズに基づいて各期間の価格水準(行)を表示します。行のサイズは自動計算することも、ユーザーが手動で行ごとのティック数を定義することもできます。
プロファイルには価格が移動するたびにその価格水準に時間ブロックが表示されます。
たとえば、行の先頭にある "A "のブロックは、最初の時間ブロックが経過する間に市場価格がその水準に到達したことを表しています。
TPOバリューエリア (VA)
バリューエリアとは、一定期間にTPOブロックが集中している価格帯のことを指します。市場参加者の間で最も関心が高かった価格帯であることを示唆しています。潜在的なサポートとレジスタンスを見極めるためによく使用されます。
TPOプロファイルのバリューエリアは、以下に示すアルゴリズムを使って決定されます:
- プロファイルの全ブロック数を決定する。
- VAに含まれることになる目標のブロック数を、以下の式を使って計算します:
VAの目標ブロック数 = 全ブロック数 * Value Area Percentの値 / 100
- ブロック数が最も多い行 (Point of Control (ポイントオブコントロール) - POC) からカウントを開始します。POCはVAに追加される行のなかで最初のものです。
- VAの中で最も上に位置する行より、さらに上の行に存在するブロックをカウントする。
- VAの中で最も下に位置する行より、さらに下の行に存在するブロックをカウントする。
- ステップ4と5を比較してブロック数が多い方の行を決定し、そのブロック数をVAのブロック数に加えます。そして、その行自体が新たにVAの一部になります。両方の行のブロック数が同一の場合はPOCに近い方の行のブロック数を加えます。さらにPOCからも等距離の場合は上に位置する行のブロック数を加えることとします。
- VAのブロック総数がステップ2で計算した目標値に達するまで、ステップ4~6を繰り返します。
- VA内で最も高い価格水準を「バリューエリアハイ (VAH)」、最も低い価格水準を「バリューエリアロー (VAL)」 とします。
行のサイズ
行のサイズのパラメーターで「自動」のオプションを選択すると、最右端から直近300本の範囲に見えるバーに基づいて行のサイズを計算します。最初に、これらのバーの最高値と最安値の差をシンボルの最小ティック値で割ります:
最小ティックレンジ = (最高値 - 最安値) / シンボルの最小ティック
そして、この値を80で割ります。これがチャートに収まる行数です:
行のティック数 = 最小ティックレンジ / 必要な行数
最後に、この結果を四捨五入して行ごとのティック数を計算します:
行ごとのティック数 = ((行のティック数 / 増分)を四捨五入した値) × 増分
四捨五入される増分は、下記のように計算された値のスケールに依存します:
1 <= 行のティック数 <= 100の場合、増分 = 5。 100 <= 行のティック数 <= 1000の場合、増分 = 50。 1000 <= 行のティック数 <= 10000の場合、増分 = 500。 10000 <= 行のティック数 <= 100000の場合、増分 = 5000 と続きます。
インジケーターがチャートに追加されたり、設定がリセットされたり、シンボルや時間足が変更されたりすると、行のサイズも再計算されます。
出来高プロファイル
オプションの「出来高プロファイル」で使用されるデータは「ブロックサイズ」のパラメーターで指定された時間足のデータです。出来高プロファイルとTPOプロファイルを比較することで、その価格水準の重要性が裏付けられます。
TPOの読み方
均衡と不均衡
均衡と不均衡の2つの状態を考えると、市場は常にこのどちらかの状態にあると言えます。均衡状態とは、売り手と買い手の数がほぼ同じ状態と定義されます。こうしたケースでは、その銘柄に対する需要と供給のバランスが保たれているため、価格は適正価格の周囲に集中することになります。
売り手が買い手の数を上回ったり、その逆の場合には市場は不均衡と見なされます。不均衡な状態になると、市場は新たな適正価格を求めてその方向へと動き始めます。買い手が売り手を上回れば価格は上昇し、売り手が買い手を上回れば価格は下落します。どちらのシナリオでも、買い手と売り手の数が同じになるまで価格は方向性をもって動き続け、均衡した状態に落ち着くのは新たな適正価格に達した時になります。
イニシャルバランスレンジ (IBR)
「イニシャルバランスレンジ」とは、プロファイルの期間中で最初に時間ブロックが表示された価格帯のことを指します。市場ではセッションの最初に取引が活発になることがあります。
IBRを使って最初に重要な価格水準を定めておくと、その後の値動きの評価基準にできます。TPOインジケーターでは、IBRを期間の始点の左側に垂直線で表示します。インジケーターの「設定」内の「スタイル」タブで、 IBRのラインを有効にしたり、計算に使用する時間ブロック数の設定ができます。
TPOミッドポイント
「TPOミッドポイント」とは、TPOのプロファイル内における最安値と最高値の平均値を指します。以下の式で算出されます:
TPOミッドポイント = (TPOの最安値 + TPOの最高値) / 2
サポートとレジスタンスの水準
サポートとレジスタンスは市場において過去に買い(サポート)や売り(レジスタンス)が集中的に発生した重要な価格帯です。反転や継続の可能性をもつポイントを見極めるための基準として利用することができます。TPO分析には他にも重要な価格水準がありますが、その中でもこうした基準になる価格水準として「ポイントオブコントロール (POC)」 や「バリューエリアハイ (VAH)」、「バリューエリアロー (VAL)」があります。
POCとはプロファイルの期間において市場価格が最も長く滞留した水準です。この価格帯に取引活動が集中していることが示され、市場の均衡とコンセンサスの存在が示唆されます。
POCはしばしば将来の値動きの参照点になると考えられています。というのも、市場価格は過去に取引が集中しているエリアに引き寄せられることがあるからです。POCの水準がその後のプロファイルでも同じ価格水準に繰り返し現れることで、その水準がサポートとレジスタンスとして機能する可能性が高まります。
VAHとVALはプロファイル期間を通じて市場活動の大半が発生した価格帯の上限と下限を示しています。その後に続く期間において、VAHとVALがサポートやレジスタンスとして機能する可能性があります。
分布
TPOを解釈するにあたって、アクティブなトレーダーの行動と長期投資家の行動を考えるアプローチがあります。
短期のデイトレーダーはバリューゾーンを注意深く観察して、その範囲内でトレードしたいと考えるでしょう。
長期的な戦略を考えるのであればバリューゾーンに限定する必要がありません。バリューゾーンの外、つまり買い手にとってはVALより下、売り手にとってはVAHより上の価格で、より有利な取引価格を追い求めることができます。
したがって、長期のトレーダーが市場の出来高を支配している場合、買い手と売り手の集中度に応じて資産価格が大きく上昇/下落する可能性があります。
以上のような解釈によって、TPOプロファイルによく見られるレンジの展開パターン、つまり、分布パターンをいくつか説明することができます。以下、その例をいくつか見ていきましょう。
Normal day distribution

通常日の分布とは、現在の期間の価格レンジの大部分 (約85%)が「イニシャルバランスレンジ(IBR)」内にある場合と定義されます。したがって、この場合はIBRの外側で行われる取引活動にそれほど重要性がないか、もしくはその活動自体が存在しないことになります。
取引の大半がバリューエリア、すなわち適正価格の範囲内で行われるため市場は均衡状態にあると考えられます。
現時点での市場の主役は短期トレーダーであり、長期トレーダーの影響はごく小さいことが示されています。
通常変動日の分布

通常変動日は、長期トレーダーの動きが活発な時に発生します。このときの価格レンジは「イニシャルバランスレンジ(IBR)」を超えて、短期トレーダーが保持できない範囲にまで広がります。このIBRを超えるレンジの広がりは、数ティックのこともあればIBRの2倍に及ぶこともあります。
トレンド日の分布

トレンド日は、長期トレーダーが次々とレンジを拡大して、IBRの2倍以上の拡大幅を作り出したときに発生します。また、市場はこのとき新たに広がったレンジの端付近の価格で終了します。この分布では、市場が新たな適正価格を追い求める中で、長期トレーダーがその方向性の鍵を握っていることが示されています。
中立日の分布

中立日は、トレーダーが一時的にIBRを拡大させたときに発生します。この後に市場価格が反転して、同じパターンがIBRの反対側に出現するケースもあります。この分布は市場が不確実な状態にあることを示しています。今のトレンドが継続するのかそれとも変化するのか、それを市場が試しているときに発生するケースが一般的です。
シングルプリント
シングルプリントとは上下両端以外の価格水準のうち、TPOブロックが1つしか存在しない水準のことで、プロファイル期間中に価格がその水準に一度しか到達しなかったことを意味します。市場参加者の潜在的な関心や市場自体の不均衡を示すものと見なされています。この価格では買いまたは売りが限定的で想定外とされただけに、将来的にはこのシングルプリントの水準まで引き付けられた取引が行われる可能性があります。
さらに、シングルプリントはサポートやレジスタンスを示すエリアとして機能する場合があり、また、その後の取引セッションでこれらの水準まで価格が引き戻されることもあるので、トレーダーの監視対象になります。インジケーターの「設定」メニュー内の「スタイル」タブから「シングルプリント」にチェックを入れて有効にすると、チャート上でシングルプリントの範囲が強調表示されます。

注意!: シングルプリントの発生が上下に連続した場合、強調表示されるのは最初のシングルプリントの領域だけになります。

プアハイ (Poor high) とプアロー (Poor low)
プアハイとプアローは、プロファイルの上下両端で複数のTPOブロックが並んでいる価格水準のことを指します。TPO分析においてこれらの水準は、方向性をもった動きが明確な拒否反応もなく停止して、チャート上に短く平坦なトップやボトムが現れたことを意味します。市場がプロファイルの高値/安値を超えてまで価格を探りに行っていない可能性がこのパターンに示されており、潜在的にはさらに動きが拡大する余地があります。
プアハイとプアローには強い反転に特徴的な先細りが見えないので、レンジの更なる拡大を求めている市場参加者の関心を惹きます。必ずしも強力なサポート/レジスタンスのポイントではありませんが、これらの水準は市場の勢いが一服した場所を示していることがあるため、トレード戦略にユニークな視点を提供するものになっています。

プロファイルの分割とマージ
チャートに表示された個々のプロファイルを分割またはマージすることによって、チャート上の特定の領域で取引活動の詳細を異なるレベルから調べることもできます。この機能を使うには表示されているプロファイルを右クリックします。するとコンテキストメニューが表示されるので、メニュー下部から自分が行いたい操作を選択します。
「この文字でプロファイルを分割」は、2つ以上の時間ブロックにまたがるプロファイルを選択し、ユーザーがクリックしたTPOブロックから2つの別々のプロファイルに分割する機能です。

「一つ前のプロファイルとマージ」は、選択したプロファイルをチャート上で一つ前に表示されているプロファイルに結合します。選択したプロファイルがチャート上の最初のプロファイルでなければ、この機能を使うことができます。

「すべてのマージと分割をリセット」は、すべてのプロファイルの分割とマージを元に戻します。

注意!: インジケーターのパラメーターで「期間」や「ブロックサイズ」の値を変更すると、分割やマージもリセットされます。
インジケーターの設定

パラメーター
期間: 各プロファイルがカバーする期間を日/週/月単位の数で指定します。デフォルトでは1日になっています。
ブロックサイズ: プロファイル期間を分割する時間ブロックのサイズを指定します。ブロックサイズを小さくすると、表示がより細かくなります。値は5分/10分/15分/30分/1時間/2時間/4時間で、デフォルトでは30分になっています。TPOと出来高プロファイルの計算に影響します。
行のサイズ: プロファイルの行のサイズを決めるのに使うモードを指定します。デフォルトの自動モードでは自動計算された行のサイズが「行ごとのティック」項目に表示されます。手動モードでは、ユーザーが行ごとのティック数を指定します。
行ごとのティック: 各プロファイル行のティック数で、プロファイルの行数に影響します。行のサイズが「手動」の場合のみ、この項目への値の入力ができます。この値が低すぎるとエラーが発生します。
バリューエリアの比率: TPOブロックの総数に対してバリューエリアを占めるブロック数を計算するのに使用する割合です。デフォルト値は70になっています。
スタイル

Gradient colors(色のグラデーション): TPOブロックに使用される色です。最初の2色はA-Zのブロックが占める範囲に使われます。あとの2色はa-zのブロックに使われます。
ブロック: 色付きのTPOブロックの表示/非表示を切り替えます。ただし、「文字」の表示設定を有効にしているにもかかわらずチャート上で文字表示のスペースが不足している場合は、この設定を無効にしてもブロックが表示されます。
文字: TPOのアルファベット文字の表示/非表示を切り替えます。この設定を有効にすると、チャート上に文字表示のスペースが十分にある場合に限り文字が表示されます。スペースが不足している場合は、代わりに色付きのブロックが表示されます。
Opacity outside VA(バリューエリア外側の不透明度): バリューエリア境界の外側にある価格水準について不透明度を設定します。
ブロックを延長: これを有効にすると、TPOブロックが期間の左側にまとめて表示されるのではなく、期間内で時系列順に間隔を置いて表示されます。この機能を使うと、プロファイルを構成するブロック数がどのように計算されたかや、時間経過に伴って価格がどのように動いたかをより深く理解できます。
POC: このチェックボックスで、POCのラベルの表示/非表示および行の強調の有/無を切り替えます。 ドロップダウンメニューで行の強調表示を延長するかどうかを指定します。「延長」を選択すると、行の強調表示は各プロファイルの期間を超えて価格が再びその行の水準と交差するまで延長されます。POCの表示を有効にした場合、POCの行とラベルの色にはチャートの前景色が使用されます。
Poor high(プアハイ): チェックボックスでプアハイ (Poor high) のラインとラベルについて表示/非表示を切り替え、ドロップダウンメニューでライン表示を延長するかどうかを指定します。「延長」を選択すると、ライン表示は各プロファイルの期間を超えて価格が再びその水準と交差するまで延長されます。
Poor low(プアロー): チェックボックスでプアロー (Poor low) のラインとラベルについて表示/非表示を切り替え、ドロップダウンメニューでライン表示を延長するかどうかを指定します。「延長」を選択すると、ライン表示は各プロファイルの期間を超えて価格が再びその水準と交差するまで延長されます。
Single prints(シングルプリント): チェックボックスでシングルプリントの強調表示の有/無を切り替え、ドロップダウンメニューで行の強調表示を延長するかどうかを指定します。「延長」を選択すると、行の強調表示は各プロファイルの期間を超えて価格が再びその行の水準と交差するまで延長されます。
VAH: バリューエリアハイのラインとラベルについて表示/非表示を切り替えます。
VAL: バリューエリアローのラインとラベルについて表示/非表示を切り替えます。
TPO midpoint(TPOミッドポイント): プロファイルの中間価格を示すラベルについて表示/非表示を切り替えます。
Open(始値): プロファイルの始値のラベルについて表示/非表示を切り替えます。
Close(終値): プロファイルの終値のラベルについて表示/非表示を切り替えます。
Initial Balance Range(イニシャルバランスレンジ): チェックボックスでイニシャルバランスレンジ (IBR) の表示/非表示を切り替えます。オンにするとIBRがプロファイルの左側に縦線として表示されます。数値入力の項目でIBRの計算に使うブロック数を指定します。
出来高プロファイル

Show volume profile(出来高プロファイルを表示): TPOプロファイルの右側に表示される出来高プロファイルについて、表示/非表示を切り替えます。
値: このチェックボックスで、各行の出来高の値とプロファイルの下に期間合計出来高を表示するラベルについて、表示/非表示を切り替えます。カラーパレットでラベルの色を指定します。チャート上に十分なスペースがある場合にかぎって、これらのラベルが表示されます。
VAH: 出来高プロファイルのバリューエリアハイのラインについて、表示/非表示を切り替えたり、ラインの色やスタイルを指定します。
VAL: 出来高プロファイルのバリューエリアローのラインについて、表示/非表示を切り替えたり、ラインの色やスタイルを指定します。
POC: 出来高プロファイルのポイントオブコントロールのラインについて、表示/非表示を切り替えたり、ラインの色やスタイルを指定します。
出来高: バリューエリアの外側の水準での出来高に対して使う色を指定します。
バリューエリア: バリューエリアの内側の水準での出来高に対して使う色を指定します。
配置: 出来高プロファイルの配置について右揃え/左揃えを指定します。
まとめ
タイム・プライス・オポチュニティ(TPO)インジケーターは、アルファベット順のブロックを用いて、様々な価格水準で費やされた時間を表示することによって市場の活動を視覚化します。市場の均衡/不均衡を明らかにするTPOプロファイルを表示すると、重要な価格水準やサポートゾーンとレジスタンスゾーン、分布パターンの見極めに役立ちます。
主な構成要素としては、バリューエリア(取引活動の70%)、ポイントオブコントロール(最も活動レベルが高い)、イニシャルバランスレンジ(セッション序盤の価格帯)が挙げられます。このインジケーターは様々な分布パターン(通常日、トレンド日、中立日)に対応しており、シングルプリントやプアハイ/プアローを将来的に関心が持たれる領域として強調表示します。
期間やブロックサイズなどの視覚要素をカスタマイズできるほか、オプションで出来高プロファイルを表示して、その価格帯の重要性を再確認することもできます。
こちらもご覧ください: