MT5で多数のFXトレードを行っていると、月ごとの勝率などの取引傾向を分析したくなることがあります。プログラミングで可視化する方法について調べてみます。
FXトレードの傾向がわかるグラフ
最近FXトレードの調子が良くなってきました。「FXトレードで利益を上げていくには「損小利大」が大事」とよく言われますが、なんとなく実現できている感じです。その傾向を可視化したくなり、ここ1年間のトレードの傾向をグラフ化してみました。
グラフの縦軸が損益(円)で、横軸は年月です。中央の0円の横線を境に、上にグラフが伸びていれば利益、下に伸びていれば損失です。色分けされて積み上げられている四角は、1回あたりの取引を示しています。
このグラフをみると、2023年の10月,11月は、「損大利小」の取引をしています。
10月は取引回数が少ないにもかかわらず、1回のトレードで比較的大きな損失を出しているのが特徴です。
11月は取引回数が多く、負けこんでいることには変わりありませんが、1回あたりの損失が少なくなっているように見えます。
2024年3月は「損小利大」を実現できているように見えます。今年の3月は、昨年の10月,11月に比べてトレード回数が圧倒的に多いですが、細かく勝ちを積み重ねています。損失の回数もそれなりにありますが、少ない損失で撤退し、損切りがある程度できるようになったようにも見えます。
さて、こうした傾向を引き続きみていくために、分析グラフの作成方法についてまとめておきます。
MT5の取引履歴の取得
MT5では取引履歴をダウンロードできます。OANDAのホームページには、具体的な手順が書かれています。
取引傾向を可視化するプログラムの作成
1 | 必要箇所の抽出 | もとのデータから「時間」と「損益」の列だけ取り出します。 |
2 | 時間から月データへの変換 | 「時間」のデータから YYYY.MMの月データを取り出します。 |
3 | 月の何回目のトレードか番号付与 | 取引ごとにその月で何回目のトレードか番号(Count)を付与していきます。 |
4 | Pivotの作成 | 「Month」を行に、「Count」を列にし、損益の一覧の表を作成します。 |
5 | プロットデータの抽出 | X軸に表示する”Month”の値と、Y軸に表示する損益金額のデータを取り出します。 |
6 | グラフの作成 |
取り出したデータをもとに、負のデータを含む積み上げ型のバーのグラフを作成します
|
ここでは、ステップ1〜ステップ6までをMATLABのプログラムで自動化する方法について説明します。ここでは、「ポジション一覧」のデータだけ取り出したExcelの表を “trade_history.xlsx”としています。
プログラム上級者であれば、もう少し洗練されたプログラムを書けると思いますが、取り急ぎ用件は こちらで解決できたので、とりあえず良しとします。
今回は、MATLABの関数のうち
を使ってみました。pivot関数は、R2024aでリリースされたばかりで、Help Centerのページも2024/3時点で日本語化されていません。Excelのpivotに比べるとまだまだ使いづらいですが、プログラムの一要素として呼び出したい場合には、このような関数があると重宝します。