ピボットをPythonで書いてみる。ピボットプライスの使い方や計算式のまとめ。

2018年6月27日

使っている取引会社はどこ?
仮想通貨用(2019年5月からAPI取引対応) → GMOコイン
Python API用(FX APIはここしかない) → OANDA ジャパン

こんばんは、新米データサイエンティスト(@algon_fx)です。私生活がドタバタしていて、なかなか勉強をする時間が割けないのが辛いところですが、仕事の方は比較的少しづつ前向きに進み出しており、嬉しいです。

今日もあまり時間が無く、本当は先日に口座開設したOANDA API v20を触りたいところではありますが、諦めていつものPytghon テクニカル指標シリーズを進めます。

今回はピボットの基本的な使い方や計算式、さらにPythonでピボット・プライスとそれに付随するサポートとレジスタンスの計算をしてみます。

【人気記事】

私の機械学習の開発環境&トレード環境を解説

ピボットとは?

ピボットと聞くとエクセルのアレや、Pandasのアレを思い浮かべてしまうのは職業柄ですが、FXのテクニカル指標で使われる「ピボット」は過去の値動きが現在の為替レートへ与える影響を示す指標となっています。

ピボットの指標は前日の「高値」「安値」「終値」を使って、現在のサポートやレジスタンスを算出します。

また、特徴の一つとしてピボットは主に短期売買向けの指標です。

ピボットの計算方法

次はピボットの計算方法を見てみましょう。前述した通り、基本的には前の期間の「高値」「安値」「終値」を用います。

また、ピボットですが「ピボット・ポイント」と呼ばれる中心の指標を求めて、さらにサポート(支持線)の「S1」「S2」「S3」、レジスタンス(抵抗線)の「R1」「R2」「R3」と、全部で7種類の指標の計算を行います。

計算式は下記の通りで特に複雑な処理はありません。

 PP(ピボット・ポイント)=(前日高値+安値+終値)÷3 

 

 S1 = PP – (前日高値 – PP) 

 

 S2 = PP – (前日高値 – 前日安値) 

 

 S3 = S1 – (前日高値 – 前日安値) 

 

 R1 = PP + (PP – 前日高値) 

 

 R2 = PP + (前日高値 – 前日安値) 

 

 R3 = R1 + (前日高値 – 前日安値) 

 

また、S3とR3は別の呼び方があり、S3をLow Break Out Price(LBOP)と呼び、R3はHigh Break Out Price(HBOP)と呼ばれます。

ピボットの使い方

上のピボットの計算式を見て分かりますが、基本として「前日(または一つ前の期間)」の指標となりますが、短期的なトレードの際に利用されます。

ピボットの使い方ですが、「逆張り」と「順張り」の2つに分けて簡単に見ていきましょう。

逆張りでピボットを使う

  • サポート(S1&S2)で買い、S3を下抜けしたら損切り
  • レジスタンス(R1&R2)で売り、R3を上抜けしたら損切り

順張りでピボットを使う

  • レジスタンスの外枠R3で買いシグナル=上昇トレンドが始まったと想定
  • サポートの外枠S3で売り=下降トレンドが始まったと想定

ちなみに一般的には前述した通りで期間は1ですが、期間を510など調整してピボットを使う方もいるみたいです。これも過去レートデータを使ってバックテスト行ってみたいですね。

ピボットをPythonで書いてみる(Pandas使用)

いよいよ本題、ピボットをPythonで書いて見ましょう。計算式は非常に単純ですが、ピボットプライスを本軸として、サポートを3つ、レジスタンスを3つと計算をする回数は多いです。

ちなみに今回は期間を1として計算をしてみました。

では、まずはおきまりの必要なライブラリをインポートしてあげましょう。

次はいつものおきまりのドル円1分足のデータです。こちらで使っているCSVファイルですが、こちらの記事をご参考ください。

上のコードを見ると分かりますが、このデータ…欠損値が多いです。あんまり良い練習データではないので、近日中に指標計算用のデータ取得の記事を書きます。とりあえず、今日は時間がないのでこのままピボットの処理をPandasで進めます。

さて、次はいよいよピボットの処理です。前述した通り、今回は期間を1として計算をしますので、 shift(1) で終値をずらしてあげて、PP、3つのサポート、3つのレジスタンスの計算をしてあげます。

最後に、元データフレームのbmin close を入れて終値を戻してあげましょう。これで処理は大丈夫なはずなので、最後にpivotの最初の五行を表示させてあげます。

全くもってエレガントなコードではありませんが、まぁとりあえず計算はできたのでOKとしましょう。では、実際にplot()を使って終値とピボットの全ての7つの指標でチャートを作って見ます。

あぁ、前半の欠損値が多い部分は、ぜんぜん指標として役に立ってなさそうですね(笑)。やっぱり、早々にまともな別の練習用データを作ってあげなきゃです(笑)

まとめと次への課題

今回は短期トレードで役に立つテクニカル指標「ピボット」をPythonとPandasを使って計算をしてみました。

直前の期間の高値、安値、終値を指標としてもつピボットですが、短期的かつ一定の条件下であればうまく機能しような予感です。

次への課題としては。今回、計算をした通り基本的な期間「1」ですが、「5」や「10」など、様々な期間のピボットを計算して、検証してみたいですね。

以上です!ブログ読んでいただきありがとうございます!Twitterでも色々と発信しているので、是非フォローお願いします!

使っているFX会社はどこ?
仮想通貨用(2019年5月からAPI取引対応) → GMOコイン
Python API用(FX APIはここしかない) → OANDA ジャパン

2018年6月27日FX トレード

Posted by algon