[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 236

 
solnce600:
No estoy muy seguro de lo que significa la búsqueda binaria. ¿Es una búsqueda en una matriz bidimensional? Pero tengo uno unidimensional.

Ordena el array, si no lo has hecho hasta ahora, y para el control de la correcta preparación en init() desimprime su contenido, no todos sino los primeros 20-50 elementos.

P.D. ¿Ves la identidad de binario y bidimensional? El terminal ve sus dígitos en código "binario" y para que la función ArrayBsearch() trabaje correctamente, requiere una ordenación previa del array.

 
TarasBY:

¿No ves nada ahí?

Veo que ArrayBsearch() devuelve 0 (como índice de elemento) en todas partes. En la celda 0 de tu matriz está el número 1,0408. Volvamos al código:

Ahora sustituya los valores de las variables obtenidas en esta condición (en la oferta de carita está en el rango 0,8-0,9, tomemos el máximo de este rango - 0,9): si (0,9000 - 1,0408 <= 0) OrderSend(). La condición se cumple ¡¡¡Justo!!! Busque errores al completar su matriz. Es de suponer que no ha prestado atención a esta cláusula en la función ArrayBsearch():

Nota: La búsqueda binaria sólo maneja matrices ordenadas. La función ArraySort() se utiliza para ordenar una matriz numérica.

P.D. La impresión no debe ser proporcionada como imagen, sino mediante la selección simultánea de varias líneas (usando SHIFT - si no sabes cómo hacerlo) de esta misma impresión (10-20 líneas es suficiente) en la ventana del terminal, y luego copiar y pegar las líneas seleccionadas en tu post como código con el botón SRC.

He entendido que el problema está en la función ArrayBsearch()

Pero sigo sin entender por qué esta función no debería devolver inmediatamente el único elemento N de la matriz con el valor más cercano por valor a valor

¿Por qué si no deberían participar en los cálculos massiv[S-1] y massiv[S+1]?

 
solnce600:

Entiendo que el problema está en la función ArrayBsearch()

Pero sigo sin entender por qué esta función no debería devolver inmediatamente el único elemento N de la matriz con el valor más cercano por valor a valor

¿Por qué si no participan massiv[S-1] y massiv[S+1]en los cálculos ?

¡¡¡El problema no está en la función ArrayBsearch(), sino en la preparación del array que se pasa a esta función!!!

Y entonces es sólo un "vuelo de fantasía"... Su imaginación...

La función ArrayBsearch() devuelve el valor UNO, y para encontrar la causa de la torcedura del código, imprimí los valores: (en orden) el valor de la celda del array con índice S (fue devuelto por la función ArrayBsearch()), el valor más cercano a la izquierda en el array dado (massive[]) con índice S-1, el valor más cercano a la derecha con índice S+1, y el precio en el momento de la apertura de la orden.

Llegaste a 1er grado, y estás tratando de asomarte a una clase que se gradúa... Vuelve a tu clase!!! - analogía. :))

 
TarasBY:

¡¡¡El problema no está en la función ArrayBsearch(), sino en la preparación del array que se pasa a esta función!!!

Y entonces era sólo un "vuelo de la fantasía"... Su imaginación...

La función ArrayBsearch() devuelve el valor UNO, y para encontrar la causa de la torcedura del código, imprimí los valores: (en orden) el valor de la celda del array con índice S (fue devuelto por la función ArrayBsearch()), el valor más cercano a la izquierda en el array dado (massive[]) con índice S-1, el valor más cercano a la derecha con índice S+1, y el precio en el momento de la apertura de la orden.

Llegaste a 1er grado, y estás tratando de asomarte a una clase que se gradúa... Vuelve a tu clase!!! - analogía. :))

Entendido. Muchas gracias por tu ayuda.... Siempre tengo un poco de prisa y me adelanto a los acontecimientos.... Creo que hay más pros que contras en general.

Lo único que no entiendo todavía....

Aquí necesito inicializar un array con 3000 valores.Y lo hice usando EXCEL.

Me pareció un proceso largo, de varios pasos y tedioso.

¿Existen mejores algoritmos para este proceso?

Gracias.

 
solnce600:

Lo hice usando EXCEL.


¿A través de DDE o de Lazybones?

Escribe una macro y automatiza, si tienes un historial. Lo abres en Word con la escritura de macros activada, lo conviertes allí, luego lo guardas en csv con la macro y usas DDE. No conozco el formato de los archivos de datos de metatrader y metastock, no tengo tiempo para entenderlo. Y si doble array[3000] con ceros, entonces usa for, pero se inicializan con ceros, si no me equivoco.

 
solnce600:
Entendido. Muchas gracias por tu ayuda.... Siempre tengo un poco de prisa y me adelanto a los acontecimientos.... Creo que hay más pros que contras en general.

Lo único que no entiendo es ....

Necesito inicializar un array de 3000 valores, y lo he estado haciendo con EXCEL.

Me pareció un proceso largo, de varios pasos y tedioso.

¿Existen mejores algoritmos para este proceso?

Gracias.


Por favor, publique el archivo donde están escritos los valores de inicialización...
 
gyfto:


¿A través de la DDE o a través de la Loafer?

Escribe una macro y automatiza, si tienes un historial. Ábrelo en Word con la escritura de macros activada, conviértelo a Excel, guárdalo como macro csv y utiliza el DDE. El formato de los archivos de datos de metatrader y metastock no depende de mí, no tengo tiempo para averiguarlo. Si por ceros, entonces a través de for, pero los ceros se inicializan, si no me equivoco.

Gracias, lo estudiaré. Acabo de ir a Servicio - guardé el historial de un par en un archivo EXCEL.

Divido una sola columna con todos los datos por columnas, pongo una coma después de cada valor en la columna con los precios de apertura - la transpongo en una línea - ordenada - y la pego en el editor, es decir

incluido el archivo mqh.

Si tienes referencias de DDE o Lazybear, por favor, házmelo saber.

Gracias.

 
solnce600:

Simplemente entré en Servicio - guardé el historial de una pareja en un archivo EXCEL.

Divido una sola columna con todos los datos en columnas. En la columna con los precios de apertura, pongo una coma después de cada valor - lo transpongo en una línea - lo ordeno - y lo pego en el editor, es decir, en el

incluido el archivo mqh.

Si hay referencias al DDE o a la información de Lazybear, por favor, denlo.

Gracias.



No necesitas DDE ni lazybones. Sólo necesitas una función (10 líneas de código). Lanza el archivo en el directorio de la terminal y el array se inicializará... Dame el archivo.
 
Dima.A.:

No necesitas un DDE o un Lazybones. Sólo necesitas una función (10 líneas de código). Lanza el archivo en el directorio de la terminal y el array se inicializará... Dame el archivo.

Necesito inicializar 2 matrices

1.doble

2.datetime

En la primera matriz, algunos valores después de la línea 1120 por alguna razón - se convirtieron a un formato diferente después de que cambié el signo de separación de coma a punto. (Tenía una coma allí)

Si no es difícil por favor envíame estas 10 líneas de código también ...... las estudiaré.... quiero aprender a hacerlo yo mismo en el futuro.

Muchas gracias por su ayuda.

 
solnce600:
Qué raro, el archivo pesa 140 kilos, lo he archivado y adjuntado al post..... y no está.


Acorta el archivo, sólo necesito un par de líneas en él...