こんにちは!たっきん(Twitter)です!
前回はOANDA APIとBokeh使ってローソク足チャートにテクニカル指標を表示させてみました。
今回はチャート以外のテクニカル指標として、オープンオーダーとオープンポジションを可視化して表示させてみようと思います。
オープンオーダー、オープンポジションとは?
オープンオーダーとは、未決済の注文数(割合)のことで、縦軸に価格、横軸に注文数の割合のグラフで表されることが多いです。
オープンオーダーを使うと、
「この価格で相場が値動きが反転しそう!」
「この価格を抜ければ値動きが加速しそう!」
といったことがわかります。
オープンポジションとは、未決済のポジション数(割合)のことで、縦軸に価格、横軸にポジション数の割合のグラフで表されることが多いです。
オープンポジションを使うと、
「今の相場は買い手優位だから上がりやすそう!」
「今の相場は売り手優位だから下がりやすそう!」
といったことがわかります。
オープンオーダー、オープンポジションはFX会社のWEBページ上で見れたりしますが、口座開設が条件だったりして簡単には見れない場合が多いです。
しかし、OANDA(オアンダ)社のように、無料で公開してくれるところもあります。
以下、実際にOANDA(オアンダ)社が公開しているオープンオーダー、オープンポジションです。
リンクも張っておくので気になった方は覗きに行ってみてください!
オープンオーダー、オープンポジションの詳しい使い方も載っているみたいですね!
OANDA APIでも公開されてるの?
答えはYesで、オープンオーダー、オープンポジションはOANDA APIでも公開されています。
ということは、OANDA APIとBokehなどの可視化ライブラリを使えばOANDA社が公開しているのようなグラフ化ができるはず。
さっそく試行錯誤しながらPythonでコードを書いてみました。
ここに全コードは載せませんが、GitHubのほうにUPしておきます。
コード上でオープンオーダーとオープンポジションの情報を取得している箇所は以下になります。
●オープンオーダー
# APIへ過去データをリクエスト
ic = instruments.InstrumentsOrderBook(instrument=instrument,
params=params)
self.__api.request(ic)
●オープンポジション
# APIへ過去データをリクエスト
ic = instruments.InstrumentsPositionBook(instrument=instrument,
params=params)
self.__api.request(ic)
上記のpythonスクリプトを実行すると以下のような図が出力されます。
いい感じですね!
それっぽいグラフが描けてます!
次回はBokehのユーザーインターフェースであるスライドバーやボタンを使って、グラフにもっと動きを付けてインタラクティブ感を出していきたいと思います!
コメント
はじめまして。
ここまでoandaV20のAPIに詳しいブログは無いので、
非常に参考になります。
1点質問です。
コードの中に9時間マイナスにしていて、それを引数に渡しているのですが、
どのような意図がありますでしょうか?
dttk = dt – timedelta(hours=9)
グリニッジ標準時間と東京時間を切り替えてます。
・東京時間 = グリニッジ標準時間 + 9時間
MQLはある程度書けるのですがPython初心者です。
セッティングのProject interpreterのところを見るとbokehはちゃんとインストール出来ているのですが、18行目の
from bokehlib import bokeh_common as bc
のところで
ModuleNotFoundError: No module named ‘bokehlib’
というエラーが出てしまいます。
原因わかりますでしょうか。。。?
bokehlibは自作ライブラリになります。
同プロジェクトのルートディレクトリにbokehlibパッケージがあるのでダウンロードしてください。
https://github.com/takkin-takilog/python-eclipse-sample/tree/master/bokehlib