Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 626

 
Alexey Viktorov:


Come sei intelligente e così succinto. Grazie.

 
Karputov Vladimir:
Questo è un controllo per restituire la funzione PositionGetDouble. Se fallisce, restituisce 0 - cioè è un errore.

E io uso la seconda forma in Five, mi sembra più affidabile.

 
Alexey Volchanskiy:

E io uso la seconda forma nei cinque, penso che sia più affidabile.

E in un ciclo.

do while(!PositiobGetDouble(POSITION_VOLUME, double_var);
Sono sicuro che non sfuggirà...
 

Stupido... :-)

Come nell'esperto via iCustom (), fare riferimento ai valori delle variabili

double _Volume

и

int High_Low

di questo indicatore:

#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:

Stupido... :-)

Come nell'esperto via iCustom (), fare riferimento ai valori delle variabili

и

di questo indicatore:

Non potete farlo direttamente. Dovreste scrivere il valore della variabile nel buffer dell'indicatore e prenderlo da lì attraverso iCustom
 
Andrey Barinov:
Non puoi farlo direttamente. Dovete scrivere il valore della variabile nel buffer dell'indicatore e prenderlo da lì attraverso iCustom

Questo è comprensibile... Forse un breve esempio per una variabile e basta... Anche se sembra che io stesso troverò qualcosa nella guida...

Grazie. Come scriverli nel buffer, voglio dire che tipo di buffer organizzare.... Non hai bisogno di linee in questo indicatore...

 
Come posso modificare il numero magico di un ordine a mercato in MQL4?
 
Alexey Volchanskiy:

C'è anche una conversione esplicita del tipo:

Grazie! Lo prenderemo in considerazione.
 
new-rena:
Come posso modificare il numero magico di un ordine a mercato in MQL4?
Assolutamente no, lo stesso vale per i commenti. Riaprire solo con un numero magico diverso
 
mila.com:

Salve.

Per favore, consigliate come risolvere il seguente problema.

Un EA sta cercando di aprire una posizione e il server restituisce un requote.

Dato che non c'è un codice EA, dobbiamo scoprire dall'esterno che c'è stato un requote e aprire la stessa posizione ad ogni costo.

Analizza solo i file di log come \logs\20160922.log. Ma non possiamo ottenerli da MQL4/5, solo la cartella \MQL5\Files è disponibile per la lettura/scrittura.

Quindi, abbiamo bisogno di scrivere uno script esterno che legga il log, lo analizzi e informi MQL4/5 se una posizione deve essere aperta.

Oppure copia semplicemente il log una volta al secondo nella cartella Files, e da lì può essere letto e analizzato con strumenti MQL