Problema con mi primer indicador

Foro dedicado a todo lo relacionado con la versión 4 de la plataforma de Metaquotes.
Responder
carol
Mensajes: 26
Registrado: 25 Abr 2017 16:53

Problema con mi primer indicador

Mensaje por carol »

Un saludo a todos.

Me estoy iniciando en programación Mql4 , he realizado un primer indicador que me marca perfectamente el Máximo y el Mínimo de un periodo de tiempo determinado pero :( no aparecen los datos en la ventana de datos. ¿alguien puede decirme donde está el fallo? Me estoy volviendo tarumba, busco, busco pero no consigo verlos por muchas modificaciones que hago. Mil gracias de antemano
Adjuntos
Zona.mq4
(18.56 KiB) Descargado 35 veces
IndicadorZona.jpg
dahon
Mensajes: 1433
Registrado: 11 Dic 2018 08:57

Re: Problema con mi primer indicador

Mensaje por dahon »

Hola,

La ventana de datos creo que te da datos de la vela del cursor. En tu caso vela m1 de las 11:28

Saludos
sfriendsm2
Mensajes: 36
Registrado: 24 Jun 2020 17:20

Re: Problema con mi primer indicador

Mensaje por sfriendsm2 »

Lo que sale en ventana de datos es el valor que tienen los buffers que has declarado y rellenado en el programa. El problema es que tienes muchos puntos donde tus buffers están a valor vacío y por tanto no sale nada.

Si haces este pequeño cambio ya te va a salir valor en los buffers y lo que hace es arrastrar el valor de máximo y mínimo mientras no lo cambies. A ver si con esto te vale, porque realmente el valor de los buffers no coincide con las líneas pintadas.

.....
else
{
// SoporteBuffer = EMPTY_VALUE;
SoporteBuffer = SoporteBuffer[i+1];
}

......


else
{
// ResistenciaBuffer = EMPTY_VALUE;
ResistenciaBuffer = ResistenciaBuffer[i+1];
}
}

Saludos.
Adjuntos
Zona.mq4
Cambios realizados
(18.67 KiB) Descargado 36 veces
Así se vería el indicador si lo configuras con los colores amarillo y aqua.
Así se vería el indicador si lo configuras con los colores amarillo y aqua.
carol
Mensajes: 26
Registrado: 25 Abr 2017 16:53

Re: Problema con mi primer indicador

Mensaje por carol »

Hola sfriendsm2 :D muchísimas gracias por responder.

Efectivamente, con esa corrección aparecen los datos en la ventana de datos , pero hay un problema, tanto el soporte como la resistencia de ese periodo de tiempo aparecen en niveles equivocados

He cambiado el color del soporte a rojo para verlo mejor en mi plantilla

Yo quiero averiguar el maximo y el mínimo, por ejemplo, del periodo comprendido entre las 8 y las 11:30, que para el eur/usd de hoy correspondian a los niveles 1.00459 y 0.99988

Pero los niveles donde se dibujan ahora el soporte y la resistencia son 1.0034 y 0.9946 :?
Adjuntos
sfriendsm2.jpg
carol
Mensajes: 26
Registrado: 25 Abr 2017 16:53

Re: Problema con mi primer indicador

Mensaje por carol »

Hola dahon, muchisimas gracias por tu respuesta :D

La imagen que he subido es una captura para intentar explicar que los niveles de soporte y resitencia son correctos, pero que el fallo está en la lectura de los buffer. Efectivamente, cuando se pasa el cursor se leen los valores del maximo y el mínimo, pero en el gráfico, no en la ventana de datos

Y yo necesito "leer" esas dos variables para poderlas pasar a un ea que ya tengo configurado :'(

sfriendsm2
Mensajes: 36
Registrado: 24 Jun 2020 17:20

Re: Problema con mi primer indicador

Mensaje por sfriendsm2 »

Hola de nuevo.

La verdad es que me es imposible seguir el razonamiento de tu código, así que simplemente te he hecho una función que te calcula esos datos y los asigna a los buffers. Evidentemente se puede mejorar mucho esta función ya que en los perídos fuera de hora no es necesario calcularlo, pero para que te valga como punto de partida, creo que te vale. Tampoco tiene en cuenta hora de inicio posterior a la hora de fin, que sería para calcular períodos nocturnos.

Sl2.
Adjuntos
Zona.mq4
(22.17 KiB) Descargado 37 veces
carol
Mensajes: 26
Registrado: 25 Abr 2017 16:53

Re: Problema con mi primer indicador

Mensaje por carol »

Hola sfriendsm2 . Te agradezco muchísimo el interés que te has tomado y el tiempo que has empleado para solucionarlo, de verdad, muchísimas gracias, estaba totalmente atascada.

He optado por hacer una combinación de los dos códigos. Te explico:

Por una parte, tu código identifica las variables exactamente como yo quiero ( espero ser capaz de pasarlas al expert y lograr hacer el backtesting) :roll:

Por otra, mi código dibuja las líneas del periodo que me interesa, no son dos líneas sin fin tipo ema, dibujan solo el periodo diario que es lo que pretendia.

union.jpg

Es cierto que hay un periodo de madrugada, entre dos dias, que queda en el aire, pero mi estrategia, por el momento, es muy sencilla y no requiere estudiar esos periodos, por lo que no me voy a complicar la vida.

Ahora, lo primero que tendré que hacer es depurar un poco el código porque veo que la plataforma va muy lenta. Si acaso, mas adelante, una vez haya comprobado las estadísticas, intente hacer algo mas universal con un input datetime Channel_Detection_Time_Start y un input datetime Channel_Detection_Time_End

De momento me has solucionado un enorme atasco en el que estaba sumida desde hace muchos dias, dándo vueltas sin parar, buscando el error. Ahora puedo seguir adelante. ¡¡¡¡¡¡ MUCHISIMAS GRACIAS !!!!!!!!!!! :D :D
Última edición por carol el 01 Sep 2022 12:36, editado 2 veces en total.
sfriendsm2
Mensajes: 36
Registrado: 24 Jun 2020 17:20

Re: Problema con mi primer indicador

Mensaje por sfriendsm2 »

Me alegro que te sirva.

Empezar es lo más difícil, así que de aquí en adelante va todo más fluido.

Con pequeños ajustes conseguirás que la plataforma vaya más rápido. Sólo tienes que identificar aquellos momentos en los que no necesitas calcular ese máximo y mínimo, sino coger el que está activov actualmente.

Ejemplos:
1) Fuera de inicio y fin, el máximo y mínimo se mantienen constanten, no hay que calcularlos
2) En cada tick --> Una vez calculado el dato actual, si estás en período dentro de inicio y fin, sólo debes comprobar si alguna de las velas del limit hasta la 0 tiene un máximo o mínimo mejor que los actuales, sin recorrer todo conjunto de velas
3) Si no necesitas el histórico, plantea el bucle empezando desde la vela 0 hasta que acabes el primer tramo que genera tus máximos y mínimos, el resto, si no los necesitas, no los calcules.

Ahora mismo no se me ocurre ninguno más, pero sólo con estos ya afinas mucho. Ten en cuenta que aunque te parezca poco, cuando abres 10 ventanas con este indicador, va sumando tiempos de ejecución.

Sl2.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Metatrader 4”