FXピボットの数値が違う理由|計算式と日足境界

自分で計算したピボットが、表示されている値と合わない。あるいは、二つのサービスで数字が違う。本記事を読み終えると、自分が見ている環境がどの区切り・どの価格系列・どの式で作られているかを特定し、食い違いの原因を〈入力(対象期間の選び方を含む)〉〈式〉〈丸めの段階〉のどれかに切り分けられるようになります。

ピボットの計算に使うのは、確定した前の期間の高値・安値・終値という三つの数値だけで、あとは四則演算しか出てきません。統計処理もパラメータの最適化も入りません。それにもかかわらず値が揃わないのは、多くの場合、式の側ではなく、式に入れる前の段階に理由があるためです。

本記事の価格は、後半で引用する実装事業者の公開資料の数値を除き、すべて説明のための合成値です。通貨ペアも特定しません。ピボットの各水準は観察の候補であって、価格の方向を決めるものでも、反発や到達を保証するものでもありません。最終的な判断は読者ご自身で行ってください。

ピボットは、どう計算されているのか

必要な入力は三つだけ

Traditional 方式のデイリーピボットが必要とする入力は、確定した前期間の高値、安値、終値の三つです。始値は使いません。出来高も使いません。当期間の値動きも使いません。

記号意味
H前期間の高値
L前期間の安値
C前期間の終値
X前期間のレンジ。H − L として入力から一意に決まる派生量

再計算に必要な式

以下は、TradingView Support の Pivot Points Standard に記載された Traditional 方式の定義に基づきます。本記事は同ページを、当該実装で定義された計算式の引用元としてのみ参照します。同社を一般的な技術的権威として扱うものでも、提携関係を示すものでもありません。

水準計算式
P(H + L + C) ÷ 3
R1P × 2 − L
S1P × 2 − H
R2P + X
S2P − X
R3P × 2 + (H − 2 × L)
S3P × 2 − (2 × H − L)

P を先に求め、その P を R と S の式へ代入します。P は三つの値の単純平均であり、取引量を加味した平均でも、期間中に最も多く取引が成立した価格でもありません。

検算に使える関係が二つあります。R2 と S2 は P から等距離で、その距離はどちらもレンジ X です。そして R3 は R1 からちょうど X だけ上、S3 は S1 からちょうど X だけ下にあります。一方、R1 と S1 は P から等距離ではありません。R1 は P から安値までの距離を上へ折り返した位置、S1 は P から高値までの距離を下へ折り返した位置だからです。

「確定した」という条件が本体

最も間違えやすいのが、この「確定した」という条件です。当期間の高値・安値は、期間が終わるまで更新される可能性があります。まだ更新されうる値を入力に使うと、水準は日中に動き続けます。動き続ける水準は、事前に計算しておいた観察点としての性格を失い、Traditional 方式のデイリーピボットとは別の指標になります。

前の期間が終了して H・L・C が確定する

次の期間で使う P・R1〜R3・S1〜S3 を計算する

その期間中は同じ水準を使い続ける

期間が終了したら、次の期間用に再計算する

期間中に水準を作り直さないという性質は、ピボットの利点であると同時に制約でもあります。値動きが前期間と大きく変わっても、水準はその期間中は動きません。

手元で1データセットを再計算してみる

入力と結果

以下は説明のための合成値です。実在する相場の値ではなく、特定の通貨ペアを想定したものでもありません。表示は小数第4位、途中計算では丸めません。

項目
前期間の高値 H1.3120
前期間の安値 L1.2980
前期間の終値 C1.3080
レンジ X = H − L0.0140
P  = (1.3120 + 1.2980 + 1.3080) ÷ 3 = 3.9180 ÷ 3 = 1.3060
R1 = 1.3060 × 2 − 1.2980 = 2.6120 − 1.2980 = 1.3140
S1 = 1.3060 × 2 − 1.3120 = 2.6120 − 1.3120 = 1.3000
R2 = 1.3060 + 0.0140 = 1.3200
S2 = 1.3060 − 0.0140 = 1.2920
R3 = 1.3060 × 2 + (1.3120 − 2 × 1.2980) = 2.6120 − 1.2840 = 1.3280
S3 = 1.3060 × 2 − (2 × 1.3120 − 1.2980) = 2.6120 − 1.3260 = 1.2860

