Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1190
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Fermeture du serveur de démonstration MetaQuotes
MetaQuotes Software Corp.
4 mars 2009
Le 5 avril 2009, le serveur "demo.metaquotes.net" sera fermé. Cependant, le centre d'histoire avec l'histoire minute continuera son travail.
Depuis ce jour, notre entreprise refuse d'utiliser le serveur de démonstration. Aujourd'hui, le nombre de sociétés utilisant la plateforme MetaTrader 4 est si élevé que nous ne voyons pas la nécessité de maintenir notre propre serveur.
C'est une sorte d'antiquité (un autre serveur est mentionné). Cela a été fait plusieurs fois cette année, la dernière fois il y a un mois sur MetaQuotes-Demo un nouveau compte de démonstration a été créé normalement.
De plus, si le serveur est supprimé, pourquoi est-il affiché et envoyé dans l'assistant d'ouverture de compte ? Le blocage ne se produit que lors de la dernière étape.
La première fois que l'indicateur accède aux données historiques, s'il n'y a pas assez de données locales, les données sont chargées et la fonction renvoie une erreur.
Je le comprends parfaitement. S'il s'agissait d'un nombre insuffisant de barres dans l'historique, les deux fonctions renverraient 0. Cependant, l'une d'entre elles renvoie 0, tandis que l'autre renvoie correctement le nombre de barres dans l'historique. De plus, ils sont appelés l'un après l'autre :
Dans le premier cas, les données proviennent des prémembres prêts (symbol et timeframe) de la classe Loader (correctement initialisés), mais dans le second cas, des fonctions Symbol() et Period() (qui renvoient exactement les mêmes valeurs que celles écrites dans symbol et timeframe). Les valeurs des variables sont identiques à celles des fonctions (j'ai vérifié). Mais il n'est pas clair où iBars(symbol, timeframe) s'embrouille avec un symbole et un timeframe absolument corrects. Alors que iBars(Symbol(), Period()) ne fait pas d'erreur. J'ai donc décidé que ce devait être une erreur dans le terminal lui-même ou une compilation incorrecte du code source.
Je le comprends très bien. S'il s'agissait du manque de barres dans l'historique, les deux fonctions renverraient 0. Mais en l'état, une fonction renvoie 0, tandis que l'autre renvoie correctement le nombre de barres dans l'historique. De plus, ils sont appelés l'un après l'autre :
Dans le premier cas, les données proviennent des prémembres prêts (symbol et timeframe) de la classe Loader (correctement initialisés), mais dans le second cas, des fonctions Symbol() et Period() (qui renvoient exactement les mêmes valeurs que celles écrites dans symbol et timeframe). Les valeurs des variables sont identiques à celles des fonctions (j'ai vérifié). Mais il n'est pas clair où iBars(symbol, timeframe) s'embrouille avec un symbole et un timeframe absolument corrects. Alors que iBars(Symbol(), Period()) ne fait pas d'erreur. J'ai donc décidé qu'il y avait une erreur quelque part dans le fonctionnement du terminal.
Maintenant, écris-le comme ça, comme Igor l'a conseillé :
Et n'oubliez pas que c'est un constructeur de classe, et qu'il est appelé avant l'initialisation.Je le comprends très bien. S'il s'agissait du manque de barres dans l'historique, les deux fonctions renverraient 0. Mais en l'état, une fonction renvoie 0, tandis que l'autre renvoie correctement le nombre de barres dans l'historique. Et ils sont appelés les uns après les autres :
Vous inventez une histoire
et ensuite vous décidez de l'écrire comme une réclamation et ensuite la question
Que dit l'aide à l'erreur 4401 ?
Qu'ai-je écrit ?
Comprenez-vous la différence entre un manque de barres et un graphique qui n'est pas prêt ?
vous avez la situation après le redémarrage du terminal avec le démarrage de l'indicateur, et vous demandez les données dans l'initialisation globale du programme MQL (constructeur de classe), qui sera exécuté avant OnInit()
parti, vous écrivez plus vite que vous ne lisez, cherchez dans le forum 4401 - toutes les réponses
Je calcule le lot comme suit
Il est au début de l'EA...et je l'ai mis à la toute fin du code
Lorsque la variable Lots est appelée dans la fonction OnTick, l'EA la retrouve et la recalcule.
Ça ne peut pas être comme ça. La déclaration et l'initialisation sont en cours, et la variableLots est assignée avec une expression.
Cette affectation ne peut être effectuée qu'une seule fois au démarrage. Il est impossible qu'une expression soit automatiquement affectée à chaque accès àLots. Je n'ai pas entendu dire que MQL pouvait faire ça.
Ça ne peut pas être comme ça. Vous avez la déclaration et l'initialisation, et une expression est assignée à la variableLots.
Cette affectation peut être faite une fois au démarrage, il ne faut pas que chaque fois que vous accédez àLots, une expression soit automatiquement affectée. Je n'ai pas entendu dire que MQL pouvait faire ça.
J'ai vérifié, quand l'équilibre change, le lot change aussi.
Wow, je vais vérifier. Je sais que l'on peut initialiser des variables avec des éléments de tableau avec des fonctions, mais je ne savais pas que cela changeait automatiquement, je ne pense pas qu'il y ait une telle chose en C++ non plus, je vérifierai plus tard.
Et n'oubliez pas que c'est un constructeur de classe, et qu'il est appelé avant l'initialisation.
Ceci si l'objet est automatique. Mais je le crée avec le mot clénew (dans OnInit()) et le supprime avec le mot clé delete (dans OnDeinit()). C'est-à-dire que j'utilise un pointeur vers un objet de type Loader. Mais je pense que vous connaissez tous ces détails. C'est pourquoi le chargeur est créé dans OnInit() et il ne peut y avoir d'erreur ici.
Si vous voulez dire échanger les fonctions, j'ai essayé et le résultat est le même. Seuls les messages se succèdent dans un ordre différent :)
Résultat :
2020.06.24 23:10:48.568 Loader::Loader symbole : EURUSD timeframe : PERIOD_H1
2020.06.24 23:10:48.568 Loader::Barres de chargeurs (2) : 140435
2020.06.24 23:10:48.568 Loader::Barres de chargement : 0
2020.06.24 23:10:48.568 Loader::Loader Error : 4401
Tu as inventé une histoire.
et a ensuite décidé d'en faire une plainte.
Aucune réclamation ! Et qu'en est-il si j'ai fourni le code source et même décrit la séquence d'actions pour tester son fonctionnement ? Manifestement, vous m'avez mal compris...
Et vous demandez des données dans l'initialisation globale du programme MQL (constructeur de classe), qui sera exécuté avant OnInit().
parti, tu écris plus vite que tu ne lis,cherche dans le forum 4401 - toutes les réponses
Il ne doit pas être exécuté avantOnInit(), ai-je écrit dans un post précédent. C'est vous qui ne lisez pas attentivement, tant les posts que le code source que j'ai ajouté pour les tests.
Il s'agit d'une certaine antiquité (un autre serveur est mentionné). Plus d'une fois cette année, la dernière fois il y a un mois sur MetaQuotes-Demo un nouveau compte de démonstration a été créé normalement.
De plus, si le serveur est supprimé, pourquoi est-il affiché et envoyé dans l'assistant d'ouverture de compte ? Le blocage ne se produit que lors de la dernière étape.