Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 929

 
C'è un modo per controllare dal codice in quale modalità il test viene eseguito -
tutti i tick, i prezzi aperti o i punti di test?
 
Perché non posso aggiungere amici?
 
Salve. Sto cercando di imparare l'hosting condiviso seguendo le istruzioni, ma l'EA non si apre.
 

Puoi dirmi quale dei pilastri dell'AT classica è l'autore di questa immagine?

Questa immagine si trova in"Fundamentals of Trading" di Elder. Sono infatti interessato allo stesso quadro, ma con le CONVERGENZE, se esiste.


 

Aiuto, per favore. Un semplice script e non funziona. Non riesco a capire perché.

int awd1[];
void OnStart()
  {
   for(int i=0;i<=5;i++)
   {
   awd1[i]=i+10;
   }
   Alert("первый=");
  }

Il ciclo deve iterare 6 volte. Ad ogni iterazione, un valore dovrebbe essere assegnato all'array awd1. Dopo che il ciclo è finito, dovrebbe apparire una finestra con la voce "first=". Ma non appare. Cosa c'è che non va?

 
silachara:

Aiuto, per favore. Un semplice script e non funziona. Non riesco a capire perché.

int awd1[];
void OnStart()
  {
   for(int i=0;i<=5;i++)
   {
   awd1[i]=i+10;
   }
   Alert("первый=");
  }

Il ciclo deve scorrere 6 volte. Ad ogni iterazione, un valore dovrebbe essere assegnato all'array awd1. Quando il ciclo finisce, dovrebbe apparire una casella con la voce "first=". Ma non appare. Cosa c'è che non va?

Questo aiuterà anche a sbarazzarsi dei seguenti messaggi nel terminale: array out of range in ....:

#property strict
#define  ARRAY_SIZE  6
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 int j=0, awd1[];
   ArrayResize(awd1,ARRAY_SIZE,ARRAY_SIZE+1);
//---
   for(int i=0;i<ARRAY_SIZE;i++)
     {
      j=i+10;
      //j=j+10;//или, к примеру, такой вариант вместо строки выше, чтобы вы посмотрели, что присваиваться будет
      awd1[i]=j;
     }
   Alert("первый = ");
  }
//+------------------------------------------------------------------+


P./S.: Ecco una variante con un assegno:

#property strict
#define  ARRAY_SIZE  6
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 int j=0, count=0, awd1[];
   ArrayResize(awd1,ARRAY_SIZE,ARRAY_SIZE+1);
//---
   for(int i=0;i<ARRAY_SIZE;i++)
     {
      j=i+10;
      //j=j+10;//или, к примеру, такой вариант вместо строки выше, чтобы вы посмотрели, что присваиваться будет
      awd1[i]=j;
      count++;
      Print("count = ",count,", awd1[",i,"] = ",awd1[i],", j = ",j);
     }
   Alert("первый = ");
  }
//+------------------------------------------------------------------+
 
silachara:
Leggermente corretto i codici sopra in modo che non esca lo stesso valore awd1[i].
 
DiPach:
Ho leggermente corretto i codici sopra, in modo che non appaia uno stesso valore awd1[i].

Grazie!

Quindi l'array doveva essere dichiarato specificando il numero di celle in esso? Questo requisito è apparso dopo che MT4 è passato alla build 600? O era così anche prima?

E ho un altro problema: non riesco a trovare il file dove vengono scritte le informazioni di Print(). Per favore, consigliatemi il modo. Ho cercato in tutte le directory di MT4, ma non l'ho trovato.

 
silachara:

Grazie!

Quindi l'array doveva essere dichiarato specificando il numero di celle in esso? Questo requisito è apparso dopo che MT4 è passato alla build 600? O era così anche prima?

La funzione per impostare la dimensione di un array dinamico ArrayResize esisteva anche prima della build 600.

Tuttavia, il compilatore è diventato più severo con il linguaggio MQL4 aggiornato. Se necessario, potete vedere l'interessante informazione "di prima mano", invece di raccontarla con possibili distorsioni intenzionali, inclusa una presentazione incompleta, qui. Si può vedere nella "Tabella delle differenze tra i compilatori" dei linguaggi MQL4 precedenti e aggiornati (la tabella è alla fine della prima pagina di questo thread) o usare una ricerca. Se ricordo bene, c'era molto materiale sulla transizione al linguaggio MQL4 aggiornato.

 

silachara:

E un altro problema: non riesco a trovare il file dove vengono scritte le informazioni da Print(). Per favore, ditemi la strada. Ho cercato in tutte le directory di MT4, ma non l'ho trovato.

Un modo veloce: vai alla scheda"Esperti" del terminale -> clicca con il tasto destro sulla scheda -> clicca su"Apri" nel menu che appare.

Questo aprirà una cartella con i file di log che contengono voci da questa scheda, compresi quelli emessi tramite Print(). Qui sotto c'è un'immagine (mi sono ricordato che ho queste informazioni sotto forma di visualizzazione):


P./S. Allo stesso modo potete aprire rapidamente una cartella sul vostro computer con i file di log delle registrazioni dalla scheda"Log" del terminale (sono in una cartella diversa).