Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 311

 
ALXIMIKS:

Bonjour, reformulez votre question, ce n'est pas très clair.


Merci d'avoir répondu. Dans mon EA :

si( condition)

{deux ordres d'achat stop et de vente stop ouverts}

J'ai besoin de supprimer l'ordre le plus proche lorsque l'un d'eux s'ouvre, car à ce moment-là, il peut y avoir d'autres ordres, plus éloignés du prix actuel.

je peux utiliser un compteur de positions ouvertes + un script pour supprimer un ordre (si je pense correctement, je ne sais pas comment faire, je commence juste) Merci d'avance pour les informations.

 
PGM5:


et il est nécessaire de supprimer l'ordre le plus proche à l'ouverture d'une des positions, car à ce moment-là il peut y avoir d'autres ordres - très éloignés du prix actuel

je peux utiliser un compteur de positions ouvertes + un script pour supprimer un ordre (si je pense correctement, je ne sais pas comment faire, je commence juste) Merci d'avance pour les informations.


Veuillez apprendre la terminologie, c'est un vrai problème pour comprendre ce dont vous avez besoin.

Vous placez deux ordres en attente, si l'un s'ouvre, vous devez supprimer quoi ?

C'est un concept merveilleux, l'ordre le plus proche est dans la direction de la position ouverte ou contre elle, ou dites-vous que l'ordre en attente opposé doit être supprimé ?

Y a-t-il d'autres ordres - d'où proviennent-ils, du trading manuel ? du même Expert Advisor, mais ouverts dans des conditions différentes ?

Avez-vous besoin d'une réponse spécifique ou est-elle aussi vague que la question ? (Passez une minute supplémentaire à formuler votre question - cela aidera tout le monde)

 
ALXIMIKS:

En lisant ces lignes, je me souviens que l'on m'a moi-même reproché d'être analphabète dans mes posts, ou plutôt paresseux, et maintenant je suis encore plus conscient de mes torts.

1) Qu'est-ce qu'une machine à dessiner ? (tel que vous le comprenez)

2) quelle est une fonction élémentaire pour rechercher une divergence MACD ?

3) est-il si difficile d'écrire "divergence" dans un moteur de recherche et de sélectionner le troisième lien dans la catégorie "Code Base" ?

(Si vous espérez que quelqu'un vous donnera un outil prêt à l'emploi et vous expliquera tout - espérez, il y a différentes personnes ici : des croyants et des moins croyants)



J'espère que vous savez ce qu'est la proxémique ! Vous pensez que le forum est pour la métaphysique ?

L'outil de dessin - avec la sortie sur le graphique.

Les fonctions élémentaires sont les fonctions qui peuvent être appliquées en utilisant uniquement le manuel MQL4, sans utiliser d'expressions complexes.

Comment utiliser les tampons de l'indicateur lors de la détection de la divergence MACD :

comment le comprendre ?

for(i=limit-1; i>=0; i--) 
     {
      BufferMacdMain[i]   = iMACD(NULL, 0, macd_fast, macd_slow, macd_signal, PRICE_CLOSE, MODE_MAIN, i);
      BufferMacdSignal[i] = iMACD(NULL, 0, macd_fast, macd_slow, macd_signal, PRICE_CLOSE, MODE_SIGNAL, i);
      BufferMacdOsMA[i]   = BufferMacdMain[i] - BufferMacdSignal[i];
      BufferTop[i]        = EMPTY_VALUE;
      BufferBottom[i]     = EMPTY_VALUE;
      BufferCross[i]      = EMPTY_VALUE;
 
      double main2 = BufferMacdMain[i + 2];
      double main1 = BufferMacdMain[i + 1];
      double sig2  = BufferMacdSignal[i + 2];
      double sig1  = BufferMacdSignal[i + 1];
 
      if((main1>=sig1 && main2<sig2) || 
         (main1<sig1 && main2>=sig2))
 
Burger:


J'espère que tu sais ce qu'est la proxémique ! Tu penses que ce forum est juste pour la métaphysique ?

Dessin - avec sortie sur un graphique.

Les fonctions élémentaires sont des fonctions qui peuvent être appliquées en utilisant uniquement le tutoriel MQL4, sans utiliser d'expressions complexes.

Comment utiliser les tampons des indicateurs lors de la détection de la divergence MACD :

comment le comprendre ?


Tout d'abord, il faut savoir ce qu'est la divergence et combien de valeurs sont nécessaires pour la déterminer. Voici des exemples.
 
Burger:


J'espère que vous savez ce qu'est la proxémique ! Vous pensez que le forum est pour la métaphysique ?

Dessin - avec sortie sur un graphique.

Les fonctions élémentaires sont des fonctions qui peuvent être appliquées en utilisant uniquement le tutoriel MQL4, sans utiliser d'expressions complexes.

Comment utiliser les tampons des indicateurs lors de la détection de la divergence MACD :

comment le comprendre ?


Il ne s'agit pas d'un club de médiums ; si vous voulez des réponses adéquates, posez des questions adéquates. Si vous ne savez pas comment le formuler, allez-y de loin, mais de façon à ce que ce soit clair et que vous n'ayez pas à demander cent fois ce que telle ou telle personne entend par tel ou tel terme.

Les fonctions élémentaires sont des fonctions qui n'utilisent pas d'expressions complexes. Génial.

Le code sans crochets de fermeture de boucle, sans fonctions après une condition - qu'espérez-vous ?

for(i=limit-1; i>=0; i--)      //цикл  расчета нерассчитанных баров, наверное
     {
      BufferMacdMain[i]   = iMACD(NULL, 0, macd_fast, macd_slow, macd_signal, PRICE_CLOSE, MODE_MAIN, i);   // расчет значения основной   линии масд на i баре
      BufferMacdSignal[i] = iMACD(NULL, 0, macd_fast, macd_slow, macd_signal, PRICE_CLOSE, MODE_SIGNAL, i); // расчет значения сигнальной линии масд на i баре
      BufferMacdOsMA[i]   = BufferMacdMain[i] - BufferMacdSignal[i];  // разница основной и сигнальной линии масд на i баре
      BufferTop[i]        = EMPTY_VALUE;                              // буфер заполняется EMPTY_VALUE на i баре (не рисуется на графиках)
      BufferBottom[i]     = EMPTY_VALUE;                              // буфер заполняется EMPTY_VALUE на i баре (не рисуется на графиках)
      BufferCross[i]      = EMPTY_VALUE;                              // буфер заполняется EMPTY_VALUE на i баре (не рисуется на графиках)
 
      double main2 = BufferMacdMain[i + 2];                           // переменная берет значение основной линии масд на i+2 баре с массива BufferMacdMain
      double main1 = BufferMacdMain[i + 1];                           // переменная берет значение основной линии масд на i+1 баре с массива BufferMacdMain
      double sig2  = BufferMacdSignal[i + 2];                         // переменная берет значение сигнальной линии масд на i+2 баре с массива BufferMacdSignal
      double sig1  = BufferMacdSignal[i + 1];                         // переменная берет значение сигнальной линии масд на i+1 баре с массива BufferMacdSignal
 
      if((main1>=sig1 && main2<sig2) ||                      // если main1>=sig1 и main2<sig2 тогда будет выполнятся условие (сигнальная пересекает основную снизу вверх)
         (main1<sig1 && main2>=sig2))                        // если main1<sig и main2>=sig2 тогда будет выполнятся условие  (сигнальная пересекает основную сверху вниз)
 
ALXIMIKS:


Veuillez apprendre la terminologie, car comprendre exactement ce dont vous avez besoin est un véritable défi.

Vous placez deux ordres en attente, si l'un s'ouvre, vous devez supprimer lequel ?

L'ordre le plus proche - un concept merveilleux, l'ordre le plus proche est-il dans la direction de la position ouverte ou contre elle, ou dites-vous que l'ordre en attente opposé doit être supprimé ?

Y a-t-il d'autres ordres - d'où proviennent-ils, du trading manuel ? du même Expert Advisor, mais ouverts dans des conditions différentes ?

Avez-vous besoin d'une réponse spécifique ou est-elle aussi vague que la question ? (Prenez une minute supplémentaire pour formuler votre question - cela profitera à tout le monde).

Oui, vous avez raison : lorsque vous ouvrez un ordre, vous devez supprimer l'ordre opposé en attente, les autres ordres proviennent du même EA, mais sont ouverts dans des conditions différentes.

Merci d'avance.

 
PGM5:

Oui, vous avez raison: lorsque vous ouvrez un ordre, vous devez supprimer l'ordre opposé en attente, les autres ordres proviennent du même EA, mais sont ouverts dans des conditions différentes.

Merci d'avance.


Si j'ai bien compris ce que vous voulez : ce mécanisme est appelé OCO (One Cansel Other - l'un annule l'autre). Il s'agit de la relation entre, par exemple, une prise et un arrêt pour un "ordre de marché" (en termes de MT4) - l'un (prise ou arrêt) est déclenché, l'autre est automatiquement supprimé et l'implémentation complète de ceci n'est pas une tâche si triviale. Pas dans le sens d'un algorithme très complexe, mais dans le sens où il n'est pas élémentaire. Nous devons écrire une comptabilité parallèle des commandes : saisir et suivre le trait par lequel les commandes sont liées. Si je ne me trompe pas, un tel mécanisme n'a pas été implémenté dans MT5 non plus, bien qu'il s'agisse d'une fonctionnalité standard pour les terminaux boursiers et qu'elle fonctionne côté serveur.

Nous pouvons mettre en œuvre le mécanisme du côté du client et "jouer" avec le magicien (ce ne serait "pas très" difficile dans ce cas) : toutes les commandes dont l'une doit rester ont le même magicien. Lors de la vérification : s'il existe un marché, tous les autres sont supprimés. Alors une magie doit être générée, accompagnée. Allouez un tableau séparé pour le magicien : il se peut que plus d'une paire d'ordres doive être prise en charge. Il est impossible de perdre un magik, d'où soit les variables globales, soit l'écriture dans le fichier. Si nous le faisons d'une manière plus globale (en considérant non seulement la connectivité des ordres mais aussi l'appartenance/étranger), le mécanisme de comptabilité devient plus compliqué : le magicien devient composé et en fait nous devons étendre l'algorithme standard de placement des ordres beaucoup plus profondément que nous pouvons le faire en utilisant des fonctions "basiques" (dans votre terminologie) mais toujours tout est côté client, c'est-à-dire que si le terminal est fermé ou la communication est perdue, les ordres ne fonctionneront pas (suivis).



 
VladislavVG:

Si je comprends bien ce que vous voulez : ce mécanisme est appelé OCO (One Cansel Other - l'un annule l'autre). Il s'agit de la relation entre, par exemple, une prise et un arrêt pour un "ordre de marché" (en termes de MT4) - l'un (prise ou arrêt) est déclenché, l'autre est automatiquement supprimé et la mise en œuvre complète n'est pas une tâche si triviale. Pas dans le sens d'un algorithme très complexe, mais dans le sens où il n'est pas élémentaire. Nous devons écrire une comptabilité parallèle des commandes : saisir et tracer le trait par lequel les commandes sont liées. Si je ne me trompe pas, un tel mécanisme n'a pas été implémenté dans MT5 non plus, bien qu'il s'agisse d'une fonctionnalité standard pour les terminaux boursiers et qu'elle fonctionne côté serveur.

Cependant, nous pouvons mettre en œuvre le mécanisme du côté du client et "jouer" avec le magicien (ce ne sera "pas très" difficile dans ce cas) : toutes les commandes dont l'une doit rester ont le même magicien. Lors de la vérification : s'il existe un marché, tous les autres sont supprimés. Alors une magie doit être générée, accompagnée. Allouez un tableau séparé pour le magicien : il se peut que plus d'une paire d'ordres doive être prise en charge. Il est impossible de perdre un magik, d'où soit les variables globales, soit l'écriture dans le fichier. Si nous le faisons d'une manière plus globale (en considérant non seulement la connectivité des ordres mais aussi l'appartenance/étranger), le mécanisme de comptabilité devient plus compliqué : le magicien deviendra composé et en fait nous devons étendre l'algorithme standard de placement des ordres beaucoup plus profondément que nous pouvons le faire en utilisant des fonctions "élémentaires" (dans votre terminologie) mais de toute façon tout est côté client : c'est-à-dire que si le terminal est fermé ou la connexion est perdue, cela ne fonctionnera pas (suivi des ordres).



Désolé, je ne savais pas que c'était si compliqué. Je vais réfléchir à la manière de simplifier le système.

 
PGM5:

Désolé, je n'avais pas réalisé que c'était si compliqué. Je vais réfléchir à la manière de simplifier le système.



Pour aider.
 
r772ra:
Pour aider.


Il s'agit seulement d'une implémentation très "modeste" qui n'est pas extensible : elle supprime tous les ordres de l'EA ou tous les ordres d'un assistant donné pour un symbole donné s'il existe un marché. C'est-à-dire qu'il considère que tous les ordres passés sur l'instrument (avec/sans prise en compte du magicien) sont liés par le ratio CCA.

Ce n'est peut-être pas du tout le cas. Par exemple, sur 20 commandes passées, il peut y avoir 2 ou 3 groupes de commandes liées, les autres n'étant pas du tout liées. Cet EA ne peut pas être étendu à une telle comptabilité - nous devons tout réécrire ou nous pouvons utiliser cet EA en mode manuel : alors la comptabilité des maîtres des groupes d'ordres liés doit être faite manuellement et nous devons "accrocher" autant d'EA qu'il y a de groupes d'ordres dans une transaction.