この入力では三つの値の合計が 3 で割り切れたため、P が割り切れた値になりました。これは偶然であり、一般には割り切れません。

検算

水準
R31.3280
R21.3200
R11.3140
P1.3060
S11.3000
S21.2920
S31.2860

まず並び順です。1.2860 < 1.2920 < 1.3000 < 1.3060 < 1.3140 < 1.3200 < 1.3280 と、七つの値は昇順に並んでいます。この順序が崩れている場合は、式の適用か入力の取り違えを疑ってください。

次に距離です。この入力では終値 C が高値寄りで終わっているため、P はレンジの中央より上に寄っています。その結果、P から R1 までが 0.0080、P から S1 までが 0.0060 と、上下で距離が異なります。R1 と S1 が P から等距離でないという前節の帰結が、そのまま数値に現れています。R3 と R1 の間隔、S1 と S3 の間隔は、いずれもレンジ X の 0.0140 です。

これらの水準は、当期間に価格が必ず到達する場所ではありません。到達しないまま期間が終わることもあれば、R3 や S3 の外側まで動くこともあります。事前に計算しておいた観察点であり、それ以上でも以下でもありません。

前期間の高値 1.3120・安値 1.2980・終値 1.3080 から中心水準 1.3060 を求め、当期間に R3 から S3 までの7水準が固定される流れを示した図。
前期間の3値から当期間の水準へ。区切りが変われば入力そのものが変わる。

「前日」は、どこからどこまでなのか

区切りは自然には決まらない

ある市場が一日のうち連続して取引されている場合、「一日の終わり」は市場の側から自動的に与えられません。日足を作るには、どこで区切るかを誰かが決める必要があります。区切りは観測される事実ではなく、データを作る際の設計上の選択です。

これは概念上の話ではありません。実際の取引データ提供事業者の公開仕様でも、日足の区切りは指定可能な設定として定義されています。OANDA が公開している v20 REST API の仕様では、日足は日単位の区切りを持つ粒度として定義され、その区切り時刻とタイムゾーンがリクエストのパラメータとして指定できるようになっています。週足の区切り曜日も同様に指定できます。Binance が公開している Spot REST API の仕様でも、ローソク足の区間を解釈するタイムゾーンをパラメータで指定できると記載されています。

区切る位置が違えば、その足に含まれる価格の範囲が変わります。範囲が変われば H と L が変わり、区切りの位置そのものが変われば C も変わります。そして H・L・C が変われば、P・R1〜R3・S1〜S3 のすべてが変わります。

基準期間と、表示している時間足は別物

計算式は、基準期間を変えても同じです。変わるのは入力です。

種類入力とする期間更新の契機
デイリーピボット直前に確定した日足の H・L・C新しい日足が始まるとき
ウィークリーピボット直前に確定した週足の H・L・C新しい週足が始まるとき
マンスリーピボット直前に確定した月足の H・L・C新しい月足が始まるとき

したがって「Traditional のピボット」という指定だけでは値は決まりません。方式と基準期間の二つを揃えて初めて、値が一意に決まります。

混同しやすいのが、チャートに表示している時間足と、ピボットの基準期間の区別です。デイリーピボットを5分足に表示しても、1時間足に表示しても、値は同じです。値を決めるのは前日の H・L・C だけであり、表示する足の長さは計算に関与しません。表示する足が細かくなると線に近づく回数が増えて見え方は変わりますが、水準そのものは変わりません。

表示される時刻の基準

チャートに表示される時刻が、自分の生活時間と一致しているとは限りません。ソフトウェアやサービスによっては、利用者の端末の時刻ではなく、サービス側が定めた時刻で足を形成し、その時刻で表示することがあります。

