=== MT4 Monitor & Trade Logger ===
Contributors: HIRO + ChatGPT
Tags: mt4, trading, monitor, logger
Requires at least: 5.0
Stable tag: 0.3.1
License: GPLv2 or later

MT4のping監視・ダウン通知・クローズ済みトレード記録・損益表示。
バージョン0.3.1では通信障害時の履歴再送、取引重複の防止、集計全件化などを修正しました。

更新 (0.3.0 -> 0.3.1)
1) 必ずWordPressデータベースと元プラグインZIP、EA設定のバックアップを取る。
2) WordPressの「プラグイン > 新規追加 > プラグインのアップロード」で本ZIPをアップロードし、
   既存の「MT4 Monitor & Trade Logger」を置き換える（別名のプラグインを併用しない）。
3) 「設定 > MT4 Monitor」でAPIキーと口座状況を確認する。既存のキーや設定は保持される。
4) 付属の ea/MT4Monitor_Logger.mq4 をMT4の MQL4/Experts に上書き、
   MT4 MetaEditorでコンパイルし、EAを再起動する。WordPress更新だけではMT4側は更新されません。
5) EAの既存入力値(API Base URL、API Key)を確認。HTTPS URLのみ許可。
   MT4の「ツール > オプション > エキスパートアドバイザ > WebRequestを許可するURL」も確認する。
6) MT4の「口座履歴」は「全履歴」を選択する。v0.3.1初回起動では画面に読み込まれている
   決済済み履歴を古い順から再送します。サーバー側が重複登録を防ぎます。
   件数が多い場合、1回あたり標準20件ずつ（同時刻グループは一括）送ります。

大切な注意
- WordPressのプラグインとEAの両方を更新してください。
- v0.3.0からのアップデート時、既存DBは削除しません。旧取引の「server」を判定できる
  ものだけ補完し、不明なものは空欄のまま保持します。大規模DBでは更新中に一時ロック
  が生じることがあります。DBのバックアップが必須です。
- 何らかの原因でDB更新が失敗すると、管理画面にエラーを出して取引保存を停止します。
  中途半端なDB構造で「成功」を返さないためです。
- 監視はWP-Cronを使用。アクセスが少ないサイトではサーバーcronで5分おきに
  wp-cron.php?doing_wp_cron を実行してください。WordPress自体の停止検知は別監視が必要。
- MT4のテスターではWebRequestが利用できず、実機でのコンパイル・通信試験は別途必要です。
- 通信がHTTP 200でも、APIの result=ok または exists を確認できなければ再送します。
- MT4側の同期時刻は同一端末のターミナル・グローバル変数に保持されます。
  グローバル変数は一定期間利用されないと削除されますが、再度全履歴が再送されます。
- ブローカー別に厳密な成績表示をするには
  [mt4mon_account account="123456" server="Broker-Server"] を指定します。
  従来の [mt4mon_account account="123456"] もそのまま使えます。
  不明サーバーの旧履歴は、明示指定したサーバーの集計からは除外されます。
- グラフは直近500取引の累計損益を表示。全体サマリ・月別集計は全件を対象とします。
- APIキーは共通キー方式のままです。公開せず、HTTPSを使ってください。

更新の意図: 0.3.0の画面・REST APIパス・DBテーブル名・既存APIキーを維持する。
