Ayuda a la codificación - página 305

 
Boomerang:
Hola

Por favor, alguien puede ayudar a codificar un indicador con los siguientes criterios:

Entrada del usuario:

1- Marco de tiempo: marco de tiempo actual de 1minuto a 4 horas:

2- RSI(periodo): configuración por defecto 14

3- Niveles del RSI:

a- Nivel de subida: de 50 a 100

b- Nivel descendente: de 0 a 50

c- Nivel medio: 50

4- Modo de señal:

a- Modo de venta: muestra sólo señales de venta.

b- Modo de compra: muestra sólo señales de compra.

5- X= unos pocos pips por encima o por debajo del máximo o mínimo del día actual, definidos por el usuario.

Señales en modo venta:

1- Modo de venta del día: muestra sólo señales de venta en el gráfico.

2- Esperar a que el RSI cruce el nivel superior desde abajo y luego retroceda por debajo del nivel medio desde arriba.

3- Dibujar una flecha roja hacia abajo al cierre de la primera vela que cruza el nivel medio desde arriba.

4- Dibujar un punto verde por encima del máximo del día por x pips antes de la señal de la flecha roja.

5- Alerta y posibilidad de correo electrónico (verdadero, falso).

6- Descartar cualquier cruce (arriba, abajo y medio) antes de la hora A y después de la hora B:

a- Por defecto A: 8:15 de la plataforma.

b- Por defecto B: 22:00 de la plataforma.

Señales en modo compra:

1- Modo compra día: muestra sólo la señal de compra en el gráfico.

2- Esperar a que el RSI atraviese el nivel inferior desde arriba y que luego se repliegue por encima del nivel medio desde abajo.

3- Dibujar una flecha verde hacia arriba en el cierre de la primera vela que cruza el nivel medio desde abajo.

4- Dibujar un punto rojo por debajo del mínimo del día por X pips antes de la señal de la flecha verde.

5- Alerta y posibilidad de correo electrónico (verdadero, falso).

6- Descartar cualquier cruce (alcista, bajista y medio) antes de la hora A y después de la hora B:

a- Por defecto A: 8:15 de la plataforma.

b- Por defecto B: 21:00 de la plataforma.

Ejemplo:

Gracias de antemano

Boomerang

¿Por qué no has tomado también la primera señal (misma condición que la señal que has marcado)?

 

heiken_ashih_sw_mtf_chrt.mq4

¡hola, Mr.Tools amablemente hizo esto para mí hace un tiempo, pero ahora no compila en la nueva MT4, los errores son con el código timeframetoString, diciendo "char" no es válido, etc!

Por favor, ¿pueden arreglarlo?

todavía funciona visualmente, pero tengo una segunda versión para "ventana separada" que no sobrevivió a la transición correctamente, dejó sólo el archivo .ex4 que funciona pero creo que las alertas dejaron de funcionar, así que estoy tratando de recompilarlo de nuevo para comprobar. Necesito el mismo para la ventana principal y la ventana separada. Gracias.

Archivos adjuntos:
 
zigflip:
heiken_ashih_sw_mtf_chrt.mq4

¡hola, Mr.Tools amablemente hizo esto para mí hace un tiempo, pero ahora no compila en la nueva MT4, los errores son con el código timeframetoString, diciendo "char" no es válido, etc!

Por favor, ¿pueden arreglarlo?

sigue funcionando visualmente, pero tengo una segunda versión para "ventana separada" que no sobrevivió a la transición correctamente, sólo quedó el archivo .ex4 que funciona pero creo que las alertas dejaron de funcionar, así que estoy tratando de recompilarlo de nuevo para comprobarlo. Necesito el mismo para la ventana principal y la ventana separada. Gracias.

Zigflip esta es la versión del gráfico hecho compatible, cualquier posibilidad que usted tiene la versión de la ventana separada, por lo que puede hacer que sea compatible también.

Archivos adjuntos:
 

Por ejemplo, si trae una alerta de compra en un par, después de unas 7 velas, traerá la misma alerta de compra en el mismo par. Quiero que funcione cuando traiga una alerta de compra en un par, no traerá una señal de compra de nuevo en ese par hasta después de haber entregado una señal de venta:

#property indicator_chart_window

#propiedad indicator_buffers 2

#property indicator_color1 Lime

#property indicator_color2 Red

//--- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[];

//variable externa......

extern int barsToProcess=100;

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

//| Función de inicialización del indicador personalizada ||.

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

int init()

{

//---- indicadores

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0,217);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexEmptyValue(0,0.0);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1,217);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexEmptyValue(1,0.0);

//----

return(0);

}

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

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

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

int deinit()

{

//----

//----

return(0);

}

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

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

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

int inicio()

{

int counted_bars=IndicatorCounted(),

límite;

if(counted_bars>0)

barras_contadas--;

limit=Barras_contadas;

si(límite>barrasParaProcesar)

limit=barrasParaProcesar;

for(int i=0;i<limit;i++)

{

double ema13=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);

double ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0);

double b4ema13=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,1);

double b4ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);

double mom=iMomentum(NULL,0,14,PRECIO_CIERRE,0);

double b4mom=iMomentum(NULL,0,14,PRECIO_CIERRE,1);

}

static datetime lastAlerted=0;

