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
Il s'agit de deux terminaux sur un seul ordinateur. À toutes les suggestions de mise à jour faites par le terminal, je réponds "oui".
Le fichier a été transféré à Flash depuis un autre ordinateur sous le format .mql5, ouvert et compilé par différents éditeurs de deux terminaux.
Bref, si j'ai bien compris, je dois mettre à niveau MT...
Si vous effectuez une mise à niveau manuelle, vous devez également transférer le dossier /MQL5, car il contient un grand nombre de bibliothèques standard que vous utilisez.
Comme vous n'avez transféré que les exécutables et votre code source sous forme de fichier mq5, vous avez fait une erreur.
On est passé à Bild 695. Une erreur est apparue lors de la compilation de Object.mqh.
On est passé à Bild 695. Une erreur est apparue lors de la compilation de Object.mqh.
La mise à jour s'est-elle faite automatiquement ou avez-vous simplement déplacé les fichiers ?
Si vous l'avez fait automatiquement, lors du stockage des fichiers dans UserData, copiez le répertoire /MQL5 de la racine du programme vers le répertoire des données (vous pouvez l'ouvrir à partir du menu Fichier).
Qu'est-il arrivé au calendrier économique, existe-t-il ?
Question supplémentaire : sur quelles données s'appuie-t-il et comment peut-il être " branché " sur le CC ?
C'est la condition
if( mn < STP || mn >= STP )
- il est formulé de cette façon pour quelle raison ? En l'état, il fonctionnera pour n'importe quel mn et STP. Pourquoi devons-nous l'introduire ? Et les deux options suivantes - il y a une coupure spécifique de certaines situations.
Mais tout semble logique : un + deux == trois (sans entrer dans le détail des calculs un, deux et trois) dans les trois variantes.
C'est de ça que je parle. Je veux diviser l'espace commun (cas 1) en deux groupes (cas 2 et 3). Logiquement, l'expression un + deux == trois devrait être vraie, mais elle ne l'est pas. Dans la première condition on=148, et dans la seconde 172. Pas de correspondance non plus pour deux et pour trois. Je ne sais pas quel est le problème.
Peut-être le problème réside-t-il dans une condition commune ? Ce code dépend-il de quelque chose d'autre ?
Juste un exemple trivial :
condition (a) : ouvrir si la barre sur H1 monte. TP=SL=100
condition (b) : Ouvrir si la barre sur H1 diminue. TP=SL=100
Condition supplémentaire : nous ne vérifions pas les conditions pour la deuxième fois, si nous avons déjà une position.
Ensuite, si nous activons (a) plus (b), nous ouvrirons chaque fois que le TP/SL est déclenché.
si nous incluons (a), nous ouvrirons dans toutes les premières fois plus ( !!!!) quelques fois de plus où nous n'avons pas ouvert parce que nous avons ouvert avant avec la condition (b).
et d'inclure uniquement la condition b), de manière similaire
Regardez de plus près : c'est exactement la comparaison (un + deux == trois) qui est effectuée, pour chacune des options.
Il s'agit d'une autre question, à savoir pourquoi la valeur d'une personne de la première variante n'est pas égale à la valeur d'une personne de la deuxième et de la troisième variante.
Vous introduisez une condition restrictive dans les deuxième et troisième variantes par rapport à la première variante. Examinez pourquoi, par exemple, dans la deuxième variante, la valeur de un augmente par rapport à la première variante. La partie du code citée jusqu'à présent n'est pas claire.
Au poste précédent.
Dans le troisième cas : un=0, deux=124, trois=124.
Les données ne correspondent pas, mais elles devraient, car les deuxième et troisième cas sont des parties distinctes de la première condition. Je ne comprends pas quel est le problème.
PS : entrée int STP=200 ;
1. Je choisis à la fois l'espace2 (un) et l'espace3 (deux) ; 230 = 148 + 82, c'est-à-dire espace2 (un) = 148 et espace3 (deux)=82.
2. ... Devait rester 148, et est devenu 172.
3. ... Devrait rester 82, et devient 124.
C'est ce dont je parle : la question que vous vous posez est de savoirpourquoi la valeur d'un élément de la première option n'est pas égale à la valeur d'un élément des deuxième et troisième options.
Pour trouver une erreur dans cette hypothèse logique, je suggère de faire très simplement : imprimer chaque cas d'augmentation des "espacesX" dans les trois variantes, comparer les résultats et analyser pour quelle raison les "valeurs des espaces2 et des espaces3" ne sont pas les mêmes.
Addendum. ilunga a déjà laissé entendre que certaines transactions pourraient être perdues lors du passage d'une variante à une autre. Vous avez une fonction/méthode tueuse OpenPosition() intégrée dans le corps de l'opérateur if(). Et il fonctionne à des moments différents selon la condition vérifiée par l'opérateur if().