Questions des débutants MQL5 MT5 MetaTrader 5 - page 626

 
Alexey Viktorov:


Comme c'est intelligent de votre part, et si succinct. Merci.

 
Karputov Vladimir:
Il s'agit d'un contrôle pour retourner la fonction PositionGetDouble. Si elle échoue, elle renvoie 0 - c'est-à-dire qu'il s'agit d'une erreur.

Et j'utilise la seconde forme dans Five, elle me semble plus fiable.

 
Alexey Volchanskiy:

Et j'utilise la deuxième forme dans les cinq, je pense que c'est plus fiable.

Et en boucle.

do while(!PositiobGetDouble(POSITION_VOLUME, double_var);
Je suis sûr que ça ne passera pas...
 

Stupide... :-)

Comment dans l'expert via iCustom (), se référer aux valeurs des variables

double _Volume

и

int High_Low

de cet indicateur :

#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {  
    long  Vol0 = iVolume(NULL,0,0);
    long  Vol1 = iVolume(NULL,0,1);
    long  Vol2 = iVolume(NULL,0,2);
    long  Vol3 = iVolume(NULL,0,3);
    long  Vol4 = iVolume(NULL,0,4);
    long  Vol5 = iVolume(NULL,0,5);
    long  Vol6 = iVolume(NULL,0,6);
    long  Vol7 = iVolume(NULL,0,7);
    long  Vol8 = iVolume(NULL,0,8);
    long  Vol9 = iVolume(NULL,0,9);
    long  Vol10= iVolume(NULL,0,10);

    double high1 = iHigh(NULL, 0, 1);
    double low1 =  iLow (NULL, 0, 1);    
    double high2 = iHigh(NULL, 0, 2);    
    double low2 =  iLow (NULL, 0, 2);
    double high3 = iHigh(NULL, 0, 3);    
    double low3 =  iLow (NULL, 0, 3);
    double high4 = iHigh(NULL, 0, 4);
    double low4 =  iLow (NULL, 0, 4);    
    double high5 = iHigh(NULL, 0, 5);    
    double low5 =  iLow (NULL, 0, 5);
    double high6 = iHigh(NULL, 0, 6);    
    double low6 =  iLow (NULL, 0, 6);
    double high7 = iHigh(NULL, 0, 7);
    double low7 =  iLow (NULL, 0, 7);    
    double high8 = iHigh(NULL, 0, 8);    
    double low8 =  iLow (NULL, 0, 8);
    double high9 = iHigh(NULL, 0, 9);    
    double low9 =  iLow (NULL, 0, 9);
    double high10 =iHigh(NULL, 0, 10);
    double low10 = iLow (NULL, 0, 10);    
    
    double _Volume = NormalizeDouble((Vol1+Vol2+Vol3+Vol4+Vol5+Vol6+Vol7+
                     Vol8+Vol9+Vol10)/10, _Digits);
    int High_Low = (int)((MathAbs(high1-low1)+MathAbs(high2-low2)+MathAbs(high3-low3)+
              MathAbs(high4-low4)+MathAbs(high5-low5)+MathAbs(high6-low6)+
              MathAbs(high7-low7)+MathAbs(high8-low8)+MathAbs(high9-low9)+
              MathAbs(high10-low10))/(10*Point));
   
   
   Alert(" Vol0 = ",Vol0,", Voll = ",Vol1,", Vol2 = ",Vol2,", Vol3 = ",Vol3,
     ", Vol4 = ",Vol4, ", Vol5 = ",Vol5, ", Vol6 = ",Vol6);
   Alert (" Vol7 = ",Vol7,", Vol8 = ",Vol8, ", Vol9 = ",Vol9, ", Vol10 = ",Vol10); 
   Alert("Cредний минутный объём за 10 мин. _Volume = ",_Volume);
   
   Alert("Среднее поминутное движение за 10 мин. High_Low = ",High_Low);  
   
  
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Roman Shiredchenko:

Stupide... :-)

Comment dans l'expert via iCustom (), se référer aux valeurs des variables

и

de cet indicateur :

Vous ne pouvez pas le faire directement. Vous devez écrire la valeur de la variable dans le tampon de l'indicateur et la reprendre à partir de là via iCustom.
 
Andrey Barinov:
Vous ne pouvez pas le faire directement. Vous devez écrire la valeur de la variable dans le tampon de l'indicateur et la reprendre à partir de là via iCustom.

C'est compréhensible... Peut-être un court exemple pour une variable et c'est tout... Bien qu'il semble que je vais trouver quelque chose dans l'aide là-bas moi-même...

Merci. Comment les écrire dans le tampon, je veux dire quel type de tampon organiser..... Vous n'avez pas besoin de lignes dans cet indicateur...

 
Comment modifier le numéro magique d'un ordre au marché dans MQL4 ?
 
Alexey Volchanskiy:

Il existe également une conversion de type explicite:

Merci ! Nous allons prendre ça en considération.
 
new-rena:
Comment puis-je modifier le numéro magique d'un ordre de bourse dans MQL4 ?
Absolument pas, idem pour le commentaire. Ne rouvrir qu'avec un numéro magique différent
 
mila.com:

Bonjour.

Veuillez m'indiquer comment résoudre le problème suivant.

Un EA essaie d'ouvrir une position et le serveur renvoie une requote.

Comme il n'y a pas de code EA, nous devons découvrir de l'extérieur qu'il y a eu une requote et ouvrir la même position à tout prix.

Analyser uniquement les fichiers journaux tels que \logs\20160922.log. Mais nous ne pouvons pas les obtenir à partir de MQL4/5, seul le dossier \MQL5\Files est disponible en lecture/écriture.

Nous devons donc écrire un script externe qui lira le journal, l'analysera et informera MQL4/5 si une position doit être ouverte.

Ou il copie simplement le journal une fois par seconde dans le dossier Files, et de là, il peut être lu et analysé à l'aide des outils MQL.