[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 565

 
TEXX:

Bon après-midi.

La modification de la commande fonctionne partiellement, aidez-moi à comprendre quel est le problème.

Code et journal joints. J'ai écrit dans le journal ce qui fonctionne et ce qui ne fonctionne pas......


Probablement à cause de ça.

        if (OrderOpenPrice()==!LastSellPrice()) sell_sl = 0;
        if (OrderOpenPrice()==LastSellPrice()) sell_sl = last_sell_sl;

La deuxième condition ne fonctionnera presque jamais

 
Vinin:


Probablement à cause de ça.

La deuxième condition ne sera presque jamais remplie


Comment faites-vous pour que ça marche ?
 
TEXX:

mais comment faire pour que ça marche ?

Cherchez le sujet avec une recherche - quelque chose comme comment comparer deux nombres de type double...
 
Roman.:

Cherchez le sujet dans le moteur de recherche - quelque chose comme comment comparer deux nombres de type double...


La normalisation du prix d'ouverture a aidé mais la condition sur le stop.... nul et non nul ne fonctionne pas.

MERCI à tous ! !! Je l'ai résolu, mes mains sont juste mauvaises, j'ai mal écrit != et c'est la raison de tous les problèmes.

 

Pouvez-vous me dire comment trouver le profit total de tous les ordres ouverts ?

OPS : Désolé, maladie française - non universitaire...

CompteBénéfice()

 

Messieurs de MQL, pourriez-vous me dire s'il est techniquement possible de faire ce qui suit ?

- Nous prenons 100 (ou n'importe quel autre nombre de) morceaux de l'histoire des citations du passé - nous les choisissons selon un principe connu ;

- Modélisez une position d'achat ouverte sur ces 100 pièces et énumérez les Take Profit et Stop Loss de façon à ce que le profit total soit normal (c'est-à-dire que nous faisons un ajustement sur 100 pièces d'histoire séparées de façon à ce qu'un seul ordre fonctionne sur chaque pièce, donc nous avons 100 ordres au total), puis faites de même pour la position de vente, avec une énumération de Take et Stop qui maximise le profit ;

- nous ouvrons une transaction réelle - achat ou vente, avec un take et un stop, sélectionnés sur l'historique.

Et tout cela dans le cadre du conseiller expert.

L'astuce consiste à ne pas se baser sur un seul élément historique continu, mais sur un ensemble d'éléments distincts, et nous le faisons chaque fois après avoir fermé une position avant d'en ouvrir une nouvelle. J'ai vraiment réfléchi à la manière de le faire logiquement, mais je ne sais pas comment le faire techniquement en utilisant MQL.

 
alexeymosc:

Messieurs de MQL, pourriez-vous me dire s'il est techniquement possible de faire ce qui suit ?

- Nous prenons 100 (ou n'importe quel autre nombre de) morceaux de l'histoire des citations du passé - nous les choisissons selon un principe connu ;

- Modélisez une position d'achat ouverte sur ces 100 pièces et énumérez les Take Profit et Stop Loss de façon à ce que le profit total soit normal (c'est-à-dire que nous faisons un ajustement sur 100 pièces d'histoire séparées de façon à ce qu'un seul ordre fonctionne sur chaque pièce, donc nous avons 100 ordres au total), puis faites de même pour la position de vente, avec une énumération de Take et Stop qui maximise le profit ;

- nous ouvrons une transaction réelle - achat ou vente, avec un take et un stop, sélectionnés sur l'historique.

Et tout cela dans le cadre du conseiller expert.

L'astuce consiste à ne pas se baser sur un seul élément historique continu, mais sur un ensemble d'éléments distincts, et nous le faisons chaque fois après avoir fermé une position avant d'en ouvrir une nouvelle. J'ai vraiment réfléchi à la manière de le faire logiquement, mais je ne sais pas comment le faire techniquement en utilisant MQL.

Sur les fractures en zigzag. Le fait est que les fractures alternent une à une, c'est-à-dire qu'elles se déplacent vers le haut, vers le bas, vers le haut, etc.
 
L'EA a besoin d'un bip lorsque tous les ordres sont fermés, s'il vous plaît aider à corriger celui-ci ou donner une autre version fonctionnelle.

Merci.

//-----
  static bool First = true;
  static int PreOrdersTotal = 0;
  int NowOrdersTotal = CountTrades();
  if(First)
  {
    PreOrdersTotal = NowOrdersTotal;
    First = false;
    return(0);
  }
  if(UseSound == true && NowOrdersTotal < PreOrdersTotal) {PlaySound(CloseSound);}
  PreOrdersTotal = NowOrdersTotal;
//-----

 
rustein:
L'EA a besoin d'un bip lorsque tous les ordres sont fermés, s'il vous plaît aider à corriger celui-ci ou donnez-moi une autre version qui fonctionne.

Merci.


Comment vous aider si

- ne savent pas ce que la fonction CountTrades() renvoie ;

- nous ne savons pas ce que contient la variable CloseSound ;

- on ne sait pas s'il existe un fichier dont le nom est (théoriquement) contenu dans CloseSound.

 
rustein:
L'EA a besoin d'un bip lorsque tous les ordres sont fermés, s'il vous plaît aider à corriger celui-ci ou donner une autre version fonctionnelle.

Merci.


if (OrdersTotal() == 0) {
  if (UseSound)  {
     PlaySound(CloseSound);
   }
   UseSound = false;
} else {
   UseSound = true;
}