Sugerencias para mejorar el MetaEditor - página 10

 
Yedelkin:

Le he pedido que le ponga un ejemplo.

¿Estás diciendo que si un indicador tiene 10 buffers, puedes obtener, por ejemplo, los valores del séptimo buffer del indicador de anteayer con una sola línea en MQL4?

Uh-huh,https://docs.mql4.com/ru/indicators/icustom
iCustom - Документация на MQL4
  • docs.mql4.com
iCustom - Документация на MQL4
 
Renat:
Señores, el sistema de acceso a los buffers de los indicadores en MQL5 es muchas veces más eficaz y rápido que en MQL4.

No hablo de eficiencia, sino de usabilidad.

No puedo hacer un wrapper universal para llamar a cualquier indicador, cada vez tengo que corregir la copia y luego tropiezo con código engorroso.

Si fuera diferente en la 4, no estaríamos discutiendo en absoluto.

 

El trabajo del programador es resolver los problemas de forma eficiente, no conseguir una solución de una sola línea que sea lenta de hecho, pero barata para el programador. En MQL4 no existía la posibilidad de obtener un acceso rápido y masivo a los datos de los indicadores, y en MQL5 sí existe dicho acceso.

El Compositor debería dejar de publicar tonterías. De hecho, el hombre no se da cuenta de que N llamadas en MQL4 son N llamadas sincronizadas y costosas en MQL5 en comparación con la solicitud de búfer de una sola vez en MQL5 seguido por el acceso instantáneo a la matriz local sin sincronización. Al menos piense en el costo de la sincronización a través de las secciones críticas en cada llamada a la historia en MQL4 y pasar por un ciclo completo de acceso en una función del sistema complejo.

Si ofrece una solución que es varias veces más eficaz que los antiguos métodos, sin duda será más rentable para el resultado final. La eficiencia es más importante.

 

Lo entiendo. Todavía no hay un ejemplo claro :) Bien, sigamos adelante. ¿Cómo utilizar su enlace para obtener una matriz de una línea de valores de la memoria intermedia del décimo indicador de anteayer?

Palabras clave: a) matriz, b) tampón indicador de décimas . :)

 
Renat:

El compositor tiene que dejar de publicar tonterías. De hecho el hombre no entiende que...

Renate debería aprender a leer. De hecho, no entiende ni lo que se escribe ni la posición de los escritores.

Si explico la esencia de una posición que entiendo a otro miembro del foro, no significa que me adhiera a esa posición. Además, aclaré específicamente para los despistados que"es sólo una cuestión de costumbre" y no hay ningún problema.

 
Yedelkin:

Lo entiendo. Todavía no hay un ejemplo claro :) Bien, sigamos adelante. ¿Cómo utilizar su enlace para obtener una matriz de una línea de valores de la memoria intermedia del décimo indicador de anteayer?

Palabras clave: a) matriz, b) tampón indicador de décimas ).

¿Quiere que lo copie aquí? Aquí tienes:

double val=iCustom( NULL, PERIOD_D1, "SampleInd", 9, 2 );

9 es el índice del buffer (el décimo), 2 es el índice de la barra.

La variable val se asigna al valor de la memoria intermedia del indicador 10 de anteayer.

Acabo de ver lamatriz en su pregunta. Podrías haber señalado la necesidad de obtener varios valores explícitamente.

En este caso, la respuesta es no, no se puede devolver un array por una cadena. Pero puedes escribir una función sencilla que lo haga. Sin embargo, en este caso no habrá casi ninguna diferencia con MQL5 - para cada indicador tendrá que escribir su propia función.

 
Veo tu postura como "una línea es genial y tres es muy mala".

No respondéis a las explicaciones técnicas, no conocéis la arquitectura interna de ambos terminales, no conocéis el coste de las llamadas, pero criticáis las soluciones de quienes no sólo han creado métodos de acceso eficaces, sino que explican las razones.
 

komposter:

Yedelkin:

komposter:

Yedelkin : ¿Quieres decir que si un indicador tiene 10 buffers, puedes obtener, por ejemplo, losvalores del séptimo buffer del indicador de anteayer con una sola línea en MQL4?

Uh-huh...


...Ok, vayamos más allá. ¿Cómo puedo utilizar su enlace para obtener una matriz de los valores del búfer del décimo indicador de anteayer en una línea?

Palabras clave: a) matriz, b) tampón indicador de décimas ).


Acabo de veruna matriz en tu pregunta. Podrías haber señalado la necesidad de obtener varios valores explícitamente. En este caso, la respuesta es no, no se puede devolver un array por una línea.

Ya veo. La lectura desatenta de mi pregunta sobre los"valores de anteayer" llevó a una respuesta errónea. Así que tuve que utilizar una tautología como "arrayde valores" en lugar de"valores". Finalmente se da la respuesta correcta: no se pueden devolver losvalores de anteayer por MQL4 con una sola línea.

komposter:

¿Lo copio aquí? Aquí tienes:

double val=iCustom( NULL, PERIOD_D1, "SampleInd", 9, 2 );

9 es el índice del buffer (10º), 2 es el índice de la barra.

A la variable val se le asigna elvalor de la décima memoria intermedia del indicador de anteayer.

Como ya has entendido, la pregunta se refería a la pluralidad de "los valores de antes de ayer", y no se decía en ningún sitio que se debían buscar losvalores de antes de ayer para PERIOD_D1 (sobre todo si tienes en cuenta que un periodo diario por definición no puede contener varios valores de antes de ayer para un buffer). Siguiendo adelante. Por supuesto que no soy un experto en MQL4, pero la línea citada anteriormente no puede considerarse formalmente correcta. Pues en el enlace que has citado se dice que "El índice de la línea indicadora. Puede ser de 0 a 7". Pero por alguna razón, sin ninguna otra explicación, usted cita el índice del buffer == 9.

 
komposter:
¡Gracias por revelar el tema!
 
Renat:
Puedo ver su posición...

...no reaccionas... no sabes... criticas...
Renat, busca otro espejo para tu diálogo. Adiós.