Librerías: SmoothAlgorithms

 

SmoothAlgorithms:

Es la librería de los algoritmos de promediación. En el artículo "Promediación de series de precios para cálculos intermedios sin usar buffers adicionales" se puede encontrar la descripción detallada del trabajo con estos algoritmos.

Fig. 1. Indicador EMA en la ventana del terminal MetaTrader 5

Autor: Nikolay Kositsin

 
Buenas tardes... Después de actualizar a la última versión han empezado a salir errores en "SmoothAlgorithms". Y promediando sma, lwma, parma, vidya dejaron de funcionar. Advierte en esta línea:"array out of range in 'SmoothAlgorithms.mqh' (3394,9)". ¿Cómo solucionarlo? Gracias.
 
007yurik:
Buenas tardes... Después de actualizar a la última versión han empezado a salir errores en "SmoothAlgorithms". Y promediando sma, lwma, parma, vidya dejaron de funcionar. Advierte en esta línea: "array out of range in 'SmoothAlgorithms.mqh' (3394,9)". ¿Cómo solucionarlo? Gracias.

No arreglo ninguna irregularidad en el código ni en su compilación en absoluto. No está nada claro de qué estás hablando?

 
Nikolay Kositsin:

No detecto ningún tipo de violación en el funcionamiento o compilación del código. No entiendo nada, ¿de qué me estáis hablando?

Teniendo en cuenta mi bajo nivel de conocimientos de mql intentaré explicarlo con los dedos)Antes de las últimas actualizaciones del terminal todo iba bien.Ahora, después de la actualización, al añadir cualquier indicador con SmoothAlgorithms al gráfico, no todos los métodos de promediado funcionan.Por ejemplo, tomemos su indicador XFisher_org_v1_Vol, lo descargo-compilo - todo normal, sin errores.Cuando intento cambiar el método de suavizado a sma, smma, lwma, parma, vidya y ama. obtengo una ventana de indicador vacía. Todos los demás métodos funcionan normalmente.La siguiente línea aparece en la pestaña Asesores Expertos en las herramientas:2018.11.20 17:20:49.028 XFisher_org_v1_Vol_Supr (Si-12.18,M1) array out of range in 'SmoothAlgorithms.mqh' (3394,9).


 
Claro que a lo mejor estoy en el sitio equivocado y no se trata de SmoothAlgorithms, pero no tengo más ideas todavía. Si me podéis decir algo, os lo agradeceré.
 
007yurik:
Por supuesto, tal vez no estoy en el lugar correcto y no se trata de SmoothAlgorithms, pero no tengo ninguna otra idea todavía. Si usted me puede decir algo, se lo agradecería.

Si tuviera algo como esto en mi ordenador, sería posible hacer algo, pero por lo que sólo hay una manera de resolver el problema - descargar el archivo de instalación desde el sitio Metaquotes e instalarlo en una carpeta vacía. Y comprobar el trabajo de los indicadores en el nuevo terminal.

Y el número de barras en la ventana debe ser más o menos decente. De lo contrario no habrá nada que promediar, y son los métodos problemáticos de promediación que requieren más barras que otros métodos de promediación.

 

Si añade la directiva #property strict en el código.

y en la función PriceSeries reemplaza Open por open, Low por low, etc.

compilará en MT4 sin errores ni advertencias. ¿Quizás el autor haga esta pequeña cosa?

 
Sergey Tselikov:

Si añade la directiva #property strict en el código.

y en la función PriceSeries sustituye Open por open, Low por low, etc.

compilará en MT4 sin errores ni advertencias. Tal vez el autor haga esta cosita?

El caso es que no sigo para nada los cambios en el lenguaje MQL4 y, en general, no lo hago, porque no tengo tiempo para este tipo de trabajo. Hay una variante de SmoothAlgorithms para mql4 en el archivo Zip en el archivo adjunto a la publicación, pero no sé qué tan bien funciona. Los indicadores no se compilará directamente de todos modos.

 
La biblioteca compila y funciona. Sólo falta esta pequeña cosa. Creo que es incorrecto publicar el código corregido cosméticamente de otra persona.
 
En realidad, la propuesta no cambia el trabajo de su código de ninguna manera. Cosméticos.
 
Nikolay Kositsin:

Si tuviera algo así en mi ordenador, podría hacer algo al respecto, pero la única manera de resolver el problema es descargar el archivo de instalación desde el sitio Metaquotes e instalarlo en una carpeta vacía. Y comprobar el trabajo de los indicadores en un nuevo terminal.

Y el número de barras en la ventana debe ser más o menos decente. De lo contrario, no habrá nada que promediar, y son los métodos problemáticos de promediación que requieren más barras que otros métodos de promediación.

Confirmado. El error se produce, pero no siempre. A veces funciona normalmente, a veces se bloquea. El error se produce más a menudo si ejecuta el indicador en el probador. Por ejemplo, el mismo XFisher_org_v1_Vol_Supr después de compilarlo en la última versión (1980) y ejecutarlo en el probador en el instrumento RTS Splice, da el error "array out of range in 'SmoothAlgorithms.mqh' (3394,9)". El error se produce no sólo en este indicador, sino también en muchos otros que utilizan la biblioteca SmoothAlgorithms.mqh. Nikolai, por favor, compruébalo.

XFisher_org_v1_Vol
XFisher_org_v1_Vol
  • www.mql5.com
Осциллятор XFisher_org_v1 в виде цветной гистограммы с использованием объемов. Формула вычисления: По вполне понятным причинам, в таком модифицированном осцилляторе пересчет уровней перекупленности и перепроданности должен происходить по этой же формуле, что и было выполнено. В итоговом варианте эти...