MT5の取引履歴からトレードの月別傾向を示すグラフを作成する| 脱Excel プログラミング

MT5のトレード傾向分析 脱Excel

MT5で多数のFXトレードを行っていると、月ごとの勝率などの取引傾向を分析したくなることがあります。プログラミングで可視化する方法について調べてみます。

スポンサーリンク

FXトレードの傾向がわかるグラフ

最近FXトレードの調子が良くなってきました。「FXトレードで利益を上げていくには「損小利大」が大事」とよく言われますが、なんとなく実現できている感じです。その傾向を可視化したくなり、ここ1年間のトレードの傾向をグラフ化してみました。

最近のFXトレードの傾向

グラフの縦軸が損益(円)で、横軸は年月です。中央の0円の横線を境に、上にグラフが伸びていれば利益、下に伸びていれば損失です。色分けされて積み上げられている四角は、1回あたりの取引を示しています。

このグラフをみると、2023年の10月,11月は、「損大利小」の取引をしています。

10月は取引回数が少ないにもかかわらず、1回のトレードで比較的大きな損失を出しているのが特徴です。

11月は取引回数が多く、負けこんでいることには変わりありませんが、1回あたりの損失が少なくなっているように見えます。

2024年3月は「損小利大」を実現できているように見えます。今年の3月は、昨年の10月,11月に比べてトレード回数が圧倒的に多いですが、細かく勝ちを積み重ねています。損失の回数もそれなりにありますが、少ない損失で撤退し、損切りがある程度できるようになったようにも見えます。

さて、こうした傾向を引き続きみていくために、分析グラフの作成方法についてまとめておきます。

MT5の取引履歴の取得

MT5では取引履歴をダウンロードできます。OANDAのホームページには、具体的な手順が書かれています。

MT5からダウンロードした取引履歴
このデータには、「ポジション一覧」「注文履歴」「約定」などのデータが入っています。取引傾向を知るために「ポジション一覧」のデータだけ取り出して Excelの表として準備します。

取引傾向を可視化するプログラムの作成

取引傾向がわかるグラフの作成は、以下の手順で行います。Excelでもできないことはないですが、1つ1つの作業を毎回手作業で行うのは面倒です。特にステップ3の「月の何回目のトレードか番号付与」のところはプログラムを組んでおかないと手作業ではいやになってしまうでしょう。
1 必要箇所の抽出 もとのデータから「時間」と「損益」の列だけ取り出します。
2 時間から月データへの変換 「時間」のデータから YYYY.MMの月データを取り出します。
3 月の何回目のトレードか番号付与 取引ごとにその月で何回目のトレードか番号(Count)を付与していきます。
4 Pivotの作成 「Month」を行に、「Count」を列にし、損益の一覧の表を作成します。
5 プロットデータの抽出 X軸に表示する”Month”の値と、Y軸に表示する損益金額のデータを取り出します。
6 グラフの作成
取り出したデータをもとに、負のデータを含む積み上げ型のバーのグラフを作成します

ここでは、ステップ1〜ステップ6までをMATLABのプログラムで自動化する方法について説明します。ここでは、「ポジション一覧」のデータだけ取り出したExcelの表を “trade_history.xlsx”としています。

FXトレードの月別傾向を分析するMATLABのプログラム

プログラム上級者であれば、もう少し洗練されたプログラムを書けると思いますが、取り急ぎ用件は こちらで解決できたので、とりあえず良しとします。

今回は、MATLABの関数のうち

pivot関数

bar関数

を使ってみました。pivot関数は、R2024aでリリースされたばかりで、Help Centerのページも2024/3時点で日本語化されていません。Excelのpivotに比べるとまだまだ使いづらいですが、プログラムの一要素として呼び出したい場合には、このような関数があると重宝します。