Re: Conocer en un TF el valor de un indicador en otro TF
Hola a todos:
elcctroo, he probado el código que me apuntabas y no funciona del todo bien, me explico:
En MaxVENTANA_tf = High[iHighest(NULL, PERIOD_H1 ,MODE_HIGH, N_BARRAS ,0)];
iHighest(NULL, PERIOD_H1 ,MODE_HIGH, N_BARRAS ,0) efectivamente obtiene la vela con el high mayor en H1 del total de velas marcado por N_BARRAS. Pero con High[velaObtenida] no tenemos el High en H1 de la vela obtenida sino el High[velaObtenida] en el TF en el que se esté ejecutando el EA.
Esto realmente no es un problema porque como yo lo que necesitaba era tener el máximo y el mínimo de la ventana dentro del indicador. Lo que realmente me sirve es poder pasar como parámetro el N_BARRAS del gráfico donde se ejecuta el EA al indicador. Luego el indicador se encarga de obtener el máximo y el mínimo, bien a través de un bucle como lo tenía yo en mi código, bien a través de la función iHighest como me contabas tú con menos líneas de código y seguramente más rápida.
Mil gracias por tus comentarios. Cuando tenga el código un poco más optimizado, lo subo para que me deis vuestra opinión.
Saludos:
Conocer en un TF el valor de un indicador en otro TF
Hola a todos:
En ocasiones necesito disponer del valor de un indicador en un TF cuando estoy ejecutando un EA en otro TF. Por ejemplo para tomar una decisión en un EA ejecutándose en EURUSD M1, necesito saber si hubo un cruce de medias en EURUSD H4.
Hasta ahora he solucionado esta situación de dos formas posibles, pero ninguna de ellas acaba de gustarme. Quería saber si a alguno de vosotros se os ha planteado esta situación y si lo habéis solucionado de una forma diferente a las que expongo a continuación.
Forma 1: El EA cuando se ejecuta sobre EURUSD H4 y detecta el cruce de medias, actualiza un archivo .csv. El EA cuando se ejecuta sobre EURUSD M1, en cada tick, lee la información de ese archivo .csv.
Forma 2: El EA cuando se ejecuta sobre EURUSD H4 y detecta el cruce de medias, actualiza una VGTU de nombre "EURUSD_H4" quedando la información disponible para cualquier EA que se ejecute en la plataforma MetaTrader.
Saludos:
Re: Conocer en un TF el valor de un indicador en otro TF
No hay que comlicarse la vida con grabar los datos de un infdicador en cvs para luego leerlos.
Simplemente hay que llamarlo en el Tf que quieres saber su valor.
Por ejemplo, si estoy en 1M y quiero saber el valor de la media de 25 en 1M y la de 40 en 30M.
media1M = iMA(NULL,0,MA_A, 0 ,MODE_SMA,PRICE_CLOSE, 0);
igual tambien se podia poner: media1M = iMA(NULL,0,MA_A, PERIOD_M1 ,MODE_SMA,PRICE_CLOSE, 0);
y para la media30M = iMA(NULL,0,MA_A, PERIOD_M30 ,MODE_SMA,PRICE_CLOSE,i);
Un saludo.
Re: Conocer en un TF el valor de un indicador en otro TF
Hola a todos:
elcctroo, gracias por contestar y por servirme de guía para profundizar en este tema.
Había pensado una solución similar a la que aportas pero peor. Establecía en una variable externa el número de barras por gráfico, por defecto 200.
Tu solución la voy a probar y experimentar. Yo lo que necesito es disponer de los valores del máximo y del mínimo de la ventana dentro del indicador. Tú dispones de esos valores en el EA en ejecución. Imagino que el máximo y el mínimo podrían ser variables externas en el indicador y que en el EA a través de llamadas a iCustom se le pudiesen pasar como parámetros esos valores obtenidos.
elcctroo, en un mensaje anterior me corregías el código poniendo:
<< CORRIGE LAS NEGRILLAS DEBEN SER EL BUFFER DEL INDICADOR >>
Tú usabas la posición 0 de 4 buffers diferentes y yo usaba 4 posiciones del buffer 0. Imagino que las dos opciones son válidas, dependiendo de cómo se diseñe el indicador. Pero creo que es más correcto usar un solo buffer y ocupar sus diferentes posiciones con la información a exportar al EA.
Cuando tú pones:
iCustom(NULL, PERIOD_H4, "Sop_Res_Mas_Cercano",3,0)=1,2050
Estás en la posición 0 del buffer 3 del indicador.
¿Es correcto?
Saludos:
Re: Conocer en un TF el valor de un indicador en otro TF
Hola a todos:
Siguiendo en este hilo, me planteo la necesidad de llevar información (conjunto de valores) de un indicador ejecutándose en un TF a otro TF.
Mi objetivo final es crear un EA que base sus entradas en la detección de la formación de una vela determinada en un TF(por ejemplo M15), una vez que haya tocado o rebasado un cierto nivel de soporte o resistencia determinado en un TF diferente (por ejemplo H4).
Os cuento cual es mi idea para conseguirlo. Me gustaría que me dieseis vuestra opinión.
He construido un indicador que basado en iFractals y en proporción a la distancia vertical en pips vistos en la pantalla me pinta dos rectángulos con el soporte y la resistencia más cercanos al valor del precio en cada tick considerando un número determinado de velas hacia atrás, por ejemplo las contenidas hasta dos ventanas anteriores. Todo esto para no tener en cuenta soportes y resistencias muy antiguos.
Bien, pues ahora en el EA que se estará ejecutando en el TF M15 que detecto la formación de la vela característica necesito disponer de los niveles de soporte y resistencia del otro TF H4.
He pensado que mi indicador de nombre "Sop_Res_Mas_Cercano" que se ejecutará en el TF H4, además de pintar rectángulos de soporte y resistencia en la pantalla, NO coloque en el Buffer lo que es habitual en la ejecución de un indicador que sería los valores del indicador para cada vela, sino que coloque los niveles del soporte y resistencia más cercano.
Así si en el EURUSD en H4 tenemos un rectángulo de resistencia cercana con base superior=1,2190, base inferior=1.2150 y un soporte cercano de base superior= 1,2090 y base inferior =1.2050.
Las llamadas a mi indicador me darían un resultado de:
iCustom(NULL, PERIOD_H4, "Sop_Res_Mas_Cercano",0,0)=1,2190
iCustom(NULL, PERIOD_H4, "Sop_Res_Mas_Cercano",0,1)=1,2150
iCustom(NULL, PERIOD_H40, "Sop_Res_Mas_Cercano",0,2)=1,2090
iCustom(NULL, PERIOD_H4, "Sop_Res_Mas_Cercano",0,3)=1,2050
Con la aportación que nos hacía elcctroo en el mensaje anterior, ni siquiera tengo que lanzar el indicador sobre H4, simplemente lo tendría que poner en la llamada como PERIOD_H4.
Siguiendo en esta línea e intentando automatizar la estrategia explicada por marc3lo en el último webinar sobre secciones, el indicador "Sop_Res_Mas_Cercano" también podría proporcionar en otras posiciones distintas a las cuatro primeras los valores del triángulo en formación.
Os pido disculpas por la extensión del mensaje.
Saludos:
Re: Conocer en un TF el valor de un indicador en otro TF
Cita:
Iniciado por
viennesete
Forma 1: El EA cuando se ejecuta sobre EURUSD H4 y detecta el cruce de medias, actualiza un archivo .csv. El EA cuando se ejecuta sobre EURUSD M1, en cada tick, lee la información de ese archivo .csv.
Ojala pudiera ayudarte pero en vez de eso me ayudas tu a mi. Esta forma me parece muy interesante.
Gracias y de paso reputacionB-)
Re: Conocer en un TF el valor de un indicador en otro TF
Cita:
Iniciado por
viennesete
Hola a todos:
elcctroo, gracias por contestar....
Cuando tú pones:
iCustom(NULL, PERIOD_H4, "Sop_Res_Mas_Cercano",3,0)=1,2050
Estás en la posición 0 del buffer 3 del indicador.
¿Es correcto?
Saludos:
Si, es correcto, así tomas el valor que tiene el bufer 3 sobre la vela 0.
Un saludo.
Re: Conocer en un TF el valor de un indicador en otro TF
Gracias elcctroo.
Ya había pensado en ello, estaba implementándolo en el código para luego ponerlo en el foro. Pero no me has dado tiempo... has sido más rápido...jejeje... De cualquier manera, muchas gracias por contestar.
Saludos:
Re: Conocer en un TF el valor de un indicador en otro TF
Hola manueltrix.
Gracias por contestar. Me alegro que haya podido aportar algo a un compañero del foro.
En el indicador THV parece que obtienen información de un TF estando en otro TF. pero no exponen el código en mq4, sólo en ex4. Seguiré mirando por ahí e investigando a ver si encuentro algo.
Saludos:
Re: Conocer en un TF el valor de un indicador en otro TF
Hola a todos.
Siguiendo las indicaciones de elcctroo, me disponía a postear el código del indicador, pero me encuentro con un problema.
El indicador dibuja en pantalla rectángulos con los soportes que se han producido en un intervalo determinado de tiempo. En cada rectángulo puede haber 1 o n soportes. La altura de estos rectángulos se determina a través de una variable externa que vale por defecto 60 y que divide la diferencia WindowPriceMax()-WindowPriceMin() entre 60. Así se puede determinar a gusto del usuario qué altura con respecto a la pantalla ocupará el rectángulo soporte.
Hasta aquí ningún problema, lanzando el indicador en un par y TF determinados el resultado es el esperado. Pero cuando lo llamo con iCustom desde un EA que se puede estar ejecutando en otro TF o incluso en otro par. Como el indicador para establecer la altura del rectángulo soporte toma como referencia los valores de WindowPriceMax() y WindowPriceMin(). Lo que realmente coge son los valores de WindowPriceMax() y WindowPriceMin() de la ventana donde se está ejecutando el EA y no en el par y TF con el que se llama en la función iCustom.
No sé si me estaré explicando bien.... Necesito saber desde un TF cuales son los precios máximo y mínimo en la ventana o pantalla de otro TF de un par determinado. Lo ideal sería sin tener que ejecutar un EA o indicador en el Par-TF desde donde quiero obtener los datos.
Para solucionar esta situación estoy pensando en el uso de variables globales.
Si llego a buen puerto....os lo contaré.
Saludos: