新しいMQL4コンパイラとエディタを含むMetaTrader 4 IDEのベータ版

 

トピックの始まりです。

以下は、MetaTrader4/MQL4とMetaTrader5/MQL5で同じIDEのベータ版です。これは一般公開用のプレビュー版です。

旧バージョンのMQL4との違いは何ですか?

  • 論理AND/OR演算の優先順位を変更しました。これで、すべてが古典的なC/C++と同じになった。

  • 論理式の評価を短縮する機能が導入されました。論理式を評価する際に、残りの部分式は評価されないようになりました。C/C++のように。

  • switch演算子が整数値のみを使用するようになりました。以前は本物を使うことができました。

  • さて、変数名にはフルストップは使えません。また、変数名に '@', '$', '?' を使用することはできません。

  • スタート機能への要求事項が厳しくなりました。従来は、スタート関数の中でパラメータを指定することができました。これで、すべてのエントリポイント init, start, deinit, OnInit, OnStart, OnTick, OnTimer などは、そのシグネチャに正確に一致する必要があります。

  • キーワードセットの拡張により、short, long, float, const, virtual, input, delete, new, do, charのような名前は使えなくなった。

  • インポートされたDLL関数は、パラメータとして文字列配列を受け取ることができなくなりました。MQL5と同様

  • 既存のソースで宣言された同名の単純な変数と衝突する可能性のある定義済みの変数名_Period、_Symbol、_LastError、_CriticalError、_StopFlag、_Point、_Digits、_UninitReason、_RandomSeedが表示されるようになりました。

  • datetime型は、MQL5と同様に8バイトになりました。

致命的な違いではないので、コードで簡単に修正できるかもしれません。その代わり、MQL5の機能をたくさん使えるようにし、実行速度や品質管理もかなり厳しくしています。


今後1ヶ月間、公開テストを実施し、できるだけ多くのフィードバックを集め、開発者の準備をする予定です。

MQL5フォーラムでのディスカッション: https://www.mql5.com/ru/forum/13651

ファイル:
 

これが一番ストレスになっています。

Renat:

インポートされたDLL関数は、パラメータとして文字列配列を受け取ることができなくなりました。MQL5と同様

なぜ互換性を保つことができないのか?もう一度書き直す必要があるのでしょうか?MQL4の文字列配列は残っているのでしょうか?残っている場合、どのように禁止したのか、なぜ禁止したのかが不明です。
 
あくまでDLLに転送することが問題です。
 
Renat:

MQL4フォーラムでのディスカッション: https://www.mql5.com/ru/forum/13651

:)
 
MT4フォーラムをMT5フォーラムのセクションのようにすることは可能でしょうか?
 
以前は、コンパイル時にグローバル変数とローカル変数の名前が一致しても警告は出ませんでしたが、現在は「63行目で'dist'の宣言がグローバル宣言を隠しています」と出ます。また、関数の正式パラメータ名とグローバル変数名が一致してもこの警告は出ます。それは重要なもので、プログラムの動作に影響を与えることができるのでしょうか? それとも、例えば複雑なプロジェクトで混乱しないように、純粋にスタイル的に正しくないものなのでしょうか?(変数のスコープを 意識するのはもう慣れたもので、用途の似た変数を同じ名前で呼ぶことが多い)。
 
zenz:
...これは重要なことで、プログラムの動作に影響を与える可能性があるのでしょうか...?
プログラムの動作は変わりません。4kaで変数の誤用があった場合、新しいコンパイラでもそのまま残ります。
 
新しいエディタでファイルをコンパイルし、MT4.509に滑らせたところ、削除されてしまいました...。:(
 
TarasBY:
新しいエディタでコンパイルしてMT4.509に滑り込ませたところ、削除されてしまいました...。:(

古い端末は新しい言語フォーマットについて何も知らないので、これは論理的なことです。

今のところ、予備テスト用のエディターとコンパイラーを公開したのみです。2週間ほどで、新しいプログラムフォーマットに対応した新端末のベータ版をリリースする予定です。

元記事のリンク先を読むことをお勧めします - 実質的にすべてをカバーしています。

 
Renat:

古い端末は新しい言語フォーマットについて何も知らないので、これは論理的なことです。

今のところ、予備テスト用のエディターとコンパイラーを公開したのみです。2週間ほどで、新しいプログラムフォーマットに対応した新端末のベータ版をリリースする予定です。

元記事のリンク先を読むことをお勧めします - ほとんど全てを網羅しています。


まだ見ていませんが、MT5のようにテスターを作った方が、クォートで :) プロセッサリソースにテスターを付けても問題ないでしょう。
 
M2012K:

まだ見ていませんが、MT5みたいにテスターを作った方が良いですね、引用 :) で、プロセッサリソースにテスターを付けても損はないでしょう。


斧から出た粥」というアニメを覚えていますか?;)))