MetaEditor : Ajout d'un lien vers le tutoriel vidéo "Comment Créer un Robot de Trading dans l'Assistant MQL5" pour l'Assistant MQL5. Regardez cette vidéo de trois minutes et développez un robot de trading sans écrire une seule ligne de code.
2015.10.14 14:48:18.486 Data Folder: C:\Program Files\MetaTrader 5 2015.10.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.10.14 14:48:18.486 MetaTrader 5 build 1190 started (MetaQuotes Software Corp.)
struct MqlTick { datetime time; // Heure de la dernière mise à jour d'un prix double bid; // Prix Bid actuel double ask; // Prix Ask actuel double last; // Prix Last actuel ulong volume; // Volume du prix Last actuel long time_msc; // Heure de la dernière mise à jour d'un prix en millisecondes uint flags; // Flags du tick };Les paramètres de chaque tick sont remplis indépendamment du fait qu'il y ait des changements par rapport au tick précédent. Ainsi, il est possible de trouver un prix correct pour un moment donné dans le passé, sans avoir besoin de rechercher des valeurs antérieures. Par exemple, même si le prix Bid change pendant l'arrivée d'un tick, la structure contient toujours les autres paramètres, notamment le prix Ask précédent, le volume, etc. Vous pouvez analyser les flags des ticks pour savoir exactement quelles données ont été modifiées :
//+------------------------------------------------------------------+ //| 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" //+------------------------------------------------------------------+ //| Déclare un modèle 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. Le destructeur supprime | //| les objets stockés dans le tableau. | //| | //| Noter l'héritage de la classe templatée 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]; } }; //+--------------------------------------------------------------------------+ //| Déclare la classe. Les pointeurs vers ses 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 TArray (spécialiee TArray avec le type int) TArray<double> ExtDblArray; // instancie TArray (spécialise TArray avec le type double) TArrayPtr<CFoo> ExtPtrArray; // instancie TArrayPtr (spécialise TArrayPtr avec le type CFoo) //+------------------------------------------------------------------+ //| Fonction de démarrage du script | //+------------------------------------------------------------------+ void OnStart() { //--- remplit les tableaux avec les données 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); } //--- extrait les contenus du tableau string str="Int:"; for(int i=0;i<10;i++) str+=" "+(string)ExtIntArray[i]; Print(str); str="Dbl:"; for(int i=0;i<10;i++) str+=" "+DoubleToString(ExtDblArray[i],1); Print(str); str="Ptr:"; for(int i=0;i<10;i++) str+=" "+(string)ExtPtrArray[i].X(); Print(str); //--- Les objets CFoo créés via new ne devraient pas être effacés puisqu'ils sont supprimés dans le destructeur de l'objet TArrayPtr<CFoo> }Résultats d'exécution :
int ObjectsDeleteAll( long chart_id, // identifiant du graphique const string prefix, // préfixe du nom de l'objet int sub_window=-1, // indice de la fenêtre int object_type=-1 // type d'objet pour la suppression );
Documentation mise à jour.
Lisez le texte entier ici.
Maintenant, vous pouvez acheter n'importe quelle application du Market en une seule étape directement à partir de votre terminal MetaTrader 4/5 sans inscription. Il suffit de cliquer sur Acheter et de sélectionner le mode de paiement.
Vous serez, ensuite, redirigé vers la page du système de paiement Web pour finaliser votre achat. PayPal, WebMoney, Neteller ou carte bancaire - vous pouvez choisir comment payer vos achats dans la boutique de robots et d'indicateurs prêts à l'emploi.
Après avoir effectué un achat, nous vous recommandons toujours de vous créer un compte MQL5.community, afin que votre produit acheté soit automatiquement lié à votre compte. Un compte MQL5 vous permet de mettre à jour le produit et de l'installer sur plusieurs ordinateurs. En outre, un compte MQL5.community vous donne accès un ensemble de services pour les plateformes MetaTrader tels que les signaux de trading pour copier les transactions de traders à succès, l'hébergement virtuel pour une utilisation continue de vos applications et le service Freelance pour commander des robots uniques auprès des développeurs.
Maintenant, vous connaissez la façon la plus rapide et la plus facile d'obtenir un robot de trading. Plus de 5.000 applications de MetaTrader sont déjà disponibles dans le Market - choisissez et achetez tout simplement !
Les Actifs sont ajoutés aux Fonds du client et augmentent la Marge Libre, augmentant donc les volumes des opérations de trading admises sur le compte.
Ainsi, il est maintenant possible d'ouvrir des comptes avec différents types de marge.
ulong GetMicrosecondCount();
Cette fonction peut être utilisée pour profiler l'exécution du programme et identifier des "étranglements".Correction d'erreurs rapportées dans les journaux.
Documentation mise à jour.
La mise à jour est disponible via le système LiveUpdate.
Some improvements and bug fixes have been made in the operation of the Strategy Tester. Time spent on intermediate preparatory operations and network latency has been significantly reduced. Testing and optimization are now faster in all operating modes: working with local testing agents, with a farm of agents in the local network and using MQL5 Cloud Network.
Fixed errors reported in crash logs.
Updated documentation.
The update is available through the LiveUpdate system.
Une nouvelle mise à jour de la plateforme MetaTrader 5 a été publiée. Elle contient les changements suivants :
Vous devez donc toujours changer le nombre de graphiques et la liste des symboles, l'ensemble des programmes lancés et leurs paramètres d'entrée, les paramètres du terminal et les abonnements aux Signaux.
Lors de la migration, toutes les données sont enregistrées dans le journal du terminal client.
MetaTrader 5 Android build 1052
La nouvelle version de MetaTrader 5 pour Android est maintenant disponible dans Google Play. Elle contient des corrections et une stabilité amliorée. Les objets d'analyse et le système de messagerie seront bientôt ajoutés.
L'application peut être téléchargée ici : https://download.mql5.com/cdn/mobile/mt5/android?hl=en&utm_source=www.metatrader5.com
La mise à jour est disponible via le système LiveUpdate.
Les agents du testeur ne fonctionne maintenant que sur les systèmes 64 bits. Cette décision est conduite par le besoin de suivre le développement de l'industrie IT. Basculer vers de nouvelles technologies augmente les performances de calcul et autorise de futurs développements du MQL5 Cloud Network.
Changements dans les composants de la plateforme :
int WebRequest (string method, string url,string headers,int timeout, const char &data[], int data_size,char &result[], string &result_headers)Cette fonction vous permet de former explicitement les contenus des en-têtes des requêtes HTTP fournissant une mécanisme plus flexible pour intéragir avec différents services Web.
Correction d'erreurs reportées dans les journaux de crash.
Mise à jour de la documentation.
La mise à jour sera disponible via le système LiveUpdate.
int CopyTicks( const string symbol_name, // Symbol name MqlTick &ticks_array[], // the array where ticks will be placed uint flags=COPY_TICKS_ALL, // the flag that defines the type of received ticks ulong from=0, // the date starting from which ticks will be received, specified in milliseconds since 01.01.1970 uint count=0 // the number of latest ticks that should be received );Ticks can be requested by the date if the 'from' value is specified, or based on their number using the 'count' value. If none of the parameters are specified, all available ticks are received, but not more than 2000. Ticks can also be requested based on their type using the 'flags' parameter. Available values:
Fixed errors reported in crash logs.
Documentation has been updated.
The update is available through the LiveUpdate system.