[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 354

 
Hay una obra de N. Staritsky. Hay una película basada en ella llamada "Más allá de dos liebres". Quiero leer a este brillante autor. No puedo encontrar su texto. Ayúdame a encontrarlo. y perdona si he preguntado en el hilo equivocado ;)
 

¿Cómo funciona ArrayMaximum?

int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)

Busca el elemento con el valor máximo. La función devuelve la posición del elemento máximo en la matriz.
Parámetros:array[] - La matriz numérica en la que buscar.
count - El número de elementos a buscar.
start - El índice inicial de la búsqueda.

Ejemplo:
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]);

así que no me queda claro... ¿Cómo puedo escribirlo para que el Asesor Experto busque, por ejemplo, el segundo número de la matriz?

int MinArray[7] = {1,2,3,4,5,6,7}

int ArrayMaximum (MinArray[7], "¿Y aquí?", 2); no me queda claro

 
splxgf:

Por ejemplo, el problema era cuántas veces el precio cruzó los niveles dados en los últimos dos años.

1. Se podría tomar cada nivel y mirar los datos de dos años. Coste: número de barras multiplicado por el número de niveles.

2. Puedes crear una matriz de niveles independiente. Basta con revisar todas las barras comprobando e incrementando los elementos necesarios del array. En este caso los cálculos serán más rápidos.

Me interesa un ejemplo similar a este:

for(a=0;a<=100;a++){

for (b=0;b<=100;b++){

for (c=0;c<=100;c++){

for(d=0;d<=100;d++){

for(e=0;e<=100;e++){

for (f=0;f<=100;f++){

for(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 ( valor_dela mandíbula1>Cerrar[g] && valor_de la mandíbula2>Cerrar[g] && valor_de la mandíbula3>Cerrar[g]) sum=suma+(Alto[g]-Bajo[g])

}}}}}}}


¿Pero entonces el array debe ser de 7 dimensiones?

 
CLAIN:

¿puede decirme cómo funciona el ArrayMaximum?

int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)

Busca el elemento con el valor máximo. La función devuelve la posición del elemento máximo en la matriz.
Parámetros:array[] - Matriz numérica en la que se busca.
count - El número de elementos a buscar.
start - El índice inicial para la búsqueda.

Ejemplo:
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int maxValueIdx=Máximo de la matriz(num_array);
Print("Valor máximo = ", num_array[maxValueIdx]);

así que aquí es donde no entiendo el recuento... ¿Cómo escribo mi Asesor Experto para buscar, por ejemplo, el segundo número de la matriz?

int MinArray[7] = {1,2,3,4,5,6,7}

int ArrayMaximum (MinArray[7], "¿Y aquí?", 2); no me queda claro

Suponga que tiene un array DataMass[] que contiene algunos valores. El tipo de valores que contiene es el doble.

Tienes que encontrar el mayor valor contenido en esta matriz, empezando por el elemento cero de la misma:

int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 0); // encontrar el índice del elemento con el valor más alto.

double MaxValue=MasaDeDatos[IndexMaxValue]; // encontrar el valor máximo de la matriz por su índice

La línea de búsqueda del elemento con el valor máximo se puede escribir de forma más corta:

int IndexMaxValue=ArrayMaximum(DataMass); // Los dos últimos argumentos de la función tienen valores por defecto, por lo que se pueden omitir cuando se llama a la función, ya que estamos buscando en todo el array (WHOLE_ARRAY) y empezando por la celda cero (0), y estos valores se pasan a la función por defecto.

Todo esto se puede escribir en una línea

double MaxValue=MasaDatos[ArrayMaximum (DataMass)]; // encontrar el valor máximo del array por su índice.

La variable MaxValue contendrá el valor máximo del array DataMass[].


Si se quiere buscar no en todo el array y no empezando por el elemento cero, estos valores deben especificarse explícitamente en los parámetros pasados:

int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 2); // encontrar el índice del elemento con el mayor valor. La búsqueda se realiza en todo el array (WHOLE_ARRAY), empezando por la segunda celda (2)

int IndexMaxValue=ArrayMaximum(DataMass, 10, 3); // encontrar el índice del elemento con el mayor valor. La búsqueda se realiza para diez elementos de la matriz (10), a partir de la tercera celda (3)


Espero haberlo explicado claramente :)

 
artmedia70:
Suponga que tiene una matriz DataMass[] que contiene algunos valores. El tipo de valores que contiene es el doble.

Tienes que encontrar el mayor valor contenido en esta matriz, empezando por el elemento cero de la misma:

int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 0); // encontrar el índice del elemento con el valor más alto.

double MaxValue=MasaDeDatos[IndexMaxValue]; // encontrar el valor máximo de la matriz por su índice

La línea de búsqueda del elemento con el valor máximo se puede escribir de forma más corta:

int IndexMaxValue=ArrayMaximum(DataMass); // Los dos últimos argumentos de la función tienen valores por defecto, por lo que se pueden omitir cuando se llama a la función, ya que estamos buscando en todo el array (WHOLE_ARRAY) y empezando por la celda cero (0), y estos valores se pasan a la función por defecto.

Ahora podemos escribirlo todo en una línea

double MaxValue=MasaDeDatos[ArrayMaximum (DataMass)]; // encontrar el valor máximo del array por su índice

Si desea buscar no en toda la matriz y no empezando por el elemento cero, debe especificar estos valores explícitamente en los parámetros pasados

int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 2); // encontrar el índice del elemento con el mayor valor. La búsqueda se realiza en todo el array (WHOLE_ARRAY), empezando por la segunda celda

int IndexMaxValue=ArrayMaximum(DataMass, 10, 3); // encontrar el índice del elemento con el mayor valor. La búsqueda se realiza sobre diez elementos de la matriz (10), a partir de la tercera celda

Espero haberlo explicado claramente :)



más que =) gracias, pero una pregunta sigue siendo .... ¿Y si tengo dos valores máximos idénticos, cuál escogerá? ¿El de la izquierda?
 
CLAIN:

más que eso =) gracias, pero una pregunta sigue siendo .... ¿Y si tengo dos valores máximos idénticos, cuál escogerá? ¿El de la izquierda?

Compruébalo :)

Escriba un pequeño script, que dará como resultado el valor máximo encontrado en el array y su índice. Inicializa el array explícitamente con valores, dos de los cuales serán iguales y serán mayores que los otros valores.

Utiliza el índice para determinar cuál de los dos valores más altos le da salida.

 

Muestra el índice más cercano al inicio de la búsqueda:

//+------------------------------------------------------------------+
//|                                                         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);
  }
//+------------------------------------------------------------------+

Adivina qué índice produce :)

 
drknn:
Hay una obra de N. Staritsky. Hay una película basada en ella llamada "Más allá de dos liebres". Quiero leer a este brillante autor. No puedo encontrar su texto. Ayúdame a encontrarlo. y perdona si he preguntado en el hilo equivocado ;)
Vladimir, es una obra de teatro. Este es el texto.
 

Buenos días, tengo dos preguntas (no encuentro ninguna respuesta digerible en ningún sitio):

1. el indicador dibuja dos filas de líneas de tendencia ver ticales en la subventana. ¿Cómo puedo obtener los números de barra que corresponden a estas líneas?

2. En el mismo indicador necesito dibujar líneas en el futuro para unas 24 horas por delante. Pero no sé cómo aplicarlo de la mejor manera.

Espero que los usuarios del foro me ayuden).

 
Ayuda para añadir una función para eliminar pedidos, por favor.
Archivos adjuntos: