[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 354
C'è un lavoro di N. Staritsky. C'è un film basato su di esso chiamato "Beyond Two Hares". Voglio leggere questo brillante autore. Non riesco a trovare il suo testo. Aiutami a trovarlo. e scusa se ho chiesto nel thread sbagliato ;)
int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
Cerca l'elemento con il valore massimo. La funzione restituisce la posizione dell'elemento massimo nella matrice. Parametri: array[] - L'array numerico in cui cercare. count - Il numero di elementi da cercare. start - L'indice di partenza della ricerca.
Esempio: double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9}; int maxValueIdx=ArrayMaximum(num_array); Print("Max value = ", num_array[maxValueIdx]);
quindi non mi è chiaro... Come posso scriverlo, in modo che l'Expert Advisor cerchi, per esempio, il secondo numero dell'array?
int MinArray[7] = {1,2,3,4,5,6,7}
int ArrayMaximum (MinArray[7], "E qui?", 2); non mi è chiaro
Per esempio, il problema era quante volte il prezzo ha attraversato determinati livelli negli ultimi due anni.
1. Si potrebbe prendere ogni livello e guardare i dati per due anni. Costo: numero di barre moltiplicato per il numero di livelli.
2. È possibile creare una serie separata di livelli. È sufficiente rivedere tutte le barre controllando e incrementando gli elementi richiesti dell'array. In questo caso i calcoli saranno più veloci.
Sono interessato a un esempio simile a questo:
for(a=0;a<=100;a++){
for (b=0;b<=100;b++){
for (c=0;c<=100;c++){
per(d=0;d<=100;d++){
for(e=0;e<=100;e++){
per (f=0;f<=100;f++){
per(g=0;g<=100000;g++){
jaw_val1=iAlligator(NULL, 0, a, b, c, d, f, e, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW, g);
jaw_val2=iAlligator(NULL, 0, a, b, c, d, f, e, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, g);
jaw_val3=iAlligator(NULL, 0, a, b, c, d, f, e, MODE_SMMA, PRICE_MEDIAN, MODE_GATORLIPS, g);
if (jaw_val1>Close[g] && jaw_val2>Close[g] && jaw_val3>Close[g]) sum=sum+(High[g]-Low[g])
int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
Cerca l'elemento con il valore massimo. La funzione restituisce la posizione dell'elemento massimo nella matrice. Parametri:array[] - array numerico, che viene cercato. count - Il numero di elementi da cercare. start - L'indice di partenza per la ricerca.
Esempio: double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9}; int maxValueIdx=ArrayMaximum(num_array); Stampa("Valore massimo = ", num_array[maxValueIdx]);
quindi è qui che non capisco il conteggio... Come posso scrivere il mio Expert Advisor per cercare, ad esempio, il secondo numero dell'array?
int MinArray[7] = {1,2,3,4,5,6,7}
int ArrayMaximum (MinArray[7], "E qui?", 2); non mi è chiaro
Supponiamo di avere un array DataMass[] che contiene alcuni valori. Il tipo di valori in esso è doppio.
Dovete trovare il più grande valore contenuto in questa matrice, partendo dall'elemento zero della matrice:
int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 0); // trova l'indice dell'elemento con il valore più alto.
double MaxValue=DataMass[IndexMaxValue]; // trova il valore massimo nell'array per il suo indice
La linea di ricerca dell'elemento con il valore massimo può essere scritta in una forma più breve:
int IndexMaxValue=ArrayMaximum(DataMass); // Gli ultimi due argomenti della funzione hanno valori predefiniti, quindi possono essere omessi quando la funzione viene chiamata, perché stiamo cercando l'intero array (WHOLE_ARRAY) e partendo dalla cella zero (0), e questi valori sono passati alla funzione per default.
Tutto questo può essere scritto in una sola riga
double MaxValue=DataMass[ArrayMaximum (DataMass)]; // trova il valore massimo nell'array per il suo indice.
La variabileMaxValueconterrà il valore massimo nell'arrayDataMass[].
Se volete cercare non in tutto l'array e non partendo dall'elemento zero, questi valori devono essere specificati esplicitamente nei parametri passati:
int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 2); // trova l'indice dell'elemento con il valore più grande. La ricerca viene eseguita su tutto l'array (WHOLE_ARRAY), a partire dalla seconda cella (2)
int IndexMaxValue=ArrayMaximum(DataMass, 10, 3); // trova l'indice dell'elemento con il valore più grande. La ricerca viene eseguita per dieci elementi della matrice (10), a partire dalla terza cella (3)
artmedia70: Supponiamo di avere un array DataMass[] che contiene alcuni valori. Il tipo di valori che contiene è doppio.
Dovete trovare il più grande valore contenuto in questa matrice, partendo dall'elemento zero della matrice:
int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 0); // trova l'indice dell'elemento con il valore più alto.
double MaxValue=DataMass[IndexMaxValue]; // trova il valore massimo nell'array per il suo indice
La linea di ricerca dell'elemento con il valore massimo può essere scritta in una forma più breve:
int IndexMaxValue=ArrayMaximum(DataMass); // Gli ultimi due argomenti della funzione hanno valori di default, quindi possono essere omessi quando la funzione viene chiamata, perché stiamo cercando l'intero array (WHOLE_ARRAY) e partendo dalla cella zero (0), e questi valori sono passati alla funzione per default.
Ora possiamo scrivere tutto in una riga
double MaxValue=DataMass[ArrayMaximum (DataMass)]; // trova il valore massimo nell'array per il suo indice
Se volete cercare non in tutto l'array e non partendo dall'elemento zero, dovete specificare questi valori esplicitamente nei parametri passati
int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 2); // trova l'indice dell'elemento con il valore più grande. La ricerca viene eseguita per l'intero array (WHOLE_ARRAY), a partire dalla seconda cella
int IndexMaxValue=ArrayMaximum(DataMass, 10, 3); // trova l'indice dell'elemento con il valore più grande. La ricerca viene eseguita su dieci elementi della matrice (10), a partire dalla terza cella
Spero di essermi spiegato chiaramente :)
più di =) grazie, ma una domanda rimane ancora .... E se ho 2 valori massimi identici, quale sceglierà? Quello a sinistra?
Scrivete un breve script che mostri il valore massimo trovato nell'array e il suo indice. Inizializza l'array esplicitamente con dei valori, due dei quali saranno uguali e saranno più grandi degli altri valori.
Usate l'indice per determinare quale dei due valori più alti vi trasmette.
drknn: C'è un lavoro di N. Staritsky. C'è un film basato su di esso chiamato "Beyond Two Hares". Voglio leggere questo brillante autore. Non riesco a trovare il suo testo. Aiutami a trovarlo. e scusa se ho chiesto nel thread sbagliato ;)
Buongiorno, ho due domande (non riesco a trovare nessuna risposta digeribile da nessuna parte):
1. l'indicatore disegna due file di linee di tendenza verticali nella sottofinestra. Come posso ottenere i numeri delle barre che corrispondono a queste linee?
2. Nello stesso indicatore ho bisogno di disegnare linee nel futuro per circa 24 ore avanti. Ma non so come implementarlo.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Come funziona ArrayMaximum?
int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
Cerca l'elemento con il valore massimo. La funzione restituisce la posizione dell'elemento massimo nella matrice.
Parametri: array[] - L'array numerico in cui cercare.
count - Il numero di elementi da cercare.
start - L'indice di partenza della ricerca.
Esempio:
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int maxValueIdx=ArrayMaximum(num_array);
Print("Max value = ", num_array[maxValueIdx]);
quindi non mi è chiaro... Come posso scriverlo, in modo che l'Expert Advisor cerchi, per esempio, il secondo numero dell'array?
int MinArray[7] = {1,2,3,4,5,6,7}
int ArrayMaximum (MinArray[7], "E qui?", 2); non mi è chiaro
Per esempio, il problema era quante volte il prezzo ha attraversato determinati livelli negli ultimi due anni.
1. Si potrebbe prendere ogni livello e guardare i dati per due anni. Costo: numero di barre moltiplicato per il numero di livelli.
2. È possibile creare una serie separata di livelli. È sufficiente rivedere tutte le barre controllando e incrementando gli elementi richiesti dell'array. In questo caso i calcoli saranno più veloci.
Sono interessato a un esempio simile a questo:
for(a=0;a<=100;a++){
for (b=0;b<=100;b++){
for (c=0;c<=100;c++){
per(d=0;d<=100;d++){
for(e=0;e<=100;e++){
per (f=0;f<=100;f++){
per(g=0;g<=100000;g++){
jaw_val1=iAlligator(NULL, 0, a, b, c, d, f, e, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW, g);
jaw_val2=iAlligator(NULL, 0, a, b, c, d, f, e, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, g);
jaw_val3=iAlligator(NULL, 0, a, b, c, d, f, e, MODE_SMMA, PRICE_MEDIAN, MODE_GATORLIPS, g);
if (jaw_val1>Close[g] && jaw_val2>Close[g] && jaw_val3>Close[g]) sum=sum+(High[g]-Low[g])
}}}}}}}
Ma allora l'array deve essere 7-dimensionale?
potete dirmi come funziona ArrayMaximum?
int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
Cerca l'elemento con il valore massimo. La funzione restituisce la posizione dell'elemento massimo nella matrice.
Parametri:array[] - array numerico, che viene cercato.
count - Il numero di elementi da cercare.
start - L'indice di partenza per la ricerca.
Esempio:
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int maxValueIdx=ArrayMaximum(num_array);
Stampa("Valore massimo = ", num_array[maxValueIdx]);
quindi è qui che non capisco il conteggio... Come posso scrivere il mio Expert Advisor per cercare, ad esempio, il secondo numero dell'array?
int MinArray[7] = {1,2,3,4,5,6,7}
int ArrayMaximum (MinArray[7], "E qui?", 2); non mi è chiaro
Dovete trovare il più grande valore contenuto in questa matrice, partendo dall'elemento zero della matrice:
int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 0); // trova l'indice dell'elemento con il valore più alto.
double MaxValue=DataMass[IndexMaxValue]; // trova il valore massimo nell'array per il suo indice
La linea di ricerca dell'elemento con il valore massimo può essere scritta in una forma più breve:
int IndexMaxValue=ArrayMaximum(DataMass); // Gli ultimi due argomenti della funzione hanno valori predefiniti, quindi possono essere omessi quando la funzione viene chiamata, perché stiamo cercando l'intero array (WHOLE_ARRAY) e partendo dalla cella zero (0), e questi valori sono passati alla funzione per default.
Tutto questo può essere scritto in una sola riga
double MaxValue=DataMass[ArrayMaximum (DataMass)]; // trova il valore massimo nell'array per il suo indice.
La variabile MaxValue conterrà il valore massimo nell'array DataMass[].
Se volete cercare non in tutto l'array e non partendo dall'elemento zero, questi valori devono essere specificati esplicitamente nei parametri passati:
int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 2); // trova l'indice dell'elemento con il valore più grande. La ricerca viene eseguita su tutto l'array (WHOLE_ARRAY), a partire dalla seconda cella (2)
int IndexMaxValue=ArrayMaximum(DataMass, 10, 3); // trova l'indice dell'elemento con il valore più grande. La ricerca viene eseguita per dieci elementi della matrice (10), a partire dalla terza cella (3)
Spero di essermi spiegato chiaramente :)
Supponiamo di avere un array DataMass[] che contiene alcuni valori. Il tipo di valori che contiene è doppio.
Dovete trovare il più grande valore contenuto in questa matrice, partendo dall'elemento zero della matrice:
int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 0); // trova l'indice dell'elemento con il valore più alto.
double MaxValue=DataMass[IndexMaxValue]; // trova il valore massimo nell'array per il suo indice
La linea di ricerca dell'elemento con il valore massimo può essere scritta in una forma più breve:
int IndexMaxValue=ArrayMaximum(DataMass); // Gli ultimi due argomenti della funzione hanno valori di default, quindi possono essere omessi quando la funzione viene chiamata, perché stiamo cercando l'intero array (WHOLE_ARRAY) e partendo dalla cella zero (0), e questi valori sono passati alla funzione per default.
Ora possiamo scrivere tutto in una riga
double MaxValue=DataMass[ArrayMaximum (DataMass)]; // trova il valore massimo nell'array per il suo indice
Se volete cercare non in tutto l'array e non partendo dall'elemento zero, dovete specificare questi valori esplicitamente nei parametri passati
int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 2); // trova l'indice dell'elemento con il valore più grande. La ricerca viene eseguita per l'intero array (WHOLE_ARRAY), a partire dalla seconda cella
int IndexMaxValue=ArrayMaximum(DataMass, 10, 3); // trova l'indice dell'elemento con il valore più grande. La ricerca viene eseguita su dieci elementi della matrice (10), a partire dalla terza cella
Spero di essermi spiegato chiaramente :)
più di =) grazie, ma una domanda rimane ancora .... E se ho 2 valori massimi identici, quale sceglierà? Quello a sinistra?
più di questo =) grazie, ma una domanda rimane ancora .... E se ho 2 valori massimi identici, quale sceglierà? Quello a sinistra?
Controlla :)
Scrivete un breve script che mostri il valore massimo trovato nell'array e il suo indice. Inizializza l'array esplicitamente con dei valori, due dei quali saranno uguali e saranno più grandi degli altri valori.
Usate l'indice per determinare quale dei due valori più alti vi trasmette.
Emette l'indice di quello più vicino all'inizio della ricerca:
Indovina quale indice esce :)
C'è un lavoro di N. Staritsky. C'è un film basato su di esso chiamato "Beyond Two Hares". Voglio leggere questo brillante autore. Non riesco a trovare il suo testo. Aiutami a trovarlo. e scusa se ho chiesto nel thread sbagliato ;)
Buongiorno, ho due domande (non riesco a trovare nessuna risposta digeribile da nessuna parte):
1. l'indicatore disegna due file di linee di tendenza verticali nella sottofinestra. Come posso ottenere i numeri delle barre che corrispondono a queste linee?
2. Nello stesso indicatore ho bisogno di disegnare linee nel futuro per circa 24 ore avanti. Ma non so come implementarlo.
Spero molto nell'aiuto degli utenti del forum!)