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...

[Supprimé]  
Comment modifier le numéro magique d'un ordre au marché dans MQL4 ?
[Supprimé]  
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.