トップ  >  リリースノート  >  MT4 Ver4.00 Build 970変更内容
MT4 Ver4.00 Build 970変更内容



2016年7月1日にBuild 940以前のメタトレーダー4ターミナルのサポート終了します。

サポートされていないターミナルは、新しいサーバーバージョンへ接続する事は出来ません。
ターミナルのアップグレードをお勧めします。

ターミナル

  1. デモ口座開設のダイアログがシンプルになりました。
    沢山あった入力フォームに全て入力する必要が無くなりました。
    一般的なデータを入力し取引パラメータ(アカウントタイプ・口座残高・レバレッジ)を選択するだけになりました。

MQL4

  1. MQL4言語の新機能実装に伴い、ex4プログラムの形式が変更されました。
    以前のバージョンのメタエディターでコンパイルされた全ex4プログラムは、上位互換性があるのでアップデート後も正常に動作します。
    逆に、build970でコンパイルしたex4プログラムは、下位互換性が無いため古いバージョンのターミナルでは動作しません。
  2. 抽象クラスと純粋仮想関数のサポートが追加されました。
    抽象クラスは派生によって実体を作成する為に使用されます。
    抽象クラスは他クラスの基底クラスとしてしか使用出来ないので、抽象クラスのオブジェクトを作成する事は出来ません。

    純粋仮想関数を1つでも含んでいるクラスは抽象クラスになります。
    抽象クラスから派生したクラスは全て純粋仮想関数を実装する必要があります、実装しない場合は派生したクラスも抽象クラスとなります。

    純粋仮想関数は純粋指定子(=0)を使用して宣言されます。
    下記例のCAnimalクラスは共通機能を提供するだけのクラスです。
    CAnimal型のオブジェクトは実体として使用するには汎用的過ぎます、なのでCAnimalは抽象クラスの良い例になります。


抽象クラスの例
class CAnimal {
public:
                       CAnimal();     // コンストラクタ
   virtual void      Sound() = 0;   // 純粋仮想関数
private:
   double             m_legs_count;  // 動物の足の本数

};


上記例のSound()は、純粋指定子(=0)で宣言されているので純粋仮想関数です。
純粋指定子(NULL または 0)が設定されている仮想関数だけが純粋仮想関数になります。


抽象クラスの宣言と使用例
class CAnimal {
public:
   virtual void       Sound() = NULL;   // 純粋メソッドは派生クラスでオーバーライドする必要がありので、
                                          // 現状ではCAnimalは抽象クラスとなり実体は作成されません。
};

//--- 抽象クラスからの派生
class CCat : public CAnimal {
public:
  virtual void        Sound() { Print("Myau"); } // PURE is overridden, CCat is not abstract and can be created
};

//--- 間違った使用例
new CAnimal;         // コンパイルエラー:"抽象クラスを実体化する事は出来ません"
CAnimal some_animal; // コンパイルエラー:"抽象クラスを実体化する事は出来ません"

//--- 正しい使用例
new CCat;            // CCatは抽象クラスでは無いのでOK
CCat cat;            // CCatは抽象クラスでは無いのでOK


抽象クラスの制限
抽象クラスのコンストラクタによって純粋仮想関数が(直接または間接的に)呼び出された場合、結果は未定義になります。


//+------------------------------------------------------------------+
//| 抽象基底クラス                                           |
//+------------------------------------------------------------------+
class CAnimal {
public:
   //--- 純粋仮想関数
   virtual void      Sound(void)=NULL;
   //--- 関数
   void              CallSound(void) { Sound(); }

   //--- コンストラクタ
   CAnimal()
    {
     //--- 仮想メソッドの明示的呼び出し
     Sound();
     //--- (他関数を用いた)暗黙的呼び出し
     CallSound();
     //--- コンストラクタやデストラクタは常に自身の関数で呼び出します(仮想・派生クラスの呼び出しによってオーバーライドされていても)。
     //--- 呼び出した関数が純粋仮想関数の場合、"純粋仮想関数呼び出し"のクリティカルエラーとなります。
    }
  };


  しかし、抽象クラスのコンストラクタとデストラクタは他メンバ関数を呼び出すことが出来ます。




  1. イベントモデル構成の簡素化の為、関数ポインタのサポートが追加されました。
    関数ポインタの宣言は、関数ポインタの型を指定します。


関数ポインタの型の宣言例
typedef int (*TFunc)(int,int);


上記宣言例で、 TFuncが関数ポインタの型のなりました。
この型を用いて関数へのポインタを宣言する事が可能になります。

関数ポインタ宣言例
TFunc func_ptr;


func_ptr変数は、後に宣言する関数へのポインタを格納する事が出来ます。


int sub(int x,int y) { return(x-y); }
int add(int x,int y) { return(x+y); }
int neg(int x)       { return(~x);  }

func_ptr = sub;
Print( func_ptr(10,5) );

func_ptr = add;
Print( func_ptr(10,5) );

func_ptr = neg;           // エラー:nge関数の型は int(int,int)ではありません。
Print( func_ptr(10) );    // エラー: 引数が足りません



関数ポインタを格納し、引数を渡すことが出来ます。
非静的クラスメソッドへのポインタを取得することはできません。
  1. クライアントターミナルプロパティ列挙の ENUM_TERMINAL_INFO_INTEGER にTERMINAL_SCREEN_DPI(ディスプレイ解像度は1インチ当たりのドット数(DPI)で測られます)を追加。
    この値を知る事で、異なるディスプレイ解像度でも同じように見えるグラフィカルオブジェクトのサイズを決定する事が出来ます。
  2. クライアントターミナルプロパティ列挙の ENUM_TERMINAL_INFO_INTEGER にTERMINAL_PING_LASTを追加しました。
    トレードサーバーへの最後のping値を知る事が出来ます。分解能は1µsecです。
  3. DRAW_NONEバッファ(描画しない)では、 カスタムインジケータのチャートウィンドウの最大値と最小値の算出しません。
  4. OBJ_LABELOBJ_TEXTオブジェクト上でのマウス押下・マウス移動で発生するイベントの不具合修正。
    修正前は、他のOBJ_RECTANGLE_LABELOBJ_RECTANGLEオブジェクト内にある時に誤動作していました。
  5. カスタムインジケータのヒストグラムの高さがゼロだった時の不具合修正。 修正前は、ヒストグラムバーが表示されませんでしたが、修正後は1ピクセルのバーが表示されます。

シグナル

  1. シグナル配信者と購読者の取引可能商品を比較した時の不具合修正。

ストラテジーテスター

  1. テスト設定で現在のスプレッドを使用した時のfxtファイルのスプレッドが使用される不具合修正。

マーケット

  1. マーケットショーケース表示エラーを修正。

メタエディター

  1. "完全一致"で検索した時の不具合修正。
  2. コンパイル結果の行をダブルクリックした時に、対応するファイルへ移動する事が出来るようになりました。 (前からそうだった気がしますけど・・・)
  3. WindowsXPの制御要素表示を修正。.

クラッシュログで報告されたエラーを修正。
更新はLiveUpdateシステムを介して利用可能です。


情報ソース:https://forum.mql4.com/72722




スポンサーリンク
検索

↑の検索エンジンが表示されない人は、
↓の古い検索エンジンを使用して下さい。
カスタム検索
MQL4リファレンスツリー
スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお~ All Rights Reserved.


Top

inserted by FC2 system