Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 491

 
Nikolay Gaylis:
Bonjour, pourriez-vous me dire comment afficher/supprimer un certain symbole de manière programmatique dans la fenêtre "aperçu du marché" ?

Voir la fonction SymbolSelect.

 

Bonjour, pourriez-vous me dire où il y a une erreur dans ce code ?

 if (TotalMax_1<1)Step_1max=TotalMax_0;                                                  // Если расчетов еще небыло Step_1max=TotalMax_0
 else Step_1max=TotalMax_0-TotalMax_1;                                                   // Если расчеты уже были Step_1max=TotalMax_0-TotalMax_1
 
 for (i_1max=Step_1max;TotalMax_0>TotalMax_1;i_1max--)                                   // Главный цикл для заполнения массива Max_1
  {
   if (Max_0[i_1max]>Min_0[i_1max] && Stop_1max==0)                                      // Если максимум больше минимума и Stop_1max равен 0 нужно произвести расчет Максимального Индекса
    {
     Mmax_1=Max_0[i_1max];                                                               // Задается значение параметру Mmax_1
     MIndex_1max=i_1max;                                                                 // Задается значение параметру MIndex_1max
       
     for (i_1maxH=i_1max;Max_0[i_1maxH]>=Min_0[i_1maxH];i_1maxH--)                       // Цикл для расчета Максимального Индекса
       {
        if (Max_0[i_1maxH]>Mmax_1)                                                       // Если встречается максимум и он выше предыдущего
         {
          Mmax_1=Max_0[i_1maxH];                                                         // ... то меняется значение параметра Mmax_1
          MIndex_1max=i_1maxH;                                                           // ... и параметра MIndex_1max
         }
       }
       
     Stop_1max=1;                                                                        // Задается значение пераметру Stop_1max
    }
                                                                             
   if (i_1max==MIndex_1max)                                                              // Условие для вычисления максимума
    {
     Max_1[i_1max]=Mmax_1;                                                               // Присвоение значения массиву Max_1
     TotalMax_1=ArraySize(Max_1);                                                        // Всего баров в массиве Max_1
     }
        
   else                                                                                  // Если нет
      { 
       Max_1[i_1max]=0;                                                                  // Присвоение 0 значения массиву Max_1
       TotalMax_1=ArraySize(Max_1);                                                      // Всего баров в массиве Max_1
       }

   if (Min_0[i_1max]>Max_0[i_1max]) Stop_1max=0;                                         // Если минимум больше максимума задается значение пераметру Stop_1max
       
  }
 

Bonjour à tous, Je suis confronté au problème suivant :

J'ouvre une transaction sans stoploss et takeprofit :

OrderSend("EURUSD",OP_BUY,0.1,Ask,0,0,0,"",Magic,0,Red);

Je veux fermer cette commande

OrderClose(Magic,OrderOpenPrice(),Ask,0,Red);

Je reçois cette erreur : OrderClose error 131

Si au lieu deOrderOpenPrice() je pointe 0.1 ou OrderLots() il y a une erreur : OrderClose error 138

Quel est le problème ?

 
labvic:

Bonjour à tous, Je suis confronté au problème suivant :

J'ouvre une transaction sans stoploss et takeprofit :

Je veux fermer cette commande

Je reçois cette erreur : OrderClose error 131

Si au lieu deOrderOpenPrice() je pointe 0.1 ou OrderLots() il y a une erreur : OrderClose error 138

Quel est le problème ?

Vous fermez au mauvais prix
 
Artyom Trishkin:
Vous fermez au mauvais prix

Pouvez-vous être plus précis sur ce que cela devrait être ? Merci.

 
labvic:

Pouvez-vous être plus précis sur ce que cela devrait être ? Merci.

Voici l'essentiel.
L'achat s'ouvre sur l'Ask et se ferme sur l'Bid.
La vente s'ouvre à l'offre et se ferme à la demande.
 

Bonjour !

J'ai lu attentivement le tutoriel sur les fichiers d'inclusion, et il n'est dit nulle part qu'un fichier d'inclusion ne peut pas être "inclus" deux fois dans l'EA.

Le premier est "déclenché", le second (avec le même nom) est ignoré.

Ce que je fais - je fais une copie du fichier inclus, j'ajoute une lettre/un chiffre au nom du fichier et dans la ligne EA, et tout fonctionne.

Question : est-ce le langage mql4 ou moi ?

Merci d'avance ! !!

 
Roni Iron:

Bonjour !

J'ai lu attentivement le tutoriel sur les fichiers d'inclusion, et il n'est dit nulle part qu'un fichier d'inclusion ne peut pas être "inclus" deux fois dans l'EA.

Le premier est "déclenché", le second (avec le même nom) est ignoré.

Ce que je fais - je fais une copie du fichier inclus, j'ajoute une lettre/un chiffre au nom du fichier et dans la ligne EA, et tout fonctionne.

Question : est-ce le langage mql4 ou moi ?

Merci d'avance ! !!

Pourquoi inclure la même chose deux fois dans la liste ?

Si le fichier d'inclusion contient la fonction f(), en l'incluant deux fois dans votre code, vous obtiendrez une erreur de compilation concernant la fonction f() déjà déclarée.

 
Artyom Trishkin:

Pourquoi incluriez-vous la même chose deux fois dans votre liste ?

S'il existe une fonction f() dans le fichier d'inclusion, l'inclure deux fois dans votre code entraînera une erreur de compilation concernant une fonction f() déjà déclarée.

Si j'utilise le fichier include non pas comme une fonction définie par l'utilisateur, mais comme une "substitution"/insertion d'un simple fragment de code, par exemple, pour rechercher le dernier ordre par son symbole (ou la présence d'un ordre tout court). Et cette recherche peut être utilisée plusieurs fois dans un programme. Et il peut y avoir beaucoup de ces "opérations classiques".
 
Roni Iron:
Si j'utilise le fichier include non pas comme une fonction personnalisée, mais comme une "substitution"/insertion d'un simple fragment de code, comme la recherche du dernier ordre par son instrument (ou la présence d'un ordre tout court). Et cette recherche peut être utilisée plusieurs fois dans un programme. Et il peut y avoir beaucoup de ces "opérations classiques".

C'est là que tu t'embrouilles. Il peut y avoir de nombreuses fonctions utiles de ce type dans un fichier include. Incluez le fichier une fois et utilisez les fonctions disponibles dans le fichier.