FXスイングトレードで活用!実効為替レートのグラフを簡単に作成する方法

投資・FX

実効為替レートのデータは、MT4,MT5,TradingViewなどの一般的なFX取引ツールで取得できないため、データの取得、加工、分析作業が面倒です。プログラミング言語MATLABをつかって比較的簡単にグラフを作成する方法を紹介します。

スポンサーリンク

実効為替レートのデータ取得

実効為替レートは、スイングトレード以上の期間の取引で活用できる重要指標の1つです。しかし、実効為替レートのデータは、FX会社の取引ツールや、MT4, MT5, TradingViewなどの著名な取引ツールから取得ができないため、BIS(国際決済銀行)のData Portal から各通貨ごと個別にデータを取得する必要があります。(注:UXY, JXYなどの通貨インデックスは、TradingViewで無料で閲覧できます。データのエクスポートは有料プランへの加入が必要となります。)

参考記事)実効為替レートのデータをどこで入手するか?(BIS)

実効為替レートは、名目・実質、Narrow(27地域)・Broad(64地域)、Daily・Monthlyなどの区分で分けられたデータが各通貨ごとに別々のファイルで存在します。BISのData Portal では、複数国の実効為替レートのデータを選び、1つのExcelにまとめた形でダウンロードすることもできます。

BIS Data Portalの実効為替レートデータ選択画面

このやり方でダウンロードしたデータは、選んだ通貨の実効為替レートが、通貨A ◯日分、通貨B  ◯日分、通貨C ◯日分・・・と順番に記載されていますので、縦軸を時間、横軸を通貨にしてpivotをかければ、以下のような表が簡単に作成できます。

複数通貨の実効為替レートの表

しかし、この方法で一度にダウンロードできるのは、15,000行までです。それ以上取得しようとすると、以下のようなエラーメッセージが表示されます。

BIS Data Portalのダウンロード制限

8カ国分の日次データを取得しようとした場合、15,000 / 8 / 365 = 5.13 なので、過去5年分のデータが限界です。

5年以上の長期間にわたって、日次データを取得する場合には、1通貨ごとにファイルをダウンロードするのが確実です。1つの通貨ごとにファイルをダウンロードする場合でも、行数が長すぎる場合、上記エラーがでます。その場合には、右上の”Export”を押したあと、”Excel”ではなく、”CSV”形式を選ぶとエラーがでなくなります。

Time seriesでExcel出力でエラーになる場合には、CSV形式を選択するとダウンロードできる。
CSV形式でエクスポート

しかし、個別にダウンロードしたこれらのファイルをExcelで1つ1つ読み込んで、手作業で加工していくのは非常に面倒です。

また、Dailyデータを分析する場合には、毎日とは言わずとも、数日おきにデータをダウンロードして読み込み、加工を繰り返さなければなりません。複数通貨で数日おきにこの作業を手作業で行うのは手間がかかりすぎて現実的ではありません。

そこで、この作業を楽にするために、ローコードプログラミングで実効為替レートのデータ分析を行うプログラムを作成してみます。

MATLABプログラムによるデータ加工とグラフ化

データ分析作業を楽にしてくれるプログラミング言語は、Python、R、MATLABなどいろいろとあります。Pythonは、様々な作業をこなせるようライブラリが整備されていて、無料で利用できるため、人気が高い汎用プログラミング言語です。しかし、ここでは時系列データの扱いが得意で、ローコードでプログラムが書けるMATLABをつかってみます。

本来 MATLABは有償ソフトウェアですが、MATLAB Onlineを使えば、無料で簡単なデータ化分析作業が行えます。(ただし、データをMATLABクラウドにアップロードする必要があります。)

MATLABプログラムと同じフォルダに、BISのData Portalからダウンロードしたすべての実効為替レートのExcelファイルをおいておきます。

ファイル名は、”bis_dp_search_export_yyyymmddxxxxxx.xlsx” (yyyymmddは、ダウンロードした日付、xxxxxxは、ダウンロードした実効為替レートの分類コード)となります。

各ファイルを開くと以下のようなフォーマットでデータが格納されています。

名目実効為替レート 日次 日本円

必要なデータは、8列目の”TIME_PERIOD_Period”と 12列目の”OBS_VALUE_value”だけです。複数の通貨の実効為替レートを1つの表にマージしていくため、各ファイルの12列目は、2列目にあるそのレポートのコード名(例:’D.N.N.JP’)に変更しておきます。

ChatGPTに聞きながら、素人ながらに書いてみたコードは以下のようになります。行数は42行となっていますが、コメント部分を除く、実際のコマンドは 19行で済んでいます。本業のプログラマーであればもっと洗練されたコードを書けるのかもしれませんが、プログラムの素人でもここまでできれば、まずは目的が達成できるので十分かと思います。

実効為替レートを分析するMATLABのコード

プログラムの実行結果

さて、実際にプログラムを実行した結果です。ここでは、日本円、米ドル、ユーロの3つの実効為替レートデータをダウンロードし、2020/1/1以降のデータをグラフ化しています。

データは、Daily, Narrow Basket (27経済地域), Nominal(名目実効為替レート)です。

凡例の末尾の JPは日本円、USは米ドル、XMはユーロ経済圏を示しています。

円、米ドル、ユーロの名目実効為替レートのグラフ

非営業日を除外していないので、ところどころグラフが途切れていますが、非営業日の行を除外すれば、なめらかなグラフになります。

他の通貨の実効為替レートのファイルも同じフォルダにおいておけば、すべて1つの表にマージしてグラフ化できます。(グラフはごちゃごちゃして見にくくなりますが)

以下は、豪ドル、中国元、英ポンド、スイスフランを加えて7つの通貨の実効為替レートをグラフ化したものです。(注:中国元だけBroad Basket (62経済地域との比較)となっています。凡例はD.N.B.CNです。)

実効為替レートのグラフ 7通貨

この仕組みを使い、プログラムを少々改変すれば、MT4やMT5からダウンロードした特定通貨ペアの日足ティックデータと組みあわせて分析することもできます。

投資・FX
スポンサーリンク