MetaTrader4(MT4)のトレード結果をEA別・通貨別に集計する方法(EAのマジックナンバーが不明な場合の確認にも使えます)

   2017/12/22

MetaTrader4(MT4)のトレード結果を確認する方法

MetaTrader4(MT4)のトレード結果をEA別・通貨別に集計する方法

MetaTrader4標準機能

MetaTrader4の標準機能ではターミナルウィンドウの取引履歴を表示して、履歴の上で右クリック⇒「レポートの保存」で保存できます。

MT4取引履歴 レポート保存

「確定申告に使いたい」といった用途であればこれでも十分ですが、EA別にトレード結果を確認したい場合には非常に不便です。

そこで結果をCSVファイル等に出力するスクリプトを作成しよう・・・と思い立ったのですが、調べてみたら既にありました。

なお、EAのマジックナンバーが不明の場合にもこの方法で出力できることが多いのですが、一部のブローカーでは出力されないようです。そのような場合にも以下のCSV出力する方法であれば確認することができます。

MetaTrader4のトレード結果をCSVファイルに保存する方法

1)スクリプトを作成する

MT4の取引レポートをCSV出力するツール こちらのサイトの下の方にスクリプトのソースコードがあります。

MT4の取引レポートをCSV出力するツール

一番上の+をクリックするとソースコードが表示されます。

MT43

範囲選択して文字をコピー(Ctrl+C)した後、メモ帳などのテキストエディタを開いてペースト(Ctrl+V)してファイルを保存します。(ファイル名はStatementToCSV.mq4とします)

ファイルができたらStatmentToCSV.mq4をダブルクリック

MetaEditor(メタエディタ)からコンパイル

コンパイルボタンをクリックすると、StatementToCSV.ex4が作成されます。

(StatementToCSV.mq4と同じフォルダに作成されます)

2)スクリプトをMT4に設定

通常のスクリプトと同様に「MT4データフォルダ」のMQL4の下にあるScriptsフォルダに先ほど作成したStatementToCSV.ex4を置いてMT4を起動(既に起動されている場合にはナビゲーターウィンドウの「スクリプト」を右クリックして「更新」を選択)しますと、ツリーにStatementToCSVと表示されるはずです。

StatementToCSV設定

3)出力したい期間を指定

ターミナルの「口座履歴」タブで右クリック⇒「期間のカスタム設定」を選択

期間のカスタム設定

出力したい期間を設定してOKボタンをクリックしてください。

4)スクリプトの設定

ナビゲーターウィンドウに表示されているStatementToCSVを任意のチャートにドラッグ&ドロップします。

MT47

設定画面が表示されますので、必要に応じてパラメーターを変更します。

Script設定画面

「ReportFromDate」は出力開始日、「ReportToDate」は出力終了日です。

それ以外のパラメータは特に変更する必要ありません。

※上記3)で指定した期間外のデータは出力されません。 設定が終わったらOKボタンをクリックします。

5)CSVファイル出力

CSVファイルは「MT4データフォルダ」のMQL4の下にあるFilesフォルダに作成されます。

後はExcelで開くなりして好きなように加工しましょう。

もしExcelが無い場合には無料で使えるOfficeというものが幾つかありますので、それを利用します。

無料でOfficeを使う方法

今回は上記記事の下に書いてあるGoogleDocsを使いますが、他のOffice製品も(ほぼ)同じように使えるはずです。

EA別・通貨別に集計する方法

1)先ほど作成したCSVファイルを表計算ソフトで開きます

GoogleDocsの表示

情報が大量にあって分かりづらいので不要な列は削除してしまいましょう。(削除したい列を選択して右クリック⇒列を削除) 最低限、以下の情報があれば大丈夫だと思います。(それ以外はお好みで調節してください)

OrderOpenTime(OrderCloseTime)、OrderProfitInPips、OrderSwap、TradeProfit、OrderMagicNumber(またはOrderComment)

