ウィリアムズ%Rの基本的な使い方や計算方法、さらにPythonで計算してみました。

2018年6月27日

使っているFX会社はどこ?
自動売買用(1万円キャッシュバック中) → インヴァスト証券
Python API用(FX APIはここしかない) → OANDA ジャパン

こんばんは、新米データサイエンティスト(@algon_fx)です。コツコツ、毎日勉強をしながら記事を書いていた甲斐があり、今週に入ってブログのアクセスが増えてきて嬉しいです。

何か間違いやご指摘があれば、お気軽にコメントをいただけると助かります!

今日もPythonでテクニカル指標シリーズとして、ウィリアムズ%R(William’s %Rまたは単純に%Rとも呼ばれる)をPythonの基本的な使い方や計算方法、さらにPythonを使って書いてみたいと思います。(今回は楽をしてTa-libで計算してしまいました)

【人気記事】

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

ウィリアムズ%Rとは?

こちらのテクニカル指標もまた年季の入った指標で、1973年にウィリアムズさんが考案したそうです。MACDなんかも含めて、こう有名な知名度の高い指標って、どれもこれも非常に古くて驚きですね。(むしろ新しい指標などがあれば、そちらも勉強してみたい)

このWilliam’s %Rですが、現在の為替レートが設定した期間中に対して、売られ過ぎているのか、買われ過ぎているのかを示す指標となっています。オシレーター系の指標としては、RSI(相対力指数)と似たような指標ですね。

期間ですが、一般的には14を持つのが一般的です。また下記の計算方法を見るとわかりますが、値として0〜-100%として使います。

ウィリアムズ%Rの計算方法

次にWilliam’s %Rの計算方法を勉強しましょう。計算式は下記となります。シンプルでわかりやすいですね。

前述しましたが、基本的な期間は14でとなります。上の式をみても分かる通り、原則として高値を主軸に算出されており、また割合(%)として表されます。

ウィリアムズ%Rの使い方

オシレーターのRSI(相対力指数)ですが、期間中(基本14)の値上がり幅を値上がり幅と値下がり幅で割った割合(%)の指標ですが、ウィリアムズ%Rも上の計算式の通り、非常に類似しています。

ウィリアムズ%Rの主な使い方は下記の2種類。

・指標が-20%以上で買われ過ぎ
・指標が-80%以下で売られ過ぎ

では、実際にドル円の1分足チャートとウィアムズ%Rを表示させてみてみましょう。下記のチャートですが、期間を14と設定したウィリアムズ%Rを表示させています。(OANDAのブラウザ版でもこの指標はあったw)

上記のチャートのウィリアムズ%Rに注目して欲しいのですが、上の線が-20%、下の線が-80%となっています。

つまり薄青色で囲まれている部分内は安全圏、指標が上線(-20%)を通り越したら買われ過ぎ=売りサイン(青色のマーカー部分)、下線(-80%)から上へ抜けたら売られ過ぎ=買いサイン(赤マーカー部分)というわけです。

実際に上のチャートをみても、綺麗なくらい指標の示すサイン通りにトレードしたら成功して居ますね.。

最後にウィリアムズ%Rの使い方で重要なポイントとして、トレンド相場時には役に立たない指標ということを覚えておきましょう。RSIも同様でしたが、レンジ相場(上記のチャートのような)でしか、上手く機能しませんので気をつけましょう。

ウィリアムズ%RをPython(Ta-Lib)で計算してみよう

上のチャートがあまりにも綺麗に指標通りの値動きをしているので、すでにファンになりつつあるウィリアムズ%Rです。

ってことで、機械学習の特徴量としても使ってみたいので、次は過去為替レートからPythonを使ってこの指標を計算してみましょう。今回はPandasとテクニカル指標を瞬時に算出してくれる髪ライブラリのTa-libを使います。(はい、少しサボりました)

では、Pythonコードを書いていきましょう。まずはライブラリのインポートです。

次に欠損値が多くて練習用データとして使うのに審議が入っている、あの役立たずな USD_JPY_Week2.csv を読み込んで、いつも通り簡単に前処理をしてあげましょう。(CSVの取得方法→過去の為替レートデータ

では、次はいよいよウィリアムズ%Rを計算してあげましょう。今回はTa-Lib先輩にお世話になります。期間は基本の14で算出します。(計算方法簡単とか言っときながら楽をする)

早い!楽!マジで簡単!Ta-lib万歳!

では、しっかりウィリアムズ%Rが算出されたかどうか確認してみましょう。今回は上のCSVファイルから作ったPandasのデータフレームbminwilliamRとして新しいカラムを追加しました。

ちゃんと計算されてますね。最初の13行はデータがないのでNaNとなっています。では、最後にMatplotlibを使って算出したウィリアムズ%Rとドル円のレート(終値)のチャートを書いてみましょう。

大丈夫そうですね!Wililam’s %Rの指標も0から-100%となっていますし、前半は上昇トレンド相場なのであまり機能していなさそうですが、後半のレンジ相場はそれなりに機能してそうです。

まとめと次への課題

今日は老舗オシレーター系指標の「ウィリアムズ%R」をPythonを使って書いてみました。パッとみた感じ、RSI(相対力指数)と非常に似たような指標ですが、計算方法はシンプルなのにとても使えそうな指標という感想です。

次は、RSIとWilliam’s %Rを過去データを使って比較検証をしてみたいですね。さらに、この2つの指標の最大の特徴=レンジ相場でしか役に立たないというのも、どれくらいの幅で役に立つのか、逆にどれくらいで役に立たないのかも検証してみたい。

以上です!勉強にお付き合い頂いてありがとうございます!コメントやTwitterで絡んでもらえると嬉しいです!

使っているFX会社はどこ?
自動売買用(1万円キャッシュバック中) → インヴァスト証券
Python API用(FX APIはここしかない) → OANDA ジャパン

2018年6月27日FX トレード

Posted by algon