Discussion de l'article "Livre de recettes MQL5 - Expert Advisor multi-devises et utilisation des commandes en attente dans MQL5"
Le temps.
Les heures ne suffisent pas toujours, les minutes sont également nécessaires. Par exemple, si le marché ouvre et ferme à des heures fractionnées.
Cette fonction soulève des questions : vous devez négocier jusqu'à minuit bien plus souvent que vous n'avez besoin de minutes.
bool IsInTradeTimeRange(int symbol_number) { //--- Si la négociation par fourchette de temps est activée if(TradeInTimeRange[symbol_number]) { //--- Structure de la date et de l'heure MqlDateTime last_date; //--- Obtenir les dernières données de date et d'heure TimeTradeServer(last_date); //--- En dehors de la plage horaire autorisée if(last_date.hour<StartTrade[symbol_number] || last_date.hour>=EndTrade[symbol_number]) return(false); } //--- Dans l'intervalle de temps autorisé return(true); }
Le temps.
Les heures ne suffisent pas toujours, les minutes sont également nécessaires. Par exemple, si le marché ouvre et ferme à des heures fractionnées.
Cette fonction soulève des questions : vous devez négocier jusqu'à minuit bien plus souvent qu'en minutes.
Oui, je suis d'accord. J'essaierai de le visualiser plus tard, dans un nouveau schéma.
Peut-être qu'au lieu d'énumérations, nous devrions créer une ligne où l'utilisateur spécifierait lui-même l'heure. Par exemple :"9: 35". Sinon, la liste des paramètres est complétée par trois paramètres supplémentaires (dans le schéma de l'article) pour spécifier les minutes.
Ce serait formidable s'il existait une possibilité standard pratique de spécifier l'heure. Maintenant que nous avons le temps de la date, nous devons faire du temps. )
En fait, il s'agit d'un code de programme, qui n'a pas sa place dans un article, mais plutôt dans la section "Code Base".
En fait, il s'agit uniquement de code de programme, IMHO cela ne fonctionne pas comme un article, plutôt pour la section Code Base.
En fait, il s'agit uniquement de code de programme, et je pense qu'il ne s'agit pas d'un article, mais plutôt d'un article pour la section Code Base.
De tels articles sont pratiques pour apprendre le langage.
Il est plus facile de lire à la fois le texte et le code, et de regarder les illustrations en même temps, que de parcourir l'article séparément, et de séparer les codes de différents fichiers.
Mais je reconnais qu'il manque une partie descriptive. Concept et points principaux de la mise en œuvre sous forme de texte simple.
De tels articles sont pratiques pour l'apprentissage d'une langue.
Il est plus facile de lire à la fois le texte et le code, et de regarder les illustrations en même temps, que de parcourir l'article séparément, et de séparer les codes de différents fichiers.
Mais je reconnais qu'il manque une partie descriptive. Le concept et les principaux points de la mise en œuvre sous la forme d'un texte clair.
Cette série d'articles est davantage destinée à l'apprentissage séquentiel des langues. Le schéma a été décrit dans l'un des articles précédents et il est probablement inutile de tout décrire à nouveau. Au début de l'article, il y a un lien vers l'article où ce schéma a été examiné en détail. Des fonctions supplémentaires ont été écrites ici et quelques petites modifications ont été apportées. Tout est simple et rien n'est superflu, et chaque ligne du code est commentée. Je pense qu'il est agréable d'avoir un grand nombre de schémas différents prêts à l'emploi que l'on peut simplement prendre et utiliser.
Je n'arrive pas à imaginer ce qui aurait pu être ajouté à l'article. Mais ce n'est pas grave. ))
Pourquoi y a-t-il autant de code pour plusieurs symboles ?
Pour pouvoir tester le système dans le testeur sur plusieurs symboles à la fois.
Ne serait-il pas plus simple de mettre un Expert Advisor sur différents symboles, à mon avis cela serait plus rapide pour exécuter les programmes. A ce propos, cher auteur, pourriez-vous me dire comment convertir ce code pour qu'il ne fonctionne que sur un seul caractère, à l'exception de la façon de mettre dans la variable #define NUMBER_OF_SYMBOLS un ?
Si vous voulez qu'il ne fonctionne que sur un seul caractère, il suffit de supprimer toutes les boucles liées à la recherche de caractères. Dans certaines fonctions, vous devrez alors supprimer le premier paramètre du numéro de séquence des caractères.
De même, les tableaux qui ont été initialisés avec des valeurs de paramètres externes ne seront plus nécessaires. Dans les fonctions où ils étaient utilisés, ils devront être remplacés par des variables de paramètres externes.
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Un nouvel article Livre de recettes MQL5 - Expert Advisor multi-devises et utilisation des commandes en attente dans MQL5 a été publié :
Cette fois, nous allons créer un Expert Advisor multi-devises avec un algorithme de trading basé sur le travail avec les ordres en attente Buy Stop et Sell Stop. Cet article aborde les questions suivantes : négocier dans une plage de temps spécifiée, passer/modifier/supprimer des ordres en attente, vérifier si la dernière position a été fermée au Take profit ou au Stop Loss et contrôler l'historique des transactions pour chaque symbole.
Une fois que les paramètres de la paire de devises EURUSDont été optimisés, les mêmes paramètres doivent être optimisés pour l'AUDUSD. Vous trouverez ci-dessous le résultat pour les deux symboles testés ensemble. Les résultats ont été sélectionnés par le facteur de récupération maximum. Pour le test, la valeur du lot a été fixée à 1pour les deux symboles.
Fig. 3 - résultat du test pour les deux symboles.
Auteur : Anatoli Kazharski