Caratteristiche del linguaggio mql4, sottigliezze e tecniche - pagina 3

 

Quando si lancia uno script, un indicatore, un Expert Advisor, i nomi delle variabili sono visualizzati nella scheda Input Parameters

extern int Период=10;


Se la direttiva #property strict è presente, il commento viene visualizzato al posto del nome della variabile

#property strict
extern int Период=10;  // Период отображения информации

Questo è più informativo, IMHO

 
LRA:

Quando si lancia uno script, un indicatore, un Expert Advisor, i nomi delle variabili sono visualizzati nella scheda Input Parameters


Se la direttiva #property strict è presente, il commento viene visualizzato al posto del nome della variabile

IMHO, è più informativo.

Beh, allora soprattutto per quelli che non lo sapevano. Vedi lo screenshot, lì è tutto chiaro.


 

C'è un inconveniente in MT4: quando il depo è maggiore di 999999, manca una cifra nel grafico del rapporto dettagliato.

Se è superiore a 999999, mancano due cifre. Solo le prime 5 cifre sono sempre visualizzate.


 
LRA:

C'è un problema in MT4: quando il depo è maggiore di 999999, manca una cifra nel grafico del rapporto dettagliato.

Se è superiore a 999999, mancano due cifre. Solo le prime 5 cifre sono sempre visualizzate.


Non dimenticare di dire che hai impostato la scala dei caratteri al 125% nelle impostazioni di sistema
 
void OnStart()
{
  Alert("Ордеров = ",OrdersHistoryTotal());
}   

Sapevate che potete impostare la lunghezza della storia? Questo influisce sul tempo di ricerca!

Se si imposta oggi - ci sarà meno di tutto! A mezzanotte la storia sarà vuota? In modo ottimale - gli ultimi 3 giorni.

Agli sviluppatori: come si può impostare programmaticamente la profondità della storia?

 
A differenza di MQL5, in MQL4 gli array statici possono cambiare dimensione.
 
fxsaber:
A differenza di MQL5, in MQL4 gli array statici possono cambiare le loro dimensioni.

C'è un errore nell'aiuto?

//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq4 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL4: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
} 


//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq5 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL5: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
}
 
LRA:

C'è un errore nel certificato?

Non c'è nessun errore se si considera che non ci sono array statici in MQL4.
 
A proposito di statica, c'è un punto sottile in entrambe le lingue

Forum sul trading, sistemi di trading automatico e strategie di trading di prova

mt4 build 1066

James Cater, 2017.04.28 16:53

Ho trovato un errore di regressione con l'ordine di inizializzazione delle variabili statiche nelle funzioni

Questo funzionava nella build 1065. L'ho segnalato al service desk

#property strict
#property indicator_chart_window

int TestBrokenStatic()
{
   static int stInt = 101;
   
   stInt++;
   return stInt;
}

int OnInit()
{
   static int result = TestBrokenStatic();
   
   Print("TestStatic Expected result 102   - Actual result=", result);
   result = TestBrokenStatic();
   Print("TestStatic Expected result 103   - Actual result=", result);
   
   return INIT_SUCCEEDED;
}

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[])
{
   return rates_total;
}


2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic Risultato atteso 103 - Risultato effettivo=102

2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic Risultato atteso 102 - Risultato effettivo=1


 
fxsaber:
C'è un momento sottile in entrambe le lingue

Che punto sottile... L'hai scritto in SD?