※僕の場合はコメント(OrderComment)でEAの判別が可能です。コメントでの判別が不可能な場合にはMagicNumberを使ってEAの判別を行ってください。

2)フィルタを設定

GoogleDocs スプレッドシートにフィルタを設定する

メニューにある「フィルタ」ボタンをクリックします。

MS Officeの場合には「オートフィルタ」というのがあったと思いますのでそれを使ってください(手元にMS Officeが無いので確認できないのですが…)

3)合計行を作成

フィルタをする前に合計行を作成しておきます。

GoogleDocs行追加

通常のOfficeでは最初から行が沢山表示されていますが、GoogleDocsなどのWebアプリケーションでは最低限必要な行だけが表示されます。

行を追加したい場合には画面下部にある「一番下に○○行追加」のボタンがありますので適当な行数を追加してください。

次にTradeProfit列の一番下の行を選択し、=subtotal(9,まで入力します。

GoogleDocsにSubTotal関数を設定

そしてキーボードの上矢印(↑)を押しっぱなしにして2行目まで持っていきます。(マウスホイール等で上まで移動して2行目のセルをクリックしてもOKです。)

GoogleDocsのSubTotal設定開始

そのままShiftキーを押しながら下矢印(↓)を押しっぱなしにして最終行まで範囲選択してください。

もし行き過ぎてしまても上矢印(↑)で戻ればOKです。

GoogleDocs subtotal 設定中

選択したら表示されている関数の最後に)を追加してEnterキーを押してください。

GoogleDocs SubTotal関数設定終了

合計金額が表示されます。Pipsの集計を行いたい場合にはOrderProfitInPips列に、Swapの集計を行いたい場合にはOrderSwap列に同じようにsubtotal関数を埋め込んでください。

4)EAを絞り込む

コメントでフィルタする

OrderComment(またはOrderMagicNumber)列の1行目、右端にある小さな三角形をクリックするとプルダウンが表示されます。集計したいEA(またはMagicNumber)と(空白)を選択してOKボタンをクリックしてください。

先ほど3)で設定したsubtotal関数は表示されたものだけが集計対象になりますので、最終行にフィルタをかけた後の合計金額が表示されます。

※(空白)を選択したのは合計行がフィルタされないようにするためです。空白では都合が悪い場合には合計行のフィルタしたい列に「合計」といった文字を入力してフィルタで選択してください。

5)通貨ペアで絞り込む

EAの場合と同様に通貨ペアでもフィルタが可能です。(EAのフィルタはそのままにしておきます)

GoogleDocs 通貨ペアでフィルタ

OrderSymbolの一番上の行で合計計算したい通貨ペアを選択してOKボタンをクリックします。

GoogleDocs通貨ペアフィルタ設定完了

これでEA別かつ通貨別の合計値が算出できます。

6)トレード期間のフィルタ

「今年分のCSVを作成したが今月のトレードのみ見たくなった」ということがあると思います。

GoogleDocsのフィルタ設定では「表示したいデータ」をクリックしなければならないのでトレード数が多いと沢山クリックしなければならず面倒です。

そこでフィルタ内容を検索で絞り込んで設定します。

まずはOrderOpenTime(またはOrderCloseTime)列のフィルタ設定を開いて「クリア」を押してチェックをすべて外し、(空白)のみチェックします。

GoogleDocsのフィルタの検索設定

次に検索のテキストボックスに対象にしたい月を入力します。

GoogleDocs フィルタ検索設定 検索後に「すべて選択」

たとえば、2014.09と入力して「すべて選択」ボタンをクリック後、OKボタンをクリックすると「2014年9月の行」のみ表示します。

もし、8月も含めたい場合には再度フィルタ設定を開いて2014.08と入力後「すべて選択」ボタンをクリックしてOKボタンをクリックすれば「2014年8月の行」も表示されます。(追加する場合には「クリア」ボタンを押さないようにしてください。)

以上、「MT4のトレード結果をEA別・通貨別に集計する方法」でした。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。