[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 556
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
в вашем варианте работает, и ЕТО уже большой прорыв ). только мне нужно условие не (Ask<tmp || Ask>tmp), а просто банально (Ask<=tmp). тоесть как только появиться хоть один тик в другую сторону... и именно с циклом).. я знаю, истина где то рядом))). хотя б на реале работало, бог с ним, с тестером то.
C'est la même chose, la même logique. Avant la boucle, nous amenons la variable à un état tel que la condition de la boucle sera vraie. Ensuite, à chaque itération de la boucle, nous rafraîchissons les données à l'aide de RefreshRates() et vérifions si la cotation est fraîche, puis nous effectuons une action et interrompons la boucle de manière forcée. Si nous voulons que le code, qui se trouve en dessous de la boucle, soit exécuté, alors nous le cassons avec la commande break. Si nous ne voulons pas qu'il soit exécuté, nous interrompons la fonction int start() de l'EA avec la commande return(0)
Je comprends la logique de la façon de faire... Je ne comprends pas pourquoi aucune des conceptions ne fonctionne, quelques autres ont sombré dans l'abîme des essais.
я логику понимаю, как ето сделать.. я не понимаю почему не работает ни одна конструкция, еще несколько канули в бездну перебора вариантов
Vous devez fermer les yeux et imaginer ce qui se passe à chaque itération du cycle.
Votre première option :
Le tempo est égal à ascendant. La condition d'égalité étant satisfaite, la boucle entre dans un nombre presque infini d'itérations. Car même si une nouvelle citation arrive, il n'est pas certain qu'elle rompe la condition de vérité du cycle. Deux ou trois ascendances descendantes consécutives et nous pourrions attendre que le cycle soit presque infini...
Lorsque le tutoriel MQL4 est sorti, je l'ai feuilleté et je n'y suis pas retourné - je n'ai pas aimé le fait que l'auteur de ce manuel mette des boucles while() partout. Il a marqué de nombreuses personnes qui ont essayé d'apprendre MQL à partir de ce livre.
Dites-moi que votre conseiller expert a une tâche si terrible que vous ne pouvez pas vous passer de cette boucle ? Vous voyez comme il est facile de faire tourner cette boucle pour un nombre infini d'itérations, en perdant tout simplement le contrôle. Ne pouvez-vous pas vous passer de la boucle for() dans votre cas ? Ou en écrivant une fonction simple séparée... ?
L'essentiel est que ça marche... J'en ai marre d'acheter un couteau qui tombe. J'ai besoin de n'importe quelle solution, même la plus élégante, pour résoudre le problème :
Честно-говоря, когда вышел учебник по MQL4, я его пролистал и больше к нему не возвращался - мне не понравилось, что автор этого сочинения суёт там цикл while() везде где ни попадя. Это наложило отпечаток на многих, кто пытался освоить MQL по данной книге.
Вот скажите, что у Ваего советника, такая жуткая задача, что нельзя обойтись без этого цикла? Ну ведь сами видите, насколько легко запустить этот цикл в бескоенчное число итераций, просто потеряв контроль. Циклом for() в Вашем случае обойтись нельзя? Ну или написанием каой-то отдельной простенькой функции?...
Извините, что вмешиваюсь, но в таком виде цикл и будет бесконечным. tmp нужно сделать static с присвоением ей началного значения заведомо большего Ask. Или =0, если использовать предложенную конструкцию с ИЛИ. А так Ask всегда будет = tmp.
La raison pour laquelle il y a un cycle ici n'est pas claire. Vérifiez à chaque tic-tac de prix et agissez en fonction des réalités.