Ayuda con iCustom en Metatrader

Foro dedicado a todo lo relacionado con la versión 4 de la plataforma de Metaquotes.
Responder
Avatar de Usuario
nostrasladamus
Mensajes: 313
Registrado: 09 Feb 2009 13:27
Ubicación: Sistema Referencia Inercial

Ayuda con iCustom en Metatrader

Mensaje por nostrasladamus »

Hola, necesito ayuda con la funcion iCustom.

Tengo un EA que quiero que actue segun los valores de 3 indicadores.
Bien, leo el valor de un indicador con:

double Indic1=iCustom(Symbol(),0,"Indic1",periodp,metodo,0,1);

es decir, leo la 1ª curva de dicho indicador (0), el valor en la ultima barra acabada (1)

Al ejecutar el EA me dibuja, pero solo uno de los 3 indicadores.
Me imagino, que como leo 3 indicadores en un mismo EA, cada indicador debera tener una curva en un buffer distinto, para que no se solape, no?
Es decir, el indicador 1, por si solo (cuando se ejecuta solo) tiene por ejemplo curvas 0 y 1.
El indicador 2, tiene por ejemplo, 3 curvas por si solo: 0, 1 y 2.
Y el indicador 3 tiene otras 2 curvas.

Empleados por si solos, no hay problema, pero si los voy llamando desde un EA, debo modificar las curvas en cada Indicador para evitar que dentro de mi EA machaque al escribir en el mismo buffer?
(buff, que mal lo he explicado! :? )

Salu2,
Avatar de Usuario
nostrasladamus
Mensajes: 313
Registrado: 09 Feb 2009 13:27
Ubicación: Sistema Referencia Inercial

Mensaje por nostrasladamus »

Solucionado,

Si un EA llama a diferentes indicadores a traves de iCustom, hay que tener cuidado, ya que si el Indicador1 usa p.e. los buffers 0,1 y 2, el Indicador2 no los debe usar, pues si no los machacaria!, por tanto lo deberemos modificar (ya que normalmente los indicadores comienzan en el buffer 0)

Yo ya me he entendido.... :D
Si vis pacem, para bellum.
Dios me libre de los mansos, que de los fieros ya me libro yo.
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Mensaje por nstrader »

Discrepo, creo que ese no es tu error, los buffers no se solapan, si que puedes repetir el número de buffer en llamadas a indicadores diferentes. De la forma que lo planteas estas limitando los Ea's porque solo podrías llamar a 8 buffers que es el máximo que permite un solo indicador.
Y te aseguro que puedes llamar a mas de 100 indicadores en un solo EA.
Un saludo
Avatar de Usuario
nostrasladamus
Mensajes: 313
Registrado: 09 Feb 2009 13:27
Ubicación: Sistema Referencia Inercial

Mensaje por nostrasladamus »

Seguro nstrader?, quiero decir, te refieres a llamadas a indicadores distintos o a cientos de llamadas a un indicador con doferentes parametros? Esto ultimo esta claro.

Lo de llamar a 3 (lo que hecho yo) indicadores lo consegui arreglar haciendo que los buffers no se solapasen, lo que no quiere decir que esa sea la unica solucion.

O sea, que segun tu, puedo llamar al Indicador1, que dibuja una curva con el Buffer1, y seguido al Indicador2 que dibuja otra curva con su Buffer1? no hay problema en que en mi EA se solapen esos 2 Indicadores?

S2,
Si vis pacem, para bellum.
Dios me libre de los mansos, que de los fieros ya me libro yo.
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Mensaje por nstrader »

nostrasladamus escribió:Seguro nstrader?, quiero decir, te refieres a llamadas a indicadores distintos o a cientos de llamadas a un indicador con doferentes parametros?
Me refiero a los dos planteamientos.

O sea, que segun tu, puedo llamar al Indicador1, que dibuja una curva con el Buffer1, y seguido al Indicador2 que dibuja otra curva con su Buffer1? no hay problema en que en mi EA se solapen esos 2 Indicadores?
No hay ningún problema, falta saber que entiendes por que se solapen dos indicadores.

Ten en cuenta que los datos matemáticos que obtienes de un indicador pueden ser erroneos y tambien que no sepas que te puede dar mas datos de los que puedas ver visualmente en la gráfica, esto todo depende de la calidad con que esté programado el indicador y tambien que sepas traducir esos datos para que los use un asesor experto.

Por ejemplo un valor de un indicador puede ser EMPTY_VALUE y esto le sirve para que no grafique nada. La función iCustom devolverá en este caso un número entero como 96564413 en lugar de 0 que es lo que pretendías, en este caso habría que modificar el indicador para que te de 0, gráficamente el indicador te dibujará una linea vertical en ese punto pero para el experto le valdrá el dato. En este caso la solución podria ser añadirle al indicador una variable externa como bool expert=false y poner condiciones para que se modifique EMPTY_VALUE por 0 y viceversa en funcion de la variable expert.

Bueno así voy a ciegas, necesitaria estudiar el caso concreto para ver el error.
Un saludo

Avatar de Usuario
nostrasladamus
Mensajes: 313
Registrado: 09 Feb 2009 13:27
Ubicación: Sistema Referencia Inercial

Mensaje por nostrasladamus »

Gracias nstrader,

El error era 2 cosas diferentes en 2 indicadores que me despistaba mucho. Los indicadores los llamaba de forma independiente y funcionaban, pero llamados desde el EA no, por eso me mosqueaba.

Todavia hay una cosa que no me cuadra, pero eso ya no se puede explicar y estoy casi seguro que es por un error mio.

Salu2,
Si vis pacem, para bellum.
Dios me libre de los mansos, que de los fieros ya me libro yo.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Metatrader 4”