Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 131

 
Vitaly Muzichenko:

Non posso toccarlo con l'eventoOnCalculate(...), posso toccare qualsiasi funzione, ma non posso toccare questa. Il timer non è un'opzione, l'indicatore non è necessario così spesso, e sarebbe meglio usarlo con un clic su un elemento grafico.

Come implementarlo?

Si cattura il clic sull'oggetto nell'indicatore e nel gestore dell'evento, e poi si ricalcolano i buffer dell'indicatore come ad un nuovo inizio. Non è necessario tirare OnCalculate
 
-Aleks-:

Puoi dirmi per favore come cercare correttamente i posti più esosi di risorse nel codice che caricano la CPU?

Eseguire il profiling del codice dall'editor.
 
Artyom Trishkin:
Eseguire il profiling del codice dall'editor.

Grazie, ma come si fa a farlo offline - in un giorno di riposo?

 
Quale potrebbe essere il problema?

Un pezzo di codice:

for(i=1; i<=Bars; i++)
{
if(Open[i]-Close[i]==0)

Durante i test, il debugger genera un errore sulla linea if. Array fuori portata.

Grazie in anticipo.
 
Andy-D:
Quale potrebbe essere il problema?

Un pezzo di codice:

for(i=1; i<=Bars; i++)
{
if(Open[i]-Close[i]==0)

Durante i test, il debugger genera un errore sulla linea if. Array fuori portata.

Grazie in anticipo.
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
 
Sergey Gritsay:
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
Grazie ha aiutato, immagino che non avrei dovuto mettere "<="? È strano, però. Non capisco perché. Dove metto il segno più?
 
Andy-D:
Grazie ha aiutato, immagino che non avrei dovuto mettere "<="? È strano, però. Non capisco perché. Dove mettere il segno più?
L'indicizzazione della matrice inizia con 0 e finisce con Bars-1 (in questo caso). Pertanto, il valore di Bars risulta in un superamento dell'array.
 
Andy-D:
Grazie ha aiutato, immagino che non avrei dovuto mettere"<="? Strano però. Non capisco perché. Dove mettere il segno più?
Perché l'indicizzazione dell'array inizia con zero, quindi, per esempio, se il numero di barre in Bars è 1, allora per ottenere un valore da questa singola barra, dovete prendere il valore della loro cella con l'indice 0.

Ecco una tabella di confronto:

Numero di barre in Bars
1 2 3 4 5 6 7 8 9 10 Matrice esterna
Indice del loop che fa riferimento ai dati
0 (i<Bars)1 (i<Bars)2 (i<Bars)3 (i<Bars) 4 (i<Bars)5 (i<Bars) 6 (i<Bars) 7 (i<Bars)8 (i<Bars)9 (i<Bars) 10 (i==Bars)
 
Sergey Gritsay:
Per fare questo, è necessario creare un server al di fuori del computer locale e trasferire i dati attraverso questo server, rispettivamente, per MT è necessario scrivere un indicatore o un Expert Advisor che elabora questi dati, o mettere i terminali su un server VPN e impostare un copiatore di operazioni dal tuo account agli account dei tuoi amici lì. Un'altra opzione è quella di copiare i tuoi trade eseguiti su determinati livelli attraverso il servizio di segnali. In generale, dovete prendere in considerazione le vostre capacità finanziarie per ordinare il software appropriato.
Ho trovato un indicatore (mq4) con un principio di mappatura simile. Ho visto i suoi risultati e non mi soddisfano. Ho i miei dati e penso che siano più accurati. Ho i miei dati, posso modificarli per renderli più precisi e rimuovere alcune mappature inutili e specificare il percorso dei miei dati? Prendetelo come base.
 
Artyom Trishkin:
Dato che l'indicizzazione delle matrici inizia con zero, per esempio, se il numero di barre in Bars è 1, allora per ottenere il valore di questa singola barra, dobbiamo prendere il valore della loro cella con indice 0.

Ecco la tabella di confronto:

Numero di barre in Bars
1 2 3 4 5 6 7 8 9 10 Matrice esterna
Indice del loop che fa riferimento ai dati
0 (i<Bars)1 (i<Bars)2 (i<Bars)3 (i<Bars) 4 (i<Bars)5 (i<Bars) 6 (i<Bars) 7 (i<Bars)8 (i<Bars)9 (i<Bars) 10 (i==Bars)
Grazie mille, ora ha più senso.
Motivazione: