[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 ;)
 

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

 
splxgf:

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?

 
CLAIN:

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

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 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 :)

 
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?
 
CLAIN:

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:

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                             Copyright © 2011, Trishkin Artyom A. |
//|                                           support@goldsuccess.ru |
//|                                           Skype: artmedia70      |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Trishkin Artyom A."
#property link      "support@goldsuccess.ru"
//                   Skype: artmedia70
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
double DataMass[15]={4,1,6,3,19,4,1,6,3,19,4,1,6,3,9}; // индекс первого = 4, индекс второго = 9

int start()
  {
//----
   int IndexMaxValue=ArrayMaximum(DataMass); 
   double MaxValue=DataMass[IndexMaxValue]; // находим максимальное значение в массиве по его индексу
   Alert("Индекс максимального элемента массива = "+IndexMaxValue+", его значение = "+MaxValue);
//----
   return(0);
  }
//+------------------------------------------------------------------+

Indovina quale indice esce :)

 
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 ;)
Vladimir, è una commedia. Ecco il testo.
 

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!)

 
Aiutate ad aggiungere una funzione per cancellare gli ordini per favore!