コンテンツにスキップ

【移植#63】filesフォルダの外へ書かない — MT5共通領域の書き込みを監査

MT5チャート上でFILE_COMMONへの書き込みと存在確認が成功している実働インジケータ画面

この記事の3行まとめ

  • 絶対パスやDLLでMT5の外部フォルダへ書き込む設計は採用しない
  • FILE_COMMONで端末間共有が可能な安全な共通領域へ書き込む
  • 実際の書き込み・存在確認の状態をチャート上へ表示する

原典の課題

原典は、MT4のfilesフォルダ以外、たとえばCドライブ直下などへ自由に読み書きしたいという質問を扱っています。ジャンクション、Windows API、DLLという複数案が紹介されていました。

MT5では許可された領域を明示する

MT5では、ファイル操作の対象を端末のファイル領域に限定できます。FILE_COMMONを付けると、同じPC上の複数のMetaTrader端末で共有できる共通ファイル領域を使えます。配布インジケータは、そこへ時刻を書き込み、FileIsExist()で存在確認し、結果をチャートへ表示します。

この構成なら、利用者が管理者権限でProgram Filesへコピーしたり、DLL許可を有効にしたりする必要はありません。共有が必要な場合も、許可された共通領域という境界が明確です。

63_Common_File_Health_Indicator_v1_00.mq5 をダウンロード

限界と注意

FILE_COMMONは同一PC上の端末間共有です。別VPSや別PCへの転送機能ではありません。外部へデータを送る場合は、認証、暗号化、送信先の可用性を別途設計してください。口座情報や認証情報をファイルへ書き出す用途にも、そのまま流用しないでください。

検証結果

専用MT5(Build 6061、EURUSD・H1)でインジケータと独立capture EAをコンパイルし、エラー0・警告0でした。画像は実際の書き込み成功・存在確認結果を表示した状態でcaptured=true、画像エラー0で取得でき、注文・ポジション操作はありません。

まとめ

「外へ書きたい」という要望に対して、境界を外してしまうのは簡単ですが、安全性と配布性を失います。MT5ではFILE_COMMONのような標準の共有領域を使い、書き込みと確認の状態を見える化する方が、再現性のある実装になります。


前後の記事

前: 【移植#62】Linear Regressionの謎を解く — 終値をすべて含む平行チャネル

次: 【移植#64】アンディの雲をMT5へ — 一目の雲を平行移動して描く

— SPONSORED —