MT5のEA取引履歴を管理するツール「TradeHistorySyncMT5」の無料ダウンロード
TradeHistorySyncMT5 は、MT5のEA取引履歴をレンタルサーバーへ送信し、PHPの管理画面で成績を確認するためのツールです。
MT5側のEAは売買を行いません。
口座履歴を読み取り、サーバー側のPHPへ送信するだけです。
サーバー側では受信した履歴をCSVへ保存し、admin.php の管理画面で一覧表示、絞り込み、マジックナンバー別集計、AI分析などを行えます。
著作権・配布元
Copyright 2026, Masayan.
https://www.gogojungle.co.jp/finance/navi/articles/115391
TradeHistorySyncMT5 取引履歴同期システムのダウンロード⇒ trade_history_ver1.02.zip
初期ログイン情報は以下の通りです。
ユーザー名:admin
パスワード:1111
土曜日・日曜日はMT5の市場が停止しているため、EAによるデータ送信は行われません。
そのため、週末は取引履歴データが更新されません。
MQL5 EA内の著作権表記
#property copyright "Copyright 2026, Masayan."
このシステムでできること
- MT5のEA取引履歴をサーバーへ自動送信
- 取引履歴を年別CSVとして保存
- 管理画面で履歴を一覧表示
- 年、マジックナンバー、通貨ペア、IN/OUTで絞り込み
- マジックナンバー別の損益や勝率を確認
- マジックナンバーごとに短いコメントを保存
- 絞り込み済み履歴をCSVでダウンロード
- ChatGPT、Gemini、GrokのAPIキーを登録してAI分析
ファイル説明
TradeHistorySync_MT5_Ver1.02.mq5
MT5側のEAソースファイルです。MetaEditorでコンパイルして使います。
TradeHistorySync_MT5_Ver1.02.mq5
MT5側のEAソースファイルです。MetaEditorでコンパイルして使います。
EA本体はMT5のExpertsフォルダに入れてください。
TradeHistorySync_MT5_Ver1.02.ex5
コンパイル済みのMT5用EAファイル本体です。
MT5のプロパティ設定で下記のURLを入力します
receive_trade_history.php
MT5から送信されたJSONデータを受け取るPHPファイルです。
管理ページはhttps://ドメイン/admin.phpでアクセス
admin.php
トレード成績を確認する管理画面です。ログイン後に履歴一覧や集計を確認できます。
管理ページのログインパスワードの変更で使用
password.php
管理画面ログイン用パスワードのハッシュ文字列を作成するためのページです。
セキュリティ対策ファイル(デフォルトのままでOK)
trade_history_config.php
MT5からの投稿を許可するpost_keyを設定するファイルです。
トレード履歴をAIで分析する場合に必要
analysis_prompts.php
AI分析に使う定型プロンプトを管理するファイルです。
dataフォルダは自動で作られるのでアップロード不要
data/
CSV、ログ、APIキー保存ファイルなどの保存先です。
必要なもの
このシステムを使うには、MT5だけでなくPHPが動くサーバーが必要です。
レンタルサーバーは高額なものでなくても構いません。
PHPが使える一番安いプランでも、多くの場合は動作します。
無料サーバーでもPHPが利用できれば動作する可能性はありますが、安定運用には有料のレンタルサーバーをおすすめします。
初期設定の流れ
2.receive_trade_history.php にブラウザからアクセスできるか確認します。
3.trade_history_config.php の post_key を確認します。通常はデフォルトのままでOK
PostKey に、PHP側と同じ値を入力します。
SyncEndpointURL に、サーバー上の receive_trade_history.php のURLを入力します。
MT5のツール ⇒ オプション ⇒ エキスパートアドバイザーで下記の設定を行います。
SyncEndpointURLの設定
SyncEndpointURLは、MT5から履歴を送る先のURLです。例:https://example.com/trade_history/receive_trade_history.phpここが間違っていると、MT5からサーバーへ通信できません。
まずブラウザでreceive_trade_history.phpにアクセスし、ページが存在することを確認してください。存在しないURL、アップロード先と違うURL、ドメインの入力間違いがあると通信エラーになります。
PostKeyの設定
MT5側の PostKey と、PHP側の trade_history_config.php にある post_key は同じ文字列にしてください。
MT5側:PostKey = change_me_trade_history_post_keyPHP側:
return [
'post_key' => 'change_me_trade_history_post_key',
];この値が一致しない場合、サーバー側は履歴を受け付けません。
通常はデフォルトのままで問題ありませんが、公開環境で使う場合は、推測されにくい長い文字列へ変更することをおすすめします。
MT5のWebRequest許可設定
MT5では、EAから外部URLへ通信する場合、事前にURLを許可する必要があります。
MT5で次の画面を開きます。
ツール > オプション > エキスパートアドバイザーその中にある「WebRequestを許可するURLリスト」に、送信先ドメインを追加してください。
例:
https://example.com
receive_trade_history.phpのフルURLではなく、ドメイン部分を登録します。
初回に履歴をまとめて送信する場合
初回に指定年の履歴をまとめてサーバーへ送信したい場合は、EAのプロパティで次のように設定します。
初回のみ
YearlyBackfillMode = true
BackfillYear = 2026
ResetSyncStateOnStart = trueこの設定にすると、
BackfillYearで指定した年の履歴を最初から送信します。初回送信が終わったら、必ず次のように戻してください。
送信が終わったかどうかは、admin.phpにログインしてログを確認する。YearlyBackfillMode = false
ResetSyncStateOnStart = falseこの状態に戻すと、次回以降はMT5を再起動しても前回送信した続きから差分だけを送信します。
InitialLookbackDaysについて
通常モードで起動した場合、InitialLookbackDays の日数分だけ過去にさかのぼって履歴を送信します。
例:
InitialLookbackDays = 7この場合、通常モードでは過去7日分が対象です。
初回は全履歴を送信し、それ以降は全履歴を送ることはありません。指定年の履歴をまとめて送信したい場合は、初回のみの設定にしてEAを動かしてください。
MaxDealsPerBatchについて
MaxDealsPerBatch は、1回の通信で送信する最大履歴件数です。
例:
MaxDealsPerBatch = 1001回ですべてのトレード履歴を送るのではなく、100件ずつ分けて送ります。
送信間隔はTimerSecondsで決まります。数千件の履歴がある口座では、すべて送信されるまで数分の時間がかかります。
管理画面
初期ログイン情報は以下の通りです。
ユーザー名:admin
パスワード:1111
アクセスURLの例:
https://example.com/trade_history/admin.phpログイン情報は
admin.php内の$adminAuthで管理されています。ユーザー名を変更したい場合は、
admin.php内のuserを変更します。
パスワードを変更したい場合は、password.phpで新しいパスワードのハッシュ文字列を作成し、admin.php内のpassword_hashと入れ替えてください。
管理画面でできること
ログイン後、次の機能が使えます。
- 取引履歴の一覧表示
- 年、マジックナンバー、通貨ペアで絞り込み
- IN、OUT、INOUTの表示切り替え
- 1ページ300件のページ切り替え表示
- 最大10万行までの履歴閲覧
- 絞り込み済みCSVのダウンロード
- 基本指標の確認
- PF、リスクリワード、期待値の確認
- 連勝、連敗、曜日別、時間帯別の集計
- 月次、日次、マジックナンバー別、通貨ペア別の集計
- マジックナンバーごとのコメント管理
- AI分析
AI分析について
管理画面では、ChatGPT、Gemini、GrokのAPIキーを登録できます。
APIキーを登録すると、集計済みのトレード成績をAIへ送信し、分析結果を表示できます。
AI分析は任意機能です。使わない場合はAPIキーを登録する必要はありません。
APIキーは暗号化して保存されます。
ただし、サーバー自体の管理は利用者自身で行ってください。AI APIの利用料金は、各サービスの料金体系に従って発生します。
保存形式
取引履歴は、口座番号と年ごとにCSV保存されます。
data/csv/ACCOUNT_ID_YYYY.csv
data/csv/22005875_2026.csv
data/csv/22005875_2027.csv重複排除用のインデックスは次の場所に保存されます。
data/index/YYYY.idx重複判定には、次の組み合わせを使います。
account_id + magic_number + deal_ticket + deal_time同じ履歴が再送信されても、重複保存されにくい仕組みになっています。
複数口座で使う場合の注意
CSVファイルは口座番号ごとに分かれます。
ただし、管理画面では複数CSVをまとめて読み込むため、同じマジックナンバーが複数口座にあると、マジックナンバー別成績が合算されます。
マジックナンバー別の成績を正確に分けたい場合は、
基本的には1つの設置フォルダにつき1つのMT5口座で使うことをおすすめします。
複数口座を同じ管理画面で扱う場合は、
口座ごとにマジックナンバーが重複しないようにしてください。
手動売買について
このシステムは、EA自動売買の履歴管理を主な目的としています。
手動売買はマジックナンバーが0になることが多く、
EAごとの成績管理には向きません。
マジックナンバーで成績を分けたい場合は、EA側でマジックナンバーを設定して運用してください。
通信エラー時の動作
サーバーURLが間違っている、WebRequest許可URLが設定されていない、PostKey が一致しないなどの場合、通信エラーになります。
通信に失敗した場合、EAは最大3回までリトライします。
それでも失敗する場合は、エラーコードをログに残し、チャート画面にも通信エラーを表示します。エラーが出た場合は、次の点を確認してください。
SyncEndpointURLが正しいかreceive_trade_history.phpにブラウザでアクセスできるか- MT5のWebRequest許可URLにドメインを追加しているか
- MT5側の
PostKeyとPHP側のpost_keyが一致しているか - レンタルサーバーでPHPが動作しているか
注意事項
このシステムはトレード履歴を管理するための補助ツールです。
売買判断や利益を保証するものではありません。レンタルサーバー、MT5、WebRequest、APIキー、PHPの設置などは、
利用者自身の環境に合わせて設定してください。
本番環境で使う場合は、
post_key、管理画面のユーザー名、パスワードを必ず確認してください。
著作権・配布元
Copyright 2026, Masayan.
https://www.gogojungle.co.jp/finance/navi/articles/115391
TradeHistorySyncMT5 取引履歴同期システムのダウンロード⇒ trade_history_ver1.02.zip
初期ログイン情報は以下の通りです。
ユーザー名:admin
パスワード:1111
土曜日・日曜日はMT5の市場が停止しているため、EAによるデータ送信は行われません。
そのため、週末は取引履歴データが更新されません。
Is it OK?