【MT4スクリプト】取引履歴を指定期間でCSV出力するスクリプト

MT4
潤奈FX
潤奈FX

どうも!和菓子職人トレーダー潤奈です( ゚Д゚)
今回は取引履歴を指定期間でCSV出力するスクリプトを作成したいと思います。

スポンサーリンク

MetaEditorで作成

今回のコードはスクリプトになりますので、MetaEditorで作成する際には「スクリプト」を選択して作成して下さい。

全ソースコード

まずは全ソースコードが以下の通りです( ゚Д゚)その後に解説しますね!

コード解説(各工程ごと)

スクリプト設定部分

ここでは基本設定を行います。

  • #property strict
    → MQL4の厳格モードを有効にして、型チェックなどを厳しくします。
  • #property show_inputs
    → スクリプトをチャートにドロップしたときに、必ずパラメータ設定ウインドウを開くようにします。

これで、期間入力を忘れる心配がなくなります( ゚Д゚)

外部パラメータ設定(開始日時・終了日時)

出力対象の期間を設定するパートです。

input datetime型なので、直接日時入力ができます。

出力ファイル名の設定

ここで、出力するCSVファイルの名前を指定しています。
保存先は、MT4の MQL4/Files フォルダ内です。

必要に応じて好きな名前に変えてOKです!

メイン処理開始 OnStart()の冒頭部分

入力された期間の整合性をチェックします。

開始日時が終了日時よりも後だったら、処理を中断してエラーを表示します。

取引履歴の取得とファイルオープン

ここで、

  • OrdersHistoryTotal()で履歴の件数を取得
  • FileOpen()でCSVファイルを作成

しています。

もしファイル作成に失敗したらエラーを出して終了します。

CSVファイルのヘッダー行を書き込む

ここでは、CSVの列名を一番上に書き込んでいます。

これで後からExcelやスプレッドシートで見た時も、どの列が何かわかりやすくなります!

ちなみに、日本語の方が見やすい!という方は、以下の書き方でもOKです。

取引履歴をループして、期間内だけ抽出

ここでは、

  • 履歴を1件ずつ選んで
  • OrderCloseTime()(決済時間)が指定期間に入っているか判定

しています。

取引情報をCSVへ書き込む

ここでいよいよ、取引データをCSVファイルへ書き込んでいます( ゚Д゚)

特に、

  • OrderTypeToString() のオリジナル関数を使って、注文種別を文字列に変換
  • CalculatePips() のオリジナル関数で、正確なpips損益を計算

してから記録しています。

ファイルを閉じて終了メッセージ表示

最後はファイルをきちんと閉じて、出力件数をログに表示します。

これで完了です!( ゚Д゚)

オリジナル関数の解説

【注文種別を文字列に変換】OrderTypeToString関数

OrderType()だと数値で注文タイプを返すので、注文タイプ(OrderType)を、
わかりやすいID名(OP_BUYなど)に変換する関数です!

【pips計算】CalculatePips関数

OrderTypeのBUY/SELLに応じて、pips数を正確に算出する関数です。

【通貨ペアの桁数対応】AdjustPoint関数

通貨ペアの小数点以下桁数に応じて、pips単位を自動調整します。
これがないと、pips計算がズレます!

ファイルの保存場所

CSVファイルは、MT4メニューの「データフォルダを開く」→「MQL4」→「Files」フォルダへ保存されます。

まとめ

このスクリプトなら、

✅ 開始・終了期間を自由に指定して
✅ 見やすいCSV形式で
✅ 注文種別もわかりやすく出力

できるようになります( ゚Д゚)

トレードの管理・集計・振り返りに、ぜひご活用ください!

【免責事項】

※当ソースコードにおける如何なる損失もご自身の自己責任となります。投資資産における運用の結果生じた損害の全部若しくは一部について一切の責任及び負担を負わないものとします。
※当ソースコードにつきましても、バグや不具合がないことを保証するものではありません。

※当ソースコードについてはサポート等については行っておりません。
※このブログで掲載されている情報は、投資等の勧誘又は推奨を目的としたものではありません。
※掲載されている内容は予告なしに変更することがあります。

コメント

タイトルとURLをコピーしました