MT4ビルド600以降のバージョンのデータ構造と保存場所

MetaQuotes | 8 10月, 2015


はじめに

MT4ビルド600以降のバージョンには、データ構造と保存場所が変更されました。これから、MQL4アプリケーションはプログラムタイプ(エキスパートアドバイザー、指標またはスクリプト)に応じて別のディレクトリに配置されます。ほとんどの場合クライアント端末のデータは端末設置場所から分離された特別なデータフォルダに格納されています。この記事は、どうやって データが転送されるのか、又は、なぜデータ構造と保存場所が変更したのかについて説明しています。


なぜデータ構造と保存場所が変更されたのか

2001年に発表されたWindows XPには、アプリケーションは、後者はプログラムファイルシステムフォルダで行われた場合でも、その設置の場所で、自分のデータを書き込むことができます。その為、管理者権限が必要です。

プログラムファイルとプログラムファイル(x86の):64ビットシステムで作業している場合、別のインストールディレクトリは、32ビットおよび64ビットのプログラムのために提供されます。こちらの記事で説明した動作の特徴は、\Program Files(x86)フォルダと\Program Filesフォルダの両方に関します。

Windows Vistaをはじめとして、マイクロソフトは、Program Filesディレクトリへの書き込みの制限を加えています。ということで、 User Account Control (UAC) が有効になっていると、プログラムはProgram Filesフォルダにそのデータを格納することはできません。すべてのデータは別のユーザーディレクトリに配置することが必要です。この制限によって、悪意のあるソフトウェアからコンピューターを守ることができます。さらに近年はWindowsセキュリティ要件への要求も強くなってきています。

古いアプリケーションを作動させる為、Microsoftが仮想化のプロセス実施しています。プログラムはProgram Filesディレクトリにデータを保存しようとすると、データが実際に次の外観を持つ別のフォルダに保存されます: C:\Users\<ユーザー名>\AppData\Local\VirtualStore\Program Filesウィンドウズ エクスプローラは、ファイルを示している間、このファイルは、インストールディレクトリに保存されているかのように。Microsoft によると、このモードは互換性のためにのみ提供されており、後に除去することができるそうです。

Windowsの更新に応じて、 MT4 ビルド 600以降のデータフォルダの場所が変更されました。これから、クライアント端末は、ユーザディレクトリにデータを保存します。


ユーザーディレクトリ

新バージョンでは、MT4クライアント端末の特定のコピーで作業し、特定のユーザーのすべてのデータがクライアント端末データフォルダと呼ばれる特別な場所に格納されています。このフォルダには、次のパスに沿ってシステムディスクに見つけることができます。

C:\Users\User_account_name\AppData\Roaming\MetaQuotes\Terminal\Instance_id
ここで:

「オープンデータフォルダ」コマンドは、データのフォルダを検索し、開くため、端末のメニューをファイルに追加されました。

オープンデータフォルダ

各端末のデータフォルダのルートも含まれているorigin.txtでは、このデータが参照端末のインストールフォルダへのパスを見つけることができます。これは、にMT4クライアント端末の幾つかのコピーがインストールされている場合、ユーザには各端末のデータフォルダをある端末のインストールディレクトリと一致させます。データフォルダがインストールフォルダから分けられるモードはmainモードと言います。

便宜上、クライアント端末が起動されるたびに、データフォルダのパスが端末のジャーナルに表示されています。例:

2014.02.10 12:48:28.477 Data Folder: C:\Users\JohnSmith\AppData\Roaming\MetaQuotes\Terminal\9F86138A4E27C7218E9EC98A5F8D8CA1


MT4ビルド600以降のMQL4アプリケーションファイルの自動コピー

最新バージョンの端末を起動すると、端末はデータフォルダをチェックします。データフォルダがまだ存在しない場合、端末は自動的にデータフォルダを作成します。データフォルダがインストールフォルダから違うと、MQL4プログラム・履歴データ・設定ファイル・テンプレートデータなど端末のレギュラーデータはこのデータフォルダにコピーされます。インストールディレクトリには、実行ファイル、mql.dllコンパイラまたは音声ファイルなどシステムが変更しないファイルが残っています。データフォルダは、インストールフォルダから違う場合、以下になります。

上記の条件にあたらない場合、クライアント端​​末のデータがインストールディレクトリに格納されています。

端末のレギュラーデータがコピーされた後、ユーザファイルが移行されます。この段階では、ユーザデータファイルが格納されるディレクトリが決定されます。データが端末のインストールフォルダに格納される場合、コピープロセスは以下になります。

