//+------------------------------------------------------------------+ //| 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" //+------------------------------------------------------------------+ //| Declaration d'un modele de classe | //+------------------------------------------------------------------+ 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]); } }; //+------------------------------------------------------------------+ //| Modèle de classe d'un tableau de pointeurs. Dans le destructeur, il supprime | //| les pointeurs vers lesquels ils étaient stockés dans le tableau. | //| | //| Noter l'heritage du modele de classe TArray | //+------------------------------------------------------------------+ 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]; } }; //+------------------------------------------------------------------------+ //| Declaration de la classe. Les pointeurs des objets seront stockés dans le tableau | //+------------------------------------------------------------------------+ class CFoo { int m_x; public: CFoo(int x):m_x(x) { } int X(void) const { return(m_x); } }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ TArray<int> ExtIntArray; // instancie le modele TArray (specialise le modele TArray avec le type int) TArray<double> ExtDblArray; // instancie le modele TArray (specialise le modele TArray avec le type double) TArrayPtr<CFoo> ExtPtrArray; // instancie le modele TArrayPtr (specialise le modelete TArrayPtr avec le type CFoo) //+------------------------------------------------------------------+ //| Fonction de demarrage du programme du script | //+------------------------------------------------------------------+ void OnStart() { //--- remplit les tableaux avec les donnees 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); } //--- affiche le contenu du tableau 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); //--- Lest objets CFoo crees avec new ne doivent pas etre supprimes car ils sont supprimes dans le destructeur de l'objet TArrayPtr<CFoo> }Résultat d'exécution :
Terminal Client MetaTrader 4 build 880
Pour obtenir le mot de passe, ouvrez le terminal mobile MetaTrader
4 sur votre smartphone, allez dans la section OTP et entrez le
code de vérification pour recevoir le mot de passe à usage unique.
MetaTrader 4 pour Android |
MetaTrader 4 pour iPhone |
---|---|
|
|
2015.09.14 14:48:18.486 Data Folder: E:\ProgramFiles\MetaTrader 4 2015.09.14 14:48:18.486 Windows 7 Professional (x64 based PC), IE 11.00, UAC, 8 x Intel Core i7 920 @ 2.67GHz, RAM: 8116 / 12277 Mb, HDD: 534262 / 753865 Mb, GMT+03:00 2015.09.14 14:48:18.486 MetaTrader 4 build 872 started (MetaQuotes Software Corp.)
La première version web de la plateforme de trading a été publiée. Toutes les fonctionnalités de trading et d'analyse du terminal de bureau sont maintenant accessibles depuis un navigateur Internet. Le trading sur la plateforme web est sécurisé, toutes les informations transmises sont cryptées de façon sécurisée. Les mots de passe des comptes de trading sont cryptés et stockés uniquement localement par le navigateur.
Le web trading est déjà disponible en test dans la nouvelle section Trading
du site de la MQL5.community. L'interface de la plateforme web est
similaire à celle de la version de bureau. Les fonctions suivantes sont
maintenant disponibles :
int ObjectsDeleteAll( int chart_id, // identifiant du graphique const string prefix, // préfixe int sub_window=EMPTY, // identifiant de la sous-fenêtre du graphique int object_type=EMPTY // type de l'objet );Cette fonction supprime tous les objets graphiques du type spécifié dans le graphique spécifié ou sa sous-fenêtre. Une caractéristique particulière est la possibilité de définir un préfixe dans les noms des objets supprimés. Par exemple, vous pouvez supprimer uniquement les objets ayant des noms commençant par "myobj_".
int WebRequest( const string method, // méthode HTTP const string url, // adresse url const string headers, // En-têtes int timeout, // timeout const char &data[], // un tableau du corps du message HTTP char &result[], // un tableau avec les données de la réponse du serveur string &result_headers // En-têtes de la réponse du serveur );Les notifications d'erreur ont été modifiées. Si une erreur se produit, le tableau "résultat" contiendra la description de l'erreur.
ulong GetMicrosecondCount();
Cette fonction peut être utilisée pour profiler l'exécution d'un programme
et identifier les "étranglements".Correction des erreurs rapportées dans les journaux des crash.