[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 317

 
kon12 писал(а) >>

Amigos, un consejo para quien sepa. Digamos que dibujo un indicador personalizado en el gráfico principal. Luego utilizo otro indicador personalizado que involucra al primer indicador a través de la función iCustom. ¿Podemos conectarlos para que el parámetro del primer indicador en el gráfico se cambie automáticamente en el segundo indicador personalizado?

No entiendo muy bien la tarea, pero quizás esto sirva :

Ayuda de MT Analytics - Indicadores técnicos

- Por ejemplo, puede crear un indicador de Media Móvil a partir de un Oscilador Impresionante y así obtener una línea de señal además de la AO. Para ello debe dibujar el indicador AO primero, y luego utilizando la técnica Drag`n`Drop imponer MA en AO y seleccionar "Datos del indicador anterior" en su configuración en el campo "Aplicar a" (imponer el indicador en los datos del indicador anterior). Si elige "Datos del primer indicador", se creará una MA basada en los datos del primer indicador, que no necesariamente será AO.

 
kon12 >> :

Amigos, un consejo para quien sepa. Digamos que dibujo un indicador personalizado en el gráfico principal. Luego utilizo otro indicador personalizado que involucra al primer indicador a través de la función iCustom. ¿Puedo conectarlos para que el parámetro del primer indicador en el gráfico se cambie automáticamente en el segundo indicador personalizado?

Si llama al indicador de origen a través de iCustom, lo guardará en algún lugar, así que márquelo como un búfer de indicador y emita el indicador de origen y el convertido como dos búferes de un indicador, será más fácil de ejecutar y cambiar los parámetros. Si quieres hacer el tonto, puedes usar globolvariables.

 
Urain >> :

No tienes que borrarlo, sólo puedes cambiar los parámetros a través de ObjectSet.

ps Pero, en general, hay que estudiar tu caso de forma individual.

Gracias.

 
kon12 >> :

Amigos, un consejo para quien sepa. Digamos que dibujo un indicador personalizado en el gráfico principal. Luego utilizo otro indicador personalizado que involucra al primer indicador a través de la función iCustom. ¿Puedo vincularlos para que cuando el parámetro del primer indicador cambie en el gráfico, el parámetro del segundo indicador personalizado cambie automáticamente?

¿Entiendo que quieres cambiar manualmente el valor del parámetro de entrada del indicador en el terminal y que los otros indicadores reaccionen ante este cambio?

Entonces la respuesta es clara: usar iCustom no funcionará. Esta función funciona de la siguiente manera - el indicador con los parámetros especificados se "crea" en la memoria del programa (no en el gráfico) ("como si", quiero decir, no se traza), y en la primera llamada se procesa utilizando las funciones init() y start(), es decir, si hay un ciclo "estándar" como for(i=limit;i>=0;i--), se calculan todas las barras necesarias. Entonces, la próxima vez que se llame a iCustom, no se realizará el recálculo (si no se especifica explícitamente en el cuerpo del indicador). No hay búferes separados asignados para tales indicadores en MQL, por lo que si necesita almacenar los valores, es razonable copiarlos en un búfer separado. No hay acceso directo a los gráficos en MQL también (pero sería útil IMHO).

 

Gracias por vuestras respuestas, puede que no haya formulado bien lo que quiero. Me explico: Utilizo un indicador ZigZag en el gráfico principal. Además, utilizo mi propio indicador que muestra las longitudes de onda mostradas por el zigzag. El indicador accede al zigzag a través de iCustom. Pero al cambiar los parámetros del zigzag, debo entrar en el segundo indicador y establecer los mismos parámetros allí. Cómo cambiar el parámetro sólo en zigzag. En Metastocke, simplemente superpongo el segundo indicador sobre el primero y ya está.

 
Como parece que he entendido bien la pregunta, la contestaré de nuevo: usando Metatrader y MQL - no hay manera
 
alsu >> :
Como parece que he entendido bien la pregunta, la respondo una vez más: usando Metatrader y MQL, ni hablar

No, por qué. Se puede pasar el parámetro a través de una variable global, objeto gráfico. Sólo necesitarás un tic para redibujarla, pero ya lo sabes.

Por supuesto, sería mejor unir los índices.

 
Svinozavr >> :

No, por qué. Se puede pasar el parámetro a través de una variable global, objeto gráfico. Sólo necesitas un tick para redibujarla, pero puedes hacerlo, ya sabes.

Por supuesto, sería mejor unir los índices.

Bueno, para que sea "eso", no es un nivel de principiante... En general, me pregunté durante mucho tiempo si no existe un entorno universal para que cada indicador registre sus búferes reales (bueno, aquellos donde "realmente" se almacenan los datos) en un espacio de direcciones compartido o, en el peor de los casos, como variables globales. Entonces sería posible aplicar a los gráficos directamente desde MQL en lugar de iCustom... Todavía no me he puesto a ello.

 
alsu >> :

bueno, para que sea "eso", está un poco más allá del nivel de principiante... En general, me estuve preguntando durante mucho tiempo si no hacer un entorno universal, de modo que cada indicador registre sus búferes reales (ya sabes, aquellos donde se almacenan los datos "reales") en un espacio de direcciones compartido o, en el peor de los casos, en forma de variables globales. Entonces sería posible dirigir los gráficos directamente desde MQL en lugar de iCustom... Todavía no me he puesto a ello.

Eso sería genial. Muy limitante es la incapacidad de sincronizar los indicadores normalmente. Tengo que sincronizarlos como he escrito o combinarlos.

Pero el problema del dibujo no puede resolverse con los medios estándar, salvo para dibujar en diferentes subcurvas a partir de un indicador. Y probablemente, ni siquiera con medios internos. Si fuéramos capaces de vincular un buffer a un número de ventana como un gr.object, o incluso generar tal ventana desde el indicador, entonces... Bueno, es un off-topic.

===

Pero la idea del medio ambiente es muy práctica. ¿Tiene alguna idea al respecto?

 
¿Tal vez un hilo separado?