インストールディレクトリのソースフォルダ
コンテンツ 端末データディレクトリにコピー先のフォルダ
\experts
エキスパートアドバイザー(自動売買ロボット)
注意 expertsフォルダ内に格納するだけでそのEAをMT4上で利用できるようになります。サブディレクトリはコピーされません。
\MQL4\Experts
\experts\indicatorsカスタム指標
\MQL4\Indicators
\experts\scripts
スクリプト\MQL4\Scripts
\experts\include他のプログラムに実装する MQH と MQ4 ファイルのソースコード。\MQL4\Include
\experts\librariesMQ4形式のソースコードと、それらからコンパイルされたEX4形式の実行可能ファイルのライブラリ。これらは他のMQL4プログラムによってそこに含まれる関数の動的呼び出しのために使用されます。\MQL4\Libraries
\experts\files 特別なファイル・サンドボックス。 MQL4アプリケーションはこのディレクトリ内でみファイルのオペレーションの実行が許可されます。\MQL4\Files
\experts\logs
MQL4アプリケーションのログファイル
\MQL4\Logs
\experts\presets
MQL4アプリケーション用のプリセットファイル
\MQL4\Presets
\experts\images
リソースで使用されるための画像ファイル \MQL4\Images


次に、クライアント端末は、仮想ディレクトリにデータを保存しているのかをチェックします。端末がプログラムファイルディレクトリにインストールされており、オペレーティングシステムは、Windows Vista以上であれば、端末のデータはおそらく、そのディレクトリに格納されています。データが見つかった場合、コピープロセスは同じ様に行われます。

ファイルがされてコピー され、移行中に移動されません。コピーしたファイルはされ削除されないソースフォルダから。

移行時に、コピーされたファイルの送信元と送信先のパスを含むエントリは、端末のジャーナルに作られています。すべてのログは、ターミナルウィンドウのオープンジャーナルタブを表示し、コンテキストメニューで[開く]コマンドを実行します。端末のログファイルを含むフォルダが開きます。

移行は、現在の端末のコピーの成功した場合には、後続のメタトレーダー4端子の更新時にこれ以上繰り返さありません。データフォルダーがインストールフォルダから違うと、移行中にカスタムMQL4アプリも標準ファイルもコピーされています。この場合は、次のダイアログウィンドウが表示されます:

移行に成功しました


Portableモード

Portable起動モードは、Windows XPでの作業のためだけでなく、携帯機器やシステム以外のディレクトリで端末操作のために提供されます。このモードで起動すると、端末は、インストールフォルダにデータを保存しようとします。しかし、ポータブルモードを使用すると、オペレーティングシステムは、(端末がProgram Filesディレクトリにインストールされ、UACシステムが有効になっている場合、たとえば)インストールフォルダ内のデータを格納できるようになることを保証するものではありません。

次の条件がポータブルモードで作業するために満たされる必要があります。

インストールディレクトリ
オペレーティング·システム
必要条件
プログラムファイル、または別のシステムディレクトリ(たとえば、Windows)
Windows XPの
インストールフォルダへの書き込み権限
別の非システムディレクトリ
Windows XPの
インストールフォルダへの書き込み権限
外付けハードドライブ、USBフラッシュドライブなど Windows XPの 端末は常にポータブルモードで起動されます。Windows XPの端末は常にPortableモードで起動されます。
プログラムファイル、または別のシステムディレクトリ(たとえば、Windows)Windows Vista・Windows 7の
UACを無効にして、クライアント端末を起動します。
別の非システムディレクトリWindows Vista・Windows 7の
インストールフォルダへの書き込み権限
外付けハードドライブ、USBフラッシュドライブなど Windows XPの 端末は常にポータブルモードで起動されます。Windows Vista・Windows 7の端末は常にPortableモードで起動されます。
プログラムファイル、または別のシステムディレクトリ(たとえば、Windows)
Windows 8以上
UACシステムを無効にすることはできませんように、それは、ポータブルモードを使用することは不可能です。
別の非システムディレクトリWindows 8以上
インストールフォルダへの書き込み権限
外付けハードドライブ、USBフラッシュドライブなど Windows XPの 端末は常にポータブルモードで起動されます。Windows 8以上端末は常にPortableモードで起動されます。


  • それがされてお勧めしませんあなたは、Windows Vista以降を使用する場合にはポータブルモードを使用すると、端末がプログラムファイルにインストールされます。このモードは、ポータブル機器とWindows XPでの端末操作のために提供されます。
  • ターミナルを更新しており、すべてのデータが別のユーザーデータフォルダにコピーされている場合は、それもされてお勧めしません ポータブルモードに切り替えます。
  • 手動でユーザーデータフォルダにデータをコピーした後、ポータブルモードを使用するには、インストールフォルダにデータをコピーする必要があります。ポータブルモードの端末を起動すると、インストール1にデータフォルダからデータをコピーしません。

「ポータブル/」キーを携帯モードで端末を起動するために使用します。. より利便性のために、あなたがあなたのデスクトップに適切な名前を持つ追加の端末起動のショートカットを作成することができ、ショートカットに直接キーを追加します。

ポータブルモードの端末を起動する


まとめ

マイクロソフトが開発したOSの更新が構造とデータフォルダの場所の変更につながります。まず最初に、このようなデータストレージシステムがMetaTrader 5で実行され、今もよく使われます。

クライアント端末のデータはユーザーディレクトリに自動的にコピーされます。又は、データのフォルダのパスを含むエントリは、端末のジャーナルに端末が起動されるたびに行われます。