MQL4イメージ

2013.09.07 記事公開
2019.10.11 記事編集

MetaTrader 4 IEDのbeta版について発信した過去のメルマガの一部を紹介します。

最近、MetaTrader 4 の仕様変更スピードがあがってきているように感じます。
これからもっと、大きな変更がありそうです。
重要そうな記事を訳してみますので、間違っていたら連絡ください^^;
■記事URL
https://www.mql5.com/en/forum/13655
------------------------------------------------------------------------
新しいMQL4コンパイラとエディタを含むメタトレーダー4 IDE(統合開発環境)のベータ版
------------------------------------------------------------------------
メタクォーツ社 2013.08.26 14:12
次のトピックの続き:
・今後のメタトレーダー4とMQL4のアップグレード - 大きな変更が進行中(MQL4フォーラム)
→http://forum.mql4.com/56885
・興味深いニュース:今後のメタトレーダー4とMQL4のアップグレード - 大きな変更が進行中(MQL5フォーラム)
→http://www.mql5.com/en/forum/13116
メタトレーダー4/MQL4とメタトレーダー5/MQL5に共通のIDEのベータ版を、以下に添付します。
これは、みんなの情報のための暫定版です。
旧MQL4バージョンとの違い:
・AND/OR理論演算の優先順位を変更しました。現在、すべてが標準C/C++に似ています。
・論理式の短縮評価を導入しました。現在、論理式がその最後に到達する前に評価された場合、C/C++と同じように、後の残りの式は評価されません。
・現在、整数のみがswitch文で使われます。以前は、実数も使用することができました。
・.(ドット記号)は、もう変数名に使用することはできません。また、 @(アットマーク)、$(ドルマーク)、?(クェッションマーク)も変数名で使用することはできません。
・start()関数の必要条件を厳しくしました。以前は、start()関数にパラメータ(仮引数)を設定することができました。現在、init(), start(), deinit(), OnInit(), OnStart(), OnTick(), OnTimer() やその他のエントリーポイントは、それらのシグニチャに正確に一致する必要があります。
※その他のエントリーポイント
MQL5におけるOnTrade(), OnTradeTransaction()
※シグニチャ
関数名と関数の引数の型の並び方の組み合わせ
・キーワード(予約語)の拡張により、現在では、long, float, const, virtual, input, delete, new, do, char のような(変数・関数)名は使用することができません。
・現在、インポートされたDLLの関数は、MQL5と同じように、パラメータ(引数)としてMQLの文字列配列を受けとることはできません。
・定義済み変数 _Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed を取り入れました。これらは、既存のソースファイル内で同じ名前で宣言された単純変数と衝突するかもしれません。
・datetime型は、MQL5のように、8バイトのものになっています。
これらの違いは大したことはなく、コード内で容易に修正することができます。(これらの変更の)見返りに、私たちは多数のMQL5の機能、実行速度の向上、より厳密な優良性操作を手に入れます。
私たちは十分な意見を受け取り、開発者を準備するために、来月中に一般公開テストを実施するつもりです。
MQL5フォーラムでの話し合い:http://www.mql5.com/en/forum/13655
添付たzipファイルは、次のリンクからダウンロードできます:https://c.mql5.com/mql4/forum/2013/08/MetaTrader4.Beta.IDE_1.zip
■編集後記
>・AND/OR理論演算の優先順位を変更しました。
if(条件A && 条件B || 条件C)
とすると、今のMT4のMetaEditorだと、
「条件Bまたは条件C」から判定するんですよね。。
>・論理式の短縮評価を導入しました。
if(条件A && 条件B && 条件C && ・・・)
というように&&が多くなるif文の場合、処理時間短縮のために
if(条件A) if(条件B) if(条件C) ・・・
なんてしてましたけど、その必要が無いということですね^^
>・定義済み変数 _Period, _Symbol, _LastError, _・・・
IEDのベータ版では、今のところ変数_Symbolを宣言すると
declaration of '_Symbol' hides predefined variable
といった警告が出て、変数が上書きされるようです。
これからの動き、目が離せませんね。
最後までお読み頂きありがとうございました!

ご意見・ご要望は、お問い合わせフォームからお願い致します。

ではでは!