Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 170
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 y a beaucoup d'exemples dans CodeBase, recherchez Expert Advisors on pending orders et voyez comment le code est écrit.
J'ai cherché dans leCodeBase pendant environ une heure et je n'ai rien trouvé de compréhensible. C'est trop compliqué pour moi. Les codes sont trop volumineux et incompréhensibles pour moi, alors que tout ce dont j'ai besoin est un couple de codes de 4-6 lignes. Merci pour la réponse, mais elle ne convient pas.
J'ai cherché un exemple dansun ordre en attente lorsqu'il a atteint une valeur quelconque (c'est-à-dire si le prix est de 0,7777, alors ouvrir un ordre en attente)
2) Fermez l'ordre (ordre au marché) lorsqu'il a atteint une valeur quelconque (c'est-à-dire si le prix est de 0,6666, alors fermez l'ordre).
Obtenir une réponse à 4-6 lignes de code ?
Faites-vous partie de ces traders qui écrivent : "Qu'y a-t-il à faire ? Il suffit de quelques lignes... Qu'est-ce que c'est, cent livres ?"
Soyons clairs :
Vous devez d'abord déterminer que le prix a atteint 0,7777. A-t-il atteint le sommet ? Le fond ? Est-il possible que le tick précédent soit, par exemple, 0.7776 et que le tick actuel soit devenu 0.7778 ? Dans ce cas, le prix ne sera pas égal à la valeur de 0,7777. Vous devez donc vérifier que la valeur passée et la valeur actuelle correspondent à la valeur requise. En conséquence, vous devez stocker la valeur du tick précédent et connaître la valeur du tick actuel. Cela signifie que vous avez besoin d'une fonction pour obtenir la valeur du tick et la stocker, afin d'avoir quelque chose à quoi la comparer plus tard - trois prix : le tick précédent, le tick actuel et le prix croisé lui-même.
Plus loin. Nous devons savoir dans quelle direction le prix va franchir la valeur nécessaire et, en conséquence, nous devons définir le type d'ordre en attente nécessaire au prix nécessaire.
Pour le définir, nous devons calculer le prix défini à partir du prix actuel, comparer la distance obtenue de la définition de l'ordre en attente avec la valeur du StopLevel et si la distance obtenue est inférieure à cette valeur, alors : a) Corriger la distance de définition de l'ordre afin de ne pas atteindre l'erreur 130 et définir l'ordre ou b) attendre jusqu'à ce que la distance de définition dépasse le StopLevel (avec le spread flottant que nous devrions également recevoir à chaque tick) et voir si le prix franchit déjà le niveau prédéfini et s'il est sur la valeur correcte - c'est-à-dire si le niveau d'arrêt est défini, nous pouvons définir l'ordre.е., il s'est éloigné de ce niveau pour passer une commande ou le train est déjà parti.
Vous devez également calculer les valeurs stop et take d'un ordre en attente qui ne doivent pas être inférieures à StopLevel (corrigez-les si nécessaire).
Si tous les contrôles ont été passés, un ordre doit être envoyé au serveur pour définir un ordre en attente, obtenir une réponse - si la réponse contient une erreur, la traiter (une autre fonction est nécessaire)...
Ceci est pour les ordres en cours.
Le processus est à peu près le même pour la fermeture d'une position - identifier le croisement, envoyer un ordre de transaction et gérer la réponse du serveur en cas d'erreur.
Si vous arrivez à tenir 4 à 6 lignes pour tout cela, alors ...vous obtiendrez une médaille dans l'entrepôt... ;)
Je pense qu'après cette explication, il y a un programmeur novice de moins )))).
Les gars, ce que le (.e) dans valuta est s'il vous plaît expliquer
vous avez besoin d'une section de code - un stop suiveur multidevises fiable qui commence par un seuil de rentabilité défini et un retrait défini par rapport au prix.
Regardez celui-là, http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=62
Vous voulez répondre à cette question :
1) ouvrir un ordre en attente lorsqu'il a atteint une valeur quelconque (c'est-à-dire si le prix est de 0,7777, alors ouvrir un ordre en attente)
2) Fermez l'ordre (ordre au marché) lorsqu'il a atteint une valeur quelconque (c'est-à-dire si le prix est de 0,6666, alors fermez l'ordre).
Obtenir une réponse à 4-6 lignes de code ?
Faites-vous partie de ces traders qui écrivent : "Qu'y a-t-il à faire ? Il suffit de quelques lignes... Qu'est-ce que c'est, cent livres ?"
Soyons clairs :
Vous devez d'abord déterminer que le prix a atteint 0,7777. A-t-il atteint le sommet ? Le fond ? Est-il possible que le tick précédent soit, par exemple, 0.7776 et que le tick actuel soit 0.7778 ? Dans ce cas, le prix ne sera pas égal à la valeur de 0,7777. Vous devez donc vérifier que la valeur passée et la valeur actuelle correspondent à la valeur requise. En conséquence, vous devez stocker la valeur du tick précédent et connaître la valeur du tick actuel. Cela signifie que vous avez besoin d'une fonction pour obtenir la valeur du tick et la stocker, afin d'avoir quelque chose à quoi la comparer plus tard - trois prix : le tick précédent, le tick actuel et le prix croisé lui-même.
Plus loin. Nous devons savoir dans quelle direction le prix va franchir la valeur nécessaire et, en conséquence, nous devons définir le type d'ordre en attente nécessaire au prix nécessaire.
Pour le définir, nous devons calculer le prix défini à partir du prix actuel, comparer la distance obtenue de la définition de l'ordre en attente avec la valeur du StopLevel et si la distance obtenue est inférieure à cette valeur, alors : a) Corriger la distance de définition de l'ordre afin de ne pas atteindre l'erreur 130 et définir l'ordre ou b) attendre jusqu'à ce que la distance de définition dépasse le StopLevel (avec le spread flottant que nous devrions également recevoir à chaque tick) et voir si le prix traverse déjà le niveau prédéfini et s'il est sur la valeur correcte - c'est-à-dire si le niveau d'arrêt est défini, nous pouvons définir l'ordre.е., il s'est éloigné de ce niveau pour passer une commande ou le train est déjà parti.
Vous devez également calculer les valeurs Stop et Take pour l'ordre en attente qui, à leur tour, ne doivent pas être inférieures au niveau Stop (corrigez-les, si nécessaire).
Si tous les contrôles ont été passés, un ordre doit être envoyé au serveur pour définir un ordre en attente, obtenir une réponse - si la réponse contient une erreur, la traiter (une autre fonction est nécessaire)...
Ceci est pour les ordres en cours.
Le processus est à peu près le même pour la clôture d'une position : identifier le croisement, envoyer un ordre de transaction et gérer la réponse du serveur en cas d'erreur.
Si vous arrivez à tenir 4 à 6 lignes pour tout cela, alors ...vous obtiendrez une médaille dans l'entrepôt... ;)
"Vous êtes le genre de client qui dit : "Qu'y a-t-il à faire ? C'est juste quelques lignes... Qu'est-ce que c'est, cent livres ?" Non, je ne suis pas une de ces personnes et je ne comprends pas pourquoi vous pensez que je suis un client. Je veux apprendre ce programme parce que j'ai des idées sur l'Expert Advisor, les problèmes dans sa mise en œuvre sont seulement techniques (et je ne conteste pas que les problèmes sont très grands), mais je n'essaie pas de dire quelque chose comme "faites-moi tout le logiciel et qu'il ne fonctionne qu'avec le profit. Au contraire, j'ai commencé par les bases et je veux écrire mon premier conseiller expert. J'ai également écrit que je voulais un exemple très simple, sans tenir compte de tous les détails (même si je comprends qu'ils sont très importants), mais il faut bien commencer quelque part. Je savais qu'il serait douloureux pour un professionnel de regarder ce que je demande, mais je n'ai pas pu m'en empêcher, tant que c'est tout ce que je sais. Je pensais pouvoir écrire un tel code à l'aide de l'opérateur if else et de la fonction OrderSend (OrderClose) et d'autres choses, mais je ne peux pas le faire. Vous avez écrit beaucoup de termes complexes et m'avez ainsi dit que je suis incapable de faire quoi que ce soit et que je suis un idiot en programmation, mais je le sais quand même. J'espère que vous ne pensez pas que je suis un homme arrogant et que vous comprenez que je veux simplement continuer à apprendre. Mais vous avez aussi raison, j'espère qu'un compromis a été trouvé.
Personne ne vous a traité de "pigeon", ce n'est pas vrai. Mais 4-6 lignes de code provoquent aussi, vous savez, la perplexité - parce que si une personne apprend quelque chose, elle doit déjà être en train d'essayer quelque chose, elle a essayé d'écrire quelque chose, et évidemment, elle voit déjà qu'en 4-6 lignes, ça ne va pas.
Montrez-nous ce que vous avez essayé de faire - essayons de comprendre.
Je peux proposer une version alternative, simplifiée - ne pas chercher le franchissement d'un niveau de prix par les ticks, mais le chercher par la MA(1) - alors la MA de la barre 1 et la MA de la barre 0 serviront d'indicateur du franchissement de niveau nécessaire.
Les gars, ce que le (.e) dans valuta est s'il vous plaît expliquer