Ayuda a la codificación - página 154

 

Re

Quiero intentar tener un resultado para 3 líneas medias he codificado esto pero no funciona ¿alguien puede ayudarme? Gracias por su respuesta

#property copyright ""

#property link ""

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Amarillo

//---- parámetros de entrada

extern int longitud = 14;

extern int longitud2 = 21;

extern int lenght3 =38;

double ExtMapBuffer1[];

int ExtCountedBars=0;

//+------------------------------------------------------------------+

//| Función de inicialización de los indicadores personalizados ||.

//+------------------------------------------------------------------+

int init()

{

//---- indicadores

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Función de desinicialización del indicador personalizada ||

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Función de iteración del indicador personalizada ||

//+------------------------------------------------------------------+

int inicio()

{

if(Bars<=1) return(0);

ExtCountedBars=IndicadorContado();

//---- comprobar posibles errores

if (ExtCountedBars<0) return(-1);

//---- se vuelve a contar la última barra contada

if (ExtCountedBars>0) ExtCountedBars--;

int pos=Barras-1;

if(ExtCountedBars>1) pos=Bars-ExtCountedBars-1;

//---- bucle de cálculo principal

while(pos>=0)

{

double median = (iCustom(NULL,0, "indicator1",length,0,pos)+

iCustom(NULL,0, "indicador2",longitud2,0,pos)+

iCustom(NULL,0, "indicador3",longitud3,0,pos))/3,0;

}

return(median);

}

//+------------------------------------------------------------------+

 
bixwin:
Quiero tratar de tener resultados para 3 líneas de promedios he codificado esto pero no funciona puede alguien ayudarme

#propiedad copyright ""

#propiedad enlace ""

#propiedad ventana_gráfica_del_indicador

#propiedad indicator_buffers 1

#property indicator_color1 Amarillo

//---- parámetros de entrada

extern int longitud = 14;

extern int longitud2 = 21;

extern int lenght3 =38;

double ExtMapBuffer1[];

int ExtCountedBars=0;

//+------------------------------------------------------------------+

//| Función de inicialización de los indicadores personalizados ||.

//+------------------------------------------------------------------+

int init()

{

//---- indicadores

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Función de desinicialización del indicador personalizada ||

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Función de iteración del indicador personalizada ||

//+------------------------------------------------------------------+

int inicio()

{

if(Bars<=1) return(0);

ExtCountedBars=IndicadorContado();

//---- comprobar posibles errores

if (ExtCountedBars<0) return(-1);

//---- se vuelve a contar la última barra contada

if (ExtCountedBars>0) ExtCountedBars--;

int pos=Barras-1;

if(ExtCountedBars>1) pos=Bars-ExtCountedBars-1;

//---- bucle de cálculo principal

while(pos>=0)

{

double median = (iCustom(NULL,0, "indicator1",length,0,pos)+

iCustom(NULL,0, "indicador2",longitud,,0,pos)+

iCustom(NULL,0, "indicador3",longitud,0,pos))/3,0;

}

return(mediana);

}

//+------------------------------------------------------------------+

bixwin

Ya publiqué una pregunta: ¿cuáles son los nombres exactos de los indicadores personalizados que deseas utilizar en el cálculo (es decir, no se llaman "indicador1", "indicador2" e "indicador3", no es así)?

Tienes que sustituir esos nombres por los nombres exactos de los indicadores que deseas utilizar en una llamada a iCustom(), o de lo contrario no hará nada. Además, tu función de inicio debería ser así (de nuevo, tienes que reemplazar los nombres con nombres reales) :

int start()

{

if(Bars<=1) return(0);

int ExtCountedBars=IndicatorCounted();

if (ExtCountedBars<0) return(-1);

if (ExtCountedBars>0) ExtCountedBars--;

int pos=Bars-1;

if(ExtCountedBars>1) pos=Bars-ExtCountedBars-1;

while(pos>=0)

{

ExtMapBuffer1[pos] = (iCustom(NULL,0,"indicator1",length,0,pos)+

iCustom(NULL,0,"indicator2",length,0,pos)+

iCustom(NULL,0,"indicator3",length,0,pos))/3.0;

}

return(0);

}
 

Gracias Mladen, el nombre exacto es "indicador1" para el primer indicador, "indicador2" para el segundo y finalmente "indicador3" para el último. ¿Esto es lo que quieres?

 
bixwin:
Gracias Mladen, el nombre exacto es "indicator1" para el primer indicador, "indicator2" para el segundo y finalmente "indicator3" para el último. ¿Esto es lo que quieres?

bixwin

Por favor, vea el código para la función de inicio en el post anterior de la mía

 

Gracias Mladen por tu rápida respuesta,

no funciona,

Creo que la función de inicio no es buena

¿Puedes publicar un ejemplo de 3 indicadores personalizados?

 
bixwin:
Gracias Mladen por tu rápida respuesta,

no funciona,

creo que la función de inicio no es buena

¿Puedes poner un ejemplo de 3 indicadores personalizados?

bixwind,

No sé qué hacen el "indicador1", el "indicador2" y el "indicador3". Hice estos que en realidad sólo calculan una media móvil y los usé en el indicador _test (que hace ese cálculo de la mediana del que partías) y funciona bien (mira cómo se ve en la terminal). Así que si los parámetros de tus indicadores personalizados están bien, debería funcionar bien, ya que el indicador de prueba también funciona bien

Archivos adjuntos:
_test.mq4  1 kb
test.gif  41 kb
 

Muchas gracias Mladen, ¡¡¡funciona!!!

 

Hola, un poco nuevo en la codificación de mt4 y necesito un poco de ayuda.

Cómo mostrar la moneda y la etiqueta de marco de tiempo como estos en la esquina inferior izquierda:-

La etiqueta de marco de tiempo también cambiará si me muevo de otro marco de tiempo.

Archivos adjuntos:
eu1.png  64 kb
eu2.png  43 kb
 
cawat:
Hola, un poco nuevo en la codificación de mt4 y necesito un poco de ayuda.

Cómo mostrar la moneda y la etiqueta de marco de tiempo como estos en la esquina inferior izquierda:-

La etiqueta del marco de tiempo también cambiará si me muevo de otro marco de tiempo.

cawat

Esto lo hará. Usted puede especificar varias propiedades de la etiqueta de tiempo-símbolo utilizando parámetros

Archivos adjuntos:
 
mladen:
Marco con respecto a la construcción de EA - ver estos hilos

:https://www.mql5.com/en/forum/173136 https://www.mql5.com/en/forum/173171

Estimado MLaden,

Gracias por la ayuda, manténgase en contacto.

Saludos Marco

Razón de la queja: