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

8 10月 2015, 10:28
MetaQuotes Software Corp.
0
2 774

はじめに

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
ここで:
  • С: - システムディスクの名前;
  • 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\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で実行され、今もよく使われます。

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

MetaQuotes Software Corp.によりロシア語から翻訳された
元の記事: https://www.mql5.com/ru/articles/1388

新しいMQL4のオフラインチャート 新しいMQL4のオフラインチャート

新しいバージョンのMQL4では、履歴データの保存方法が変更され、MqlRates構造体が新たに追加されました。MqlRates構造体は、Time、Open、Low、High、Close、Volumeなどの値を保存するのに役立ちます。長年にわたってトレーダーは、オフラインチャートを作成する為にHSTファイルに自分のデータを集めて書き込む、自分のプログラムをMQL4で作成していました。各トレーダーは、以前にコンパイルされた全てのEX4ファイルが、新しいMetaTrader4ターミナルで、以前と同様に動作すると確信していることでしょう。

利益のある取引戦略を見つける方法 利益のある取引戦略を見つける方法

この記事では、『ニューラルネットワークを利用しつつ、履歴データ上でコンピュータを使って取引戦略を作り上げることは可能か?』という問いについての答えを与えます。

新しいMetaTrader 4ビルド600以降へのアップデート 新しいMetaTrader 4ビルド600以降へのアップデート

4ターミナル(build600以降)の、ユーザーデータの保存場所が変更されました。以前は、全てのプログラムやテンプレート、プロフィールなどがターミナルのインストールディレクトリに直接保存されていましたが、これからは特定のユーザーターミナルの動作に必要不可欠なデータは、データフォルダと呼ばれる別個の特別なフォルダに保存されます。この記事では、よくある質問についての回答を集めました。

MQL4プログラムの代表的なエラーとその対処法 MQL4プログラムの代表的なエラーとその対処法

旧バージョンのコンパイラでは、プログラムを強制終了しないために、多くのエラーは実行環境で処理されていました。例えば、ゼロ除算エラーや配列の範囲を越えるなどは重大なエラーです。この重大なエラーがプログラムの強制終了をもたらします。新しいコンパイラのおかげで、実際のエラーソースと潜在的エラーソースを見つけ、コードの質を向上させることができます。この記事では、古いプログラムのコンパイル時に起りうるエラーと、その対処法について検証していきます。