
MT4ビルド600以降のバージョンのデータ構造と保存場所
はじめに
MT4ビルド600以降のバージョンには、データ構造と保存場所が変更されました。これから、MQL4アプリケーションはプログラムタイプ(エキスパートアドバイザー、指標またはスクリプト)に応じて別のディレクトリに配置されます。ほとんどの場合クライアント端末のデータは端末設置場所から分離された特別なデータフォルダに格納されています。この記事は、どうやって データが転送されるのか、又は、なぜデータ構造と保存場所が変更したのかについて説明しています。
なぜデータ構造と保存場所が変更されたのか
2001年に発表されたWindows XPには、アプリケーションは、後者はプログラムファイルシステムフォルダで行われた場合でも、その設置の場所で、自分のデータを書き込むことができます。その為、管理者権限が必要です。
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ここで:
- С: - システムディスクの名前;
- User_account_name – Windowsで作業するためのユーザーのアカウント。
- Instance_id – MT4クライアント端末の特定のコピーを使用するためのすべてのユーザーのデータが保存されているフォルダの一意の名前。一意の名前は、16文字で構成されます。クライアント端末のインストールディレクトリへのパスを明示的にフォルダ名として使用することはできませんので、名前は、クライアント端末のインストールディレクトリへのパスに基づいて生成されます。一意の名前のかなりの長さは、クライアント端末の複数のコピーを単一のPCにインストールできることによって説明されます。
「オープンデータフォルダ」コマンドは、データのフォルダを検索し、開くため、端末のメニューをファイルに追加されました。
各端末のデータフォルダのルートも含まれている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コンパイラまたは音声ファイルなどシステムが変更しないファイルが残っています。データフォルダは、インストールフォルダから違う場合、以下になります。
- UACシステムが有効になっています。端末をモバイル機器にインストールするのは例外になります。
- 現在のPCユーザは、インストールディレクトリに書き込みの権限がありません。
- ユーザは、リモートデスクトップ接続を使用します。
上記の条件にあたらない場合、クライアント端末のデータがインストールディレクトリに格納されています。
端末のレギュラーデータがコピーされた後、ユーザファイルが移行されます。この段階では、ユーザデータファイルが格納されるディレクトリが決定されます。データが端末のインストールフォルダに格納される場合、コピープロセスは以下になります。
インストールディレクトリのソースフォルダ |
コンテンツ | 端末データディレクトリにコピー先のフォルダ |
---|---|---|
\experts | エキスパートアドバイザー(自動売買ロボット) 注意 expertsフォルダ内に格納するだけでそのEAをMT4上で利用できるようになります。サブディレクトリはコピーされません。 | \MQL4\Experts |
\experts\indicators | カスタム指標 | \MQL4\Indicators |
\experts\scripts | スクリプト | \MQL4\Scripts |
\experts\include | 他のプログラムに実装する MQH と MQ4 ファイルのソースコード。 | \MQL4\Include |
\experts\libraries | MQ4形式のソースコードと、それらからコンパイルされた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で実行され、今もよく使われます。
クライアント端末のデータはユーザーディレクトリに自動的にコピーされます。又は、データのフォルダのパスを含むエントリは、端末のジャーナルに端末が起動されるたびに行われます。
MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/1388





- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索