Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 250
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
Ha ha... Voici un mensonge...
Le problème s'est avéré être dans la fonction OpenOrders(). J'ai complètement oublié de supprimer le contrôle de l'ouverture des ordres sur une rupture de bougie (barre) :
if (Volume[0] > 1) return;
Donc, sur quelle TF le Conseiller Expert testait, il ouvrait des ordres sur ces minutes...
Stupide en général, sur un coup dur...
Merci...
if (Volume[0] > 1) return;
N'utilisez pas ce type de vérification pour détecter l'ouverture d'une nouvelle barre, cela ne fonctionnera pas bien dans le compte, seulement dans le testeur. Vous devez vérifier soit par le temps de la barre, soit par le nombre de barres sur le graphique.
Ha ha... Voici un mensonge...
Le problème s'est avéré être dans la fonction OpenOrders(). J'ai complètement oublié de supprimer le contrôle de l'ouverture des ordres sur une rupture de bougie (barre) :
if (Volume[0] > 1) return;
Donc, sur quelle TF le Conseiller Expert testait, il ouvrait des ordres sur ces minutes...
Stupide en général, sur un coup dur...
Merci...
C'est mieux comme ça(https://www.mql5.com/ru/forum/138609/page482):
Mieux encore, passez le nom du TF souhaité dans la fonction
C'est mieux comme ça(https://www.mql5.com/ru/forum/138609/page482):
Vous savez, avec / PrevTime / j'ai essayé quelque chose une fois, mais ça n'a jamais marché. Je suppose que je n'ai pas pu mettre ce code au bon endroit.
Avec / if (Volume[0] > 1) return ; / tout est beaucoup plus simple. Ici, comme je le crois, tout fonctionne pour le TF sélectionné. Je ne sais pas si cela fonctionne sur une démo mais je n'ai pas remarqué d'erreurs, de bugs et autres détails lors de l'ouverture des commandes.
Mais il y a longtemps que je n'ai pas utilisé le contrôle de l'ouverture des ordres sur une nouvelle barre. Nous avons réussi à construire la fonction de contrôle des positions ouvertes. Avec les ordres d'ouverture à un moment donné, nous n'avons pas besoin de contrôle de barre en tant que tel.
Le code est juste vieux. Apparemment, j'ai oublié les limitations et je l'ai inséré sans ménagement et j'ai continué à l'utiliser...
Pouvez-vous me dire comment obtenir la valeur du prix des niveaux de Fibonacci ?
Selon la condition, une fois que le prix a franchi les niveaux de Fibonacci spécifiés, une transaction d'achat ou de vente est ouverte.
Un objet Fibonacci est dessiné par un Expert Advisor en utilisant la fonction de Kim : https://www.mql5.com/ru/forum/107476/page107#606564.
Il est dessiné en douceur, sans aucun problème. Mais alors comment connaître la valeur du prix du niveau spécifié ?
Cette fonction ne semble pas fonctionner :
Est-ce possible ? Ou bien, devons-nous calculer les prix pour chaque niveau séparément à partir de OBJPROP_PRICE1 et OBJPROP_PRICE2 ?
C'est absurde. J'ai passé la moitié de la nuit à me creuser les méninges... Bien sûr, la nuit n'est probablement pas le meilleur moment pour chercher des solutions.
Aidez-nous, bonnes gens, s'il vous plaît !
Pouvez-vous me dire comment obtenir la valeur du prix des niveaux de Fibonacci ?
Selon la condition, une fois que le prix a franchi les niveaux de Fibonacci spécifiés, une transaction d'achat ou de vente est ouverte.
Un objet Fibonacci est dessiné par un Expert Advisor en utilisant la fonction de Kim : https://www.mql5.com/ru/forum/107476/page107#606564.
Il est dessiné en douceur, sans aucun problème. Mais alors comment connaître la valeur du prix du niveau spécifié ?
Cette fonction ne semble pas correspondre :
Est-ce possible ? Ou bien, devons-nous calculer les prix pour chaque niveau séparément à partir de OBJPROP_PRICE1 et OBJPROP_PRICE2 ?
C'est absurde. J'ai passé la moitié de la nuit à me creuser les méninges... Bien sûr, la nuit n'est probablement pas le meilleur moment pour chercher des solutions.
Au secours, braves gens !
Il y avait déjà une question similaire :
Je veux obtenir le prix à un niveau Fibo de 23,6%.
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1) ; Celui-ci donne 0.236, c'est-à-dire pas le prix, mais le niveau.
Pouvez-vous me dire comment obtenir le prix du niveau. Merci !
Et elle a également reçu une réponse :
Juste deux opérations arithmétiques. Multiplication (0,236 multiplié par la différence entre les prix du niveau zéro et du niveau un), puis addition (le résultat de la multiplication est ajouté au prix du niveau zéro).
Une question similaire a déjà été posée :
Je veux obtenir le prix au niveau du Fibo de 23,6 %.
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1) ; Celui-ci donne 0.236, c'est-à-dire pas le prix mais le niveau.
Pouvez-vous me dire comment obtenir le prix du niveau. Merci !
Et la réponse a été donnée aussi :
Juste deux opérations arithmétiques. Multiplication (0,236 multiplié par la différence entre les prix du niveau zéro et du niveau un), puis addition (le résultat de la multiplication est ajouté au prix du niveau zéro).
Merci beaucoup !) C'est ce que je pensais en principe)
"0,236 multiplié par la différence entre les prix du niveau zéro et du premier niveau" - seulement il serait probablement plus correct de dire "entre les prix du niveau zéro et du dernier niveau".