Új MT4 build bejelentve – 900

Új MetaTrader4 build: 900

2015. október 22-én a MetaQuotes kiadta a 900-as build verziót. A változások listáját olvashatjátok ebben a bejegyzésben.

Változások a 900-as build változatban

  1. Terminál: Inaktív (amelyhez jelenleg nem kapcsolódunk) számla jelszóváltoztatása javítva
Jelszóváltoztatás inaktív számlán

Jelszóváltoztatás inaktív számlán

  1. Terminál: optimalizált használat és memória felszabadítás nagy mennyiségű historikus adat alkalmazásakor
  2. Terminál: javított és optimalizált működés nagy számú hírkategória esetén.
  3. Szignálok: javítva a leiratkozás a Navigátor helyzetérzékeny menüjéből
Leiratkozás szignálról

Leiratkozás szignálról

  1. MQL4: C++-szerű paraméterezhető osztályok létrehozása osztály sablonok segítségével. Ez lehetővé teszi a még nagyobb absztrakciót és ugyanannak a kódnak a felhasználását különböző osztályokban ugyanazon módon. Példa a használatra:
//+------------------------------------------------------------------+
//|                                                    TemplTest.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Declare a template class                                         |
//+------------------------------------------------------------------+
template<typename T>
class TArray
  {
protected:
   T                 m_data[];
 
public:
 
   bool              Append(T item)
     {
      int new_size=ArraySize(m_data)+1;
      int reserve =(new_size/2+15)&~15;
      //---
      if(ArrayResize(m_data,new_size,reserve)!=new_size)
         return(false);
      //---
      m_data[new_size-1]=item;
      return(true);
     }
   T                 operator[](int index)
     {
      static T invalid_index;
      //---
      if(index<0 || index>=ArraySize(m_data))
         return(invalid_index);
      //---
      return(m_data[index]);
     }   
  };
//+------------------------------------------------------------------+
//| Template class of a pointer array. In the destructor, it deletes |
//| the objects, the pointers to which were stored in the array.     |
//|                                                                  |
//| Please note the inheritance from the TArray template class       |
//+------------------------------------------------------------------+
template<typename T>
class TArrayPtr : public TArray<T *>
  {
public:
   void             ~TArrayPtr()
     {
      for(int n=0,count=ArraySize(m_data);n<count;n++)
         if(CheckPointer(m_data[n])==POINTER_DYNAMIC)
            delete m_data[n];
     }
  };
//+------------------------------------------------------------------------+
//| Declare the class. Pointers to its objects will be stored in the array |
//+------------------------------------------------------------------------+
class CFoo
  {
   int               m_x;
public:
                     CFoo(int x):m_x(x) { }
   int               X(void) const { return(m_x); }
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
TArray<int>     ExtIntArray;   // instantiate TArray template (specialize TArray template by the int type)
TArray<double>  ExtDblArray;   // instantiate TArray template (specialize TArray template by the double type)
TArrayPtr<CFoo> ExtPtrArray;   // instantiate TArrayPtr template (specialize TArrayPtr template by the CFoo type)
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- fill arrays with data
   for(int i=0;i<10;i++)
     {
      int integer=i+10;
      ExtIntArray.Append(integer);
 
      double dbl=i+20.0;
      ExtDblArray.Append(dbl);
 
      CFoo *ptr=new CFoo(i+30);
      ExtPtrArray.Append(ptr);
     }
//--- output the array contents
   string str="Int:";
   for(i=0;i<10;i++)
      str+=" "+(string)ExtIntArray[i];      
   Print(str);   
   str="Dbl:";
   for(i=0;i<10;i++)
      str+=" "+DoubleToString(ExtDblArray[i],1);
   Print(str);   
   str="Ptr:";
   for(i=0;i<10;i++)
      str+=" "+(string)ExtPtrArray[i].X();      
   Print(str);
//--- CFoo objects created via new should not be deleted, since they are deleted in the TArrayPtr<CFoo> object destructor  
  }

Végeredmény:

TemplTest EURUSD,M1: Ptr: 30 31 32 33 34 35 36 37 38 39
TemplTest EURUSD,M1: Dbl: 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0
TemplTest EURUSD,M1: Int: 10 11 12 13 14 15 16 17 18 19
  1. MQL4: Javítva az ArrayCopy függvény memória reallokációja, amely néha MQL4 programok elszállását okozhatta
  2. Teszter: Javítva a hiba, mely indikátorok tesztelése során a globálisan deklarált változók nullázódását okozta
  3. Teszter: Javítva a tesztelés, amennyiben a kereskedési szerverrel megszakadt a kapcsolat
  4. MetaEditor: Type casting esetén függvény név meghatározása a MetaAssist-ban
  5. MetaEditor: Nagy fájlok megnyitása.
  6. MetaEditor: F gyorsbillentyű hozzáadva a keresés funkció gyors elérése érdekében a Code Base fülről; további tippek a státuszsorban a kóddal való munkához: tabulálás növelése/csökkentése, navigáció, kisbetű/nagybetű, stb.
  7. Javított hibák a fórumbejegyzések és hibanaplók alapján.

Az eredeti, angol nyelvű bejelentést itt találod meg.

Írta: |2017-08-20T15:28:41+00:002015. október 24., szombat|MetaTrader4, MQL4|0 hozzászólás

A szerzőről:

Radulovic Attila vagyok, a radu.hu tulajdonosa és szerkesztője. Remélem, hasznosnak találod az oldalamon található anyagokat! Célom, hogy hatékony segítséget nyújtsak Neked a kereskedéssel és az automatizálással kapcsolatban. Érdekel a véleményed, kérlek írd meg kommentben!

Hagyj üzenetet

Adhatok Neked még több ingyenes tartalmat?

Értesítelek hetente megjelenő új tartalmaimról.

Hozzájárulok, hogy az adatvédelmi nyilatkozat szerint biztonságosan kezeld megadott adataimat, valamint hasznos anyagokat és egyedi ajánlatokat küldj nekem termékeiddel, szolgáltatásaiddal kapcsolatban e-mailben