MetaEditorヘルププログラムの開発コンパイル

コンパイル

コンパイルとは、MQL4/MQL5プログラムのソースコードを機械語に変換することを意味します。 その結果、実行可能プログラムファイル (* EX4 または *。EX5) を、トレードプラットフォームで起動することができます。

コンパイルはいくつかの段階で構成されます。

  • 語彙分析
  • 構文解析
  • セマンティック分析
  • コード生成
  • コードの最適化
  • 任意のファイル (*.MQ4、*.MQ5 または *.MQH) はコンパイルでき、実行可能ファイル (*.EX4 または *。EX5)が、メイン MQ4/MQ5 プログラムファイルまたはプロジェクトをコンパイルした結果として取得できます。
  • 実行可能ファイルは、元のプログラムアルゴリズムを隠ぺいする、独自の形式で作成されます。
  • コンパイル済み実行可能な EX4/EX5 ファイルは、ソース MQ4、MQ5 および MQH ファイルなしで配布することができます。 デバッグは、これなしでは不可能です。 また、デバッグプロセス中に取得した実行可能な EX4/EX5 ファイルを配布することは推奨されません。

実行可能プログラムファイルを取得するには、メインソースファイルまたはプロジェクト経由ナビゲータをクリックしコンパイルします。コンパイルファイルメニューまたは F7 コンパイルプロセスプロトコルは、[ツールボックス] ウィンドウの[エラー ] タブに表示されます。 コンパイル過程がエラーなしで渡された場合は、トレーディングプラットフォームで取得したプログラムを実行できます。

プログラムのコンパイルと [エラー] タブでの結果の表示

エラーまたはアラートがある場合は、[エラー] タブに表示されます。

コンパイルエラーのマークエラーエラータブ及び適切なコードの部分です。 実行可能プログラムファイルがありません (* EX4 または *.EX5) が発生した場合に作成されます。 エラーが発生した文字列に移動するには、エラーをダブルクリックするか、その行に移動コンテキストメニューの [ライン] コマンドに移動します。 文字列とエラーが検出された列は、適切な列に表示されます。

マークされたアラートアラートアイコンは、潜在的なエラーの場所を示します。 誤って解釈する可能性のあるソースコードセグメント (たとえば、暗黙的な値型の変更) です。 このようなコード文字列には、エラーが発生した場合とまったく同じ方法で移動できます。

情報アイコンは、たとえば、コンパイル中にアクセスされるプログラムのインクルードファイルに関するメッセージなど、さまざまな情報メッセージのスタンドです。

コンパイルモード #

エディターには、コードの最適化を最大限におこなうモードと、最適化しないモードの2つのコンパイルモードがあります。

最適化を無効にすると、実行ファイルの作成に要する時間が大幅に短縮されます。このモードは、アクティブな開発段階において、書かれたコードを素早くチェックするために使用できます。そして、最終的なプログラムのコンパイル時に、最適化モードをONにすることで、最高のパフォーマンスを発揮できます。

モードの切り替えは、ツールバーの[Build(ビルド))]メニューやコンパイルコマンドメニューで行います。

コンパイルモードの制御

プロジェクト設定のMaximum optimizationパラメータも同様の働きをします。

  • コンパイルエラーの完全な説明は、MQL4/MQL5ヘルプに記載されています。
  • アラートが発生した場合は、実行可能ファイルが生成されます。 しかし、アラートは、潜在的なコードエラーを示すため無視するべきではありません。
  • コンパイル中に実行可能ファイル (*.EX4 または *。EX5) は、プログラムのメインソースファイルと同じディレクトリ またはプロジェクト。に生成されます
  • サードパーティの ide での外部コンパイラとしてmetaeditor.exe を使用できます。.

異なるアーキテクチャのプロセッサ向けのコンパイル #

最新のプロセッサは、数学的計算を大幅に高速化する一連の高度な命令を提供します(AVXAVX2、< /t4>AVX512FMA3)。これらの命令はMQL5コンパイラでサポートされており、より効率的で高速なコードを生成できます。このような命令の使用はオプションです。

  • 自分でアプリケーションを作成しており、目的のアーキテクチャをサポートするプロセッサ上で実行できることが確実な場合は、高度な命令を使用してアプリケーションをコンパイルできます。それによってパフォーマンスが向上します。
  • 公共使用または販売用のプログラムを作成している場合は、X64通常モードの基本命令セットを使用してコンパイルします。これにより、アプリケーションとユーザーのハードウェアとの互換性が最大限に確保されます。

プロセッサでどの命令がサポートされているかを確認するには、CPU-Z無料ユーティリティを使用します。インストール後、CPUセクションを開いて[手順]フィールドを確認してください。

CPU-Zを使用して、プロセッサがサポートしている命令を確認します。

プロセッサアーキテクチャを選択するには、コンパイルメニューを使用します。次に[コンパイル]をクリックします。MetaEditor設定および個別のプロジェクト設定でアーキテクチャを指定することもできます。

プログラムをコンパイルするプロセッサアーキテクチャを選択します。

アプリケーションがユーザーのプロセッサでサポートされていないアーキテクチャ用にコンパイルされている場合、アプリケーションを実行しようとすると、プラットフォーム ログに次のメッセージが出力されます。

your CPU architecture does not allow to run the file '<file-name>.ex5': AVX512 required, you have AVX2 only

制限:

  • AVX512を搭載したプロセッサ向けにコンパイルされたプログラムは、MQL5クラウドネットワークおよび内蔵VPSではまだサポートされていません。
  • X64Regularでコンパイルされたファイルのみマーケットにアップロードできます。これは、アプリケーションとユーザーのハードウェアの互換性を最大限に確保するために必要です。