重要なのは、どの時刻基準が優れているかではなく、自分が見ている足がどの基準で区切られているかを知っているかどうかです。手元の端末の時刻で「前日」を頭の中で決めてしまうと、チャート上の日足の区切りとずれ、手計算した P と、表示されているピボットの P が一致しなくなります。標準時と夏時間の切り替えがある場合は、区切りの位置そのものが動くかどうかも確認の対象になります。

各プラットフォームでの表示手順や時間設定の確認方法は、MT4・MT5でフィボナッチとピボットを表示する方法が扱います。

売値と買値のどちらで H・L・C を作るか

為替の気配値は、売値と買値の二つが同時に提示され、その差がスプレッドです。したがって「その瞬間の価格」は一つに定まりません。チャートがどちらの系列で描かれているかによって、記録される高値・安値・終値はスプレッドの分だけ異なりえます。銘柄によっては、気配値ではなく約定値の系列で足が作られる場合もあります。

このことは二つの場面に影響します。一つ目は入力です。H・L・C をどの系列から取るかによって、計算される P・R・S がわずかに変わります。二つ目は到達判定です。チャート上の価格が S1 に届いていなくても、反対側の系列ではスプレッドの分だけ先に到達していることがあります。目視の観察では無視できる差かもしれませんが、自動化された判定では結果を分けます。

週の初めに現れる短い足

環境によっては、週の始まりに、通常の一日分より明らかに短い足が生成されることがあります。この足の扱いは、区切りの定義と結びついています。

短い足を独立した一日として扱えば、その足の H・L・C が翌営業日のデイリーピボットの入力になります。短い足を隣接する足に含める扱いであれば、入力は別の値になります。どちらの扱いであっても計算式は同じですが、出てくる水準は一致しません。週明けにピボットの値が想定と違うと感じた場合、この点が原因である可能性があります。本記事は、どの扱いが正しいかを判定しません。特定の事業者やサービスの仕様として断定することもしません。

丸めをどの段階で行うか

丸めを最後の表示段階に限定するのは、丸めた値を次の計算の入力に使い回すと、誤差が式を通って各水準へ伝播するためです。これは理屈だけの話ではなく、実装の表示値から確認できます。

Zerodha が公開している解説ページ、すなわち次節で式を並べる実装の一つには、H が 129.7、L が 126.9、C が 127.35 という入力と、その入力に対して Kite ChartIQ が出す水準が併記されています。この入力から P を計算すると 127.98333… となり、割り切れません。ページに表示されている P は、小数第2位に丸めた 127.98 です。

ここで S1 を二通りに計算してみます。表示されている 127.98 をそのまま使うと、127.98 × 2 − 129.7 = 126.26 になります。丸めずに計算すると 127.98333… × 2 − 129.7 = 126.26666… となり、表示段階で丸めて 126.27 です。ページに載っている S1 は 126.27 のほうです。R1 でも同じことが起こります。丸めた P からは 129.06、丸めずに計算すると 129.07 で、ページの表示は 129.07 です。

表示値からの逆算で分かるのは、この実装が丸めた P を再入力していないという一点だけです。ただしその一点が、同じ式・同じ入力でも、丸める段階が違えば最終桁が変わることを示しています。自分で検算するときは、丸めを最後の表示だけに限定してください。

日足境界・基準期間・タイムゾーン・売買価格系列で前期間の高値安値終値が変わる構造
「前日」は区切りと時刻基準を固定して初めて同じ入力になります。画像を拡大して表示(原寸 1672×941)

同じ Traditional なのに、R3・S3 が違うのはなぜか

三つの実装を並べる

ここまでは入力側の話でした。もう一つ、名称が同じでも式が違うという場合があります。同じ計算式が提供元によって異なる名称で呼ばれることがあり、逆に、同じ名称で呼ばれていても R3・S3 の式が違うことがあります。

公開資料で式を確認できる三つの実装を並べます。いずれも当該事業者の公開仕様に関する記述としてのみ参照しており、実装の優劣を評価するものではありません。

水準TradingView(Traditional)Zerodha(Kite ChartIQ)Fidelity(Learning Center)
P(H + L + C) ÷ 3同じ同じ
R1 / S1P × 2 − L / P × 2 − H同じ同じ
R2 / S2P + X / P − X同じP + (R1 − S1) / P − (R1 − S1)。展開すると同じ
R3P × 2 + (H − 2 × L)P + 2 × XH + 2 × (P − L)。展開すると同じ
S3P × 2 − (2 × H − L)P − 2 × XL − 2 × (H − P)。展開すると同じ
定義される水準R5・S5 までR3・S3 までR3・S3 まで
参照する期間利用者が指定。Auto を選ぶと表示中の時間足から自動で決まる表示中の時間足によって前日・前週・前月・前年が自動で決まる式は Previous Day を参照。設定可否は資料に記載なし

一致するのは P・R1・R2・S1・S2 までです。三つとも同じ値になります。割れるのは R3・S3 と、定義される水準の数です。参照する期間については、決め方の自由度と、自動決定にしたときの対応表の一部が分かれます。

割れ方は偶然ではない

R3・S3 の差は、たまたま数値がずれているのではなく、式の構造から決まっています。本記事の合成入力に当てはめると、次のようになります。

R3   TradingView 型 1.3280   Zerodha 型 1.3340   差 0.0060
S3   TradingView 型 1.2860   Zerodha 型 1.2780   差 0.0080

この差は、それぞれ H − P と P − L に一致します。H − P は 1.3120 − 1.3060 = 0.0060、P − L は 1.3060 − 1.2980 = 0.0080 です。式を展開すれば、この一致は入力によらず常に成り立つことが確認できます。

Zerodha 型 R3 − TradingView 型 R3
  = {P + 2(H−L)} − {2P + H − 2L} = H − P

Zerodha 型 S3 − TradingView 型 S3
  = {P − 2(H−L)} − {2P − 2H + L} = L − P

符号は、Zerodha 型から TradingView 型を引いた向きです。そして P は必ず L 以上 H 以下に収まります。C が L と H の間にある以上、三つの平均がその外へ出ることはないからです。したがって Zerodha 型の R3 は常に TradingView 型以上、S3 は常に以下になります。両者が一致するのは、H・L・C がすべて同じ値というレンジのない場合だけです。

参照期間の決まり方も違う

Zerodha の解説ページは、表示中の時間足ごとに参照する期間を明記しています。1分から15分の時間足では前日、30分と1時間では前週、日足では前月、週足と月足では前年の値を使うと記載されています。TradingView にも同種の自動設定があり、公開資料では15分以下が日足、15分より長く1日未満が週足、1日以上が月足と記載されています。15分以下、30分と1時間、日足の3区分は両者で一致し、週足と月足のチャートでの扱いだけが分かれます。

つまり、参照期間を利用者が指定できる実装と、表示中の時間足から自動で決まる実装があり、同じ自動決定でも対応表が完全に同じとは限りません。日足チャートを開いて「デイリーピボット」を想定していると、実際には前月の値が使われている、ということが起こりえます。設定として選べるのか、時間足から自動で決まるのかは、公開されている仕様で確認するほかありません。

本記事が採るもの

本記事の再計算は、上表の TradingView 列の式に限定しています。他の二つは、同じ名称のもとで式と参照期間が割れうることを示す実例として並べたものであり、どれが正しいかを判定するものではありません。名称と式の対応関係、および方式そのものが違う場合の原因分けは、ピボットの値が方式で違う理由が扱います。

Traditional方式でもR3とS3の式や参照期間によって値が分かれる比較
方式名だけでなく、外側の式と参照期間まで確認します。画像を拡大して表示(原寸 1672×941)

それでも合わないとき、どう切り分けるか

切り分けの手順

食い違いを見つけたときは、次の順に確認すると原因を絞り込めます。

  1. 双方が同じ式か。特に R3・S3 の式が一致しているかを確認する
  2. 双方が同じ基準期間か。デイリーとウィークリーを比べていないか、参照期間が自動で決まる実装ではないかを確認する
  3. 双方の入力である H・L・C を、数値そのものとして取り出して照合する
  4. 入力が一致しているのに値が違う場合は、丸めの段階か転記を疑う
  5. 入力が一致していない場合は、区切りの定義、タイムゾーン、価格系列のどれが違うかを確認する

3 の段階で入力を取り出せば、多くの場合そこで決着します。式を疑う前に入力を照合する、という順序が実務的です。ただし、差が R3・S3 だけに出ていて P から R2・S2 までが一致しているなら、入力ではなく式の違いです。この場合は 3 を飛ばして 1 に戻ってください。

価格を見る前に決めておく項目

次の項目を、価格を見る前に決めて記録しておくことをおすすめします。本記事は、どの設定が正しいかを判定しません。

確認の方法は難しくありません。日足チャートで足が切り替わる位置を確認し、同じ場所を短い時間足で見て、どの時刻で新しい日付の足が始まっているかを目で追えば、その環境における日足の区切りは特定できます。

どれが正しいかは判定しない

本記事は、どの区切り方が正しいか、どのデータ提供元や実装が優れているかを判定しません。そうした優劣の評価は本記事の目的ではないためです。

再現性のために必要なのは、唯一正しい入力を探し当てることではなく、自分が使う入力と式の定義を宣言して固定し、検証と実運用で同じ定義を使い続けることです。定義が固定されていれば、値が他所と違っていても、その差の理由は説明できます。定義が固定されていなければ、値が一致していてもそれは偶然です。

式・基準期間・価格系列・丸めの順にピボット差異を切り分ける手順
数値が合わない場合は、式より先に入力条件を照合します。画像を拡大して表示(原寸 1672×941)

次に読む記事

ピボットという指標そのものの概論、各水準の見方の全体像、そして複数方式を横断する式の比較は、ピボットの全体像をまとめたピボットポイント完全ガイドが扱います。本記事は Traditional 一方式の内側だけを見ます。方式が違うことによって値が変わる場合の原因分けは、ピボットの値が方式で違う理由が扱います。

本記事は Traditional 一方式の内側に絞り、入力の固定と実装差の切り分けに集中しました。ここから先は、目的に応じて次の順路があります。

Fibonacci 型や Woodie 型、CPR など方式そのものが違う場合に、入力・確定タイミング・丸めのどこで差が生まれるかは、ピボットの値が方式で違う理由で確認できます。

ピボットと、フィボナッチ系のツールや6ゾーン型のフィボナッチゾーンは、チャート上ではどれも水平の線として現れますが、基準にするデータも更新のタイミングも異なります。線の見た目ではなく、何を入力にしているかで整理したい場合は、フィボナッチ・ピボット・6ゾーン型FZの基準データと更新方法の違いを参照してください。

各プラットフォームでの表示手順と時間設定の確認は、MT4・MT5でフィボナッチとピボットを表示する方法が扱います。ピボットという指標そのものの全体像と、複数方式を横断する概説は、ピボットポイント完全ガイドが扱います。

使う前に確認しておくこと

最後にもう一度確認しておきます。ここで扱ったのは、水準をどう計算し、その入力をどう固定するかという手続きだけです。本記事は、テクニカル分析の計算方法に関する一般的な情報を提供するものであり、特定の商品、通貨ペア、売買方法、業者、プラットフォームを推奨するものではありません。計算された水準は、価格の方向を決めるものではなく、到達や反発を保証するものでもありません。単一の指標だけで売買を決められるものでもありません。水準は観察の出発点であり、そこから先の判断は読者ご自身の責任において行ってください。

参照した情報

上記の各ページには更新日の表示がないため、参照日のみを記載しています。いずれも当該事業者の実装仕様に関する記述としてのみ使用しており、市場における有効性の根拠としては用いていません。各社との提携、認定、推奨関係はありません。本記事に掲載した数値は上記の計算式に基づく計算結果であり、実装事業者の公開資料から引用した作例を除き、使用した入力はすべて説明のための合成値です。

最新の取引条件・手数料・キャンペーン等は、必ず各社公式サイトでご確認ください。本ページの情報は作成時点のものです。