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

 
sergeev:
Qu'est-ce qui ne fonctionne pas exactement ?


le poste ne s'ouvre pas.
 
IgorM:

Essayez de cette façon :


Soit je ne comprends pas quelque chose, soit vous avez mal compris le problème.

il y a un prix Close[2] de 1.34529 et un prix Open[1] de 1.34530

J'ai une condition pour ouvrir la position.

Close[2] >= Open[1]

Comme 10 - 20 pips (en 5 chiffres) ne jouent pas un grand rôle, je dois les intégrer dans le programme,

Si le prix de clôture est de 1.34529 et le prix d'ouverture de 1.34530, la position peut encore être ouverte.

 
kilnart:

le poste ne s'ouvre pas.

? ??

alors qu'est-ce que la condition de prix a à voir avec ça ?

Regardez le code suivant. Il y a une autre erreur.

 
Le prix qui remplit la condition passe sur le graphique, et la position est ouverte.
 
Je vais revérifier le code et je vous le ferai savoir.
 
kilnart:


Soit je ne comprends pas, soit vous avez mal compris la tâche.

......

10 - 20 ppts (en 5 chiffres) ne joue pas un grand rôle, il faut le mettre dans le programme

apparemment, vous avez d'abord écrit votre message précédent, puis vous vous êtes demandé ce que vous vouliez entendre en réponse.....

vraiment, 10-20pts en 5 chiffres n'a pas beaucoup d'importance, j'ai montré comment comparer correctement des variables comme le double, je soupçonne que votre problème n'est pas de faire la bonne condition. Essayez d'abord de formuler une question claire et sans ambiguïté pour obtenir une réponse sans ambiguïté.

 
IgorM:

apparemment, vous avez d'abord écrit votre message précédent, puis vous vous êtes demandé ce que vous vouliez entendre en réponse.....

vraiment, 10-20 pp en 5 chiffres n'est pas un gros problème, j'ai montré comment comparer correctement les variables de type double, je soupçonne que votre problème n'est pas de faire la bonne condition. Essayez d'abord de formuler une question claire et sans ambiguïté pour obtenir une réponse sans ambiguïté.


Sauf que, selon moi, il est faux de comparer des doubles comme ça. Par exemple, quatre chiffres, les prix 1.00014 et 1.00016 sont équivalents à 1.0001 et 1.0002, mais 1.00016 à 1.00014 < Point
 
220Volt: Sauf que, imho, c 'est mal de comparer le doble comme ça. Par exemple, quatre chiffres, prix 1.00014 et 1.00016, équivalent à 1.0001 et 1.0002, mais 1.00016 - 1.00014 < Point

Vous mélangez la comparaison de doubles et l'arrondi, vous avez besoin d'un énoncé clair de la question : soit arrondir un chiffre à 5 en un chiffre à 4 et ensuite faire l'analyse dans le chiffre à 4, soit comparer correctement deux doubles.

Si vous comparez deux doubles, la partie du code que j'ai citée fonctionnera correctement pour les chiffres 4 et 5 :

switch(Digits){
   case 5: if(1.00014-1.00016>=10*Point); условие= false, -0.00002 меньше 0.00001*10   // цена больше на 10 пп в 5-ти знаке
   case 4: if(1.0001-1.0002>=Point); условие= false, -0.0001 меньше 0.0001          // цена больше на 1 пп в 4-х знаке
}

consultez le site https://www.mql5.com/ru/articles/1561 et https://www.mql5.com/ru/forum/101433

SZZ : J'ai fait une erreur dans mon code : le cas devrait être fermé par break, c'est-à-dire comme ceci :

switch(Digits){
   case 5: if(Close[2]-Open[1]>=10*Point);// цена больше на 10 пп в 5-ти знаке
           break;
   case 4: if(Close[2]-Open[1]>=Point);// цена больше на 1 пп в 4-х знаке
           break;
}
 
IgorM:

Vous mélangez la comparaison et l'arrondissement des doubles, vous avez besoin d'un énoncé clair de la question : soit arrondir 5 chiffres à 4 chiffres et ensuite faire l'analyse en 4 chiffres , soit comparer correctement deux doubles.

Si vous comparez deux doubles, la partie du code que j'ai citée fonctionnera correctement pour les chiffres 4 et 5 :

consultez le site https://www.mql5.com/ru/articles/1561 et https://www.mql5.com/ru/forum/101433

ZS : J'ai fait une erreur dans mon code : le cas devrait être fermé avec break, c'est-à-dire comme ceci :


Bien que vous ayez probablement raison, cela n'a probablement pas d'importance pour l'auteur. Je compte chaque pépin, donc je regarde ces situations de mon propre point de vue.
 

C'est tout. Je suis tout chamboulé et ma tête ne fonctionne plus.

voici le code

       double Low1=Low[iLowest(NULL,0,MODE_LOW,3,0)],
              Low2=Low[iLowest(NULL,0,MODE_LOW,20,0)];
         
         if(Low1<Low2 && Open[2]>Close[2])    
          {
            if(Open[1]<=Close[2] && Open[2]<Close[1])
             {
                 double sl=Low[iLowest(NULL,0,MODE_LOW,3,0)],
                        tp=Ask+(Open[2]-Low[2]);
                 OrderSend(Symbol(),OP_BUY,0.1,Ask,3,sl,tp);
                 return;
             }
          }

Je veux dessiner ce qui suit. je dois trouver le point minimum des 3 dernières bougies. comparez-le avec le prix minimum des 20 dernières bougies. si les 3 dernières bougies sont inférieures et que la bougie est noire ( Open[2]>Close[2] ) alors regardez plus loin.

Je dois trouver une prise de contrôle baissière ( Open[1]<=Close[2] && Open[2]<Close[1] ).

Et ouvrez une position d'achat.

Il semble être correct, mais je sens que quelque chose ne va pas.

Je vous serai très reconnaissant si vous pouvez m'aider.