static string AlertType1="";

static string AlertType2="";

//subir alertas

if((ema5>ema13)&&(ema5>b4ema5)&&(ema13>b4ema13)&&(mom>b4mom)&&(mom>98.6591)&&(lastAlerted!=Time[0])&&(AlertType1!="Buy")){

ExtMapBuffer1=Alto+5*Punto;

}else

ExtMapBuffer1=0,0;

Alert(Symbol()," ",Period(), "M Price UP");

/alertas de venta

if((ema5<ema13)&&(ema5<b4ema5)&&(ema13<b4ema13)&&(mom<b4mom)&&(mom<100.6872)&&(lastAlerted!=Time[0])&&(AlertType2!="Sell")){

ExtMapBuffer2=Low-5*Point;

}else

ExtMapBuffer2=0,0;

Alert(Símbolo()," ",Periodo(), "M Precio a la baja");

return(0);

}

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

 
mrtools:
Zigflip esta es la versión del gráfico hecha compatible, cualquier posibilidad que usted tiene la versión de la ventana separada, por lo que puede hacer que sea compatible también.

¡Gracias!

Sólo tengo el archivo .ex4 para la versión de ventana separada y no sé cómo ha ocurrido, pero no encuentro el .mq4 en ningún sitio.

Acabo de cambiar la versión del gráfico antes de hacer la versión separada, con sólo cambiar la línea en la parte superior - la propiedad del indicador - de chart_window a la ventana separada - ¿no está bien?

 

Hola chicos,

Necesito vuestra ayuda. ¿Cómo puedo enviarles una copia de un indicador que necesito que me modifiquen? Es que no sé cómo hacerlo. Gracias por su tiempo.

Steve,

 
Genesisman:
Hola Chicos,

Necesito su ayuda. ¿Cómo puedo enviarle una copia de un indicador que necesito que modifique para mí? Es que no sé cómo hacerlo. Gracias por su tiempo.

Steve,

Si se trata de un código público, simplemente publícalo aquí (pulsa el "go advanced" y allí encontrarás cómo adjuntar un archivo)

 
Mastercash:
Por ejemplo, si trae una alerta de compra en un par, después de unas 7 velas, traerá la misma alerta de compra en el mismo par:

#property ventana_del_gráfico

#propiedad indicator_buffers 2

#property indicador_color1 Cal

#property indicador_color2 Rojo

//--- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[];

//variable externa......

extern int barsToProcess=100;

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

//| Función de inicialización del indicador personalizada ||.

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

int init()

{

//---- indicadores

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0,217);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexEmptyValue(0,0.0);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1,217);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexEmptyValue(1,0.0);

//----

return(0);

}

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

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

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

int deinit()

{

//----

//----

return(0);

}

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

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

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

int inicio()

{

int counted_bars=IndicatorCounted(),

límite;

if(counted_bars>0)

barras_contadas--;

limit=Barras_contadas;

si(límite>barrasParaProcesar)

limit=barrasParaProcesar;

for(int i=0;i<limit;i++)

{

double ema13=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);

double ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0);

double b4ema13=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,1);

double b4ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);

double mom=iMomentum(NULL,0,14,PRECIO_CIERRE,0);

double b4mom=iMomentum(NULL,0,14,PRECIO_CIERRE,1);

}

static datetime lastAlerted=0;

static string AlertType1="";

static string AlertType2="";

//subir alertas

if((ema5>ema13)&&(ema5>b4ema5)&&(ema13>b4ema13)&&(mom>b4mom)&&(mom>98.6591)&&(lastAlerted!=Time[0])&&(AlertType1!="Buy")){

ExtMapBuffer1=Alto+5*Punto;

}else

ExtMapBuffer1=0,0;

Alert(Symbol()," ",Period(), "M Price UP");

/alertas de venta

if((ema5<ema13)&&(ema5<b4ema5)&&(ema13<b4ema13)&&(mom<b4mom)&&(mom<100.6872)&&(lastAlerted!=Time[0])&&(AlertType2!="Sell")){

ExtMapBuffer2=Low-5*Point;

}else

ExtMapBuffer2=0,0;

Alert(Símbolo()," ",Periodo(), "M Precio a la baja");

return(0);

}

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

Esta sería una forma de hacerlo.

Archivos adjuntos:
m.mq4  4 kb
 

Estimado Mrtools

En el indicador adjunto 'macd signal line' los cálculos son en SMA, ¿se puede calcular en EMA (como Gerald Appel MACD)?

En algunos periodos de tiempo el MACD no se muestra correctamente, ¿es posible añadir un multiplicador para una mejor visualización?

Gracias por cualquier ayuda

secretcode

Archivos adjuntos:
macdcci.mq4  4 kb
 
secretcode:
Estimado Mrtools

En el indicador adjunto 'línea de señal macd' los cálculos son en SMA, ¿se puede calcular en EMA (como Gerald Appel MACD)?

En algunos marcos de tiempo el MACD no se muestra correctamente, ¿es posible añadir un multiplicador en él para una mejor visualización?

Gracias por cualquier ayuda

secretcode

Hola Secretcode, he añadido opciones de modo para ma's rápidos, lentos y de señal para el macd, y he añadido el multiplicador.

Archivos adjuntos: