[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 354
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
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!)