Ayuda a la codificación - página 192

 

hola mladen,

Intento desde hace tiempo incorporar, aplicar y hacer algunos códigos a este indicador, tiene pantalla, no refrescar y repintar cuestiones, pero no sé por qué no tiene, ¿podría decirme la razón? pero también tiene una gran debilidad que sólo calcular la señal o el valor después de la barra de velas de cierre, cuando la vela sigue funcionando, no va a cambiar cualquier señal o valor, pero yo sólo uso la misma fórmula exacta de cálculo como antes de los indicadores de prueba CCI enviado antes, ¿por qué tiene tan diferente resultado? lo que el código dentro de haber hecho para hacer tales diferencias? Pero espero que pueda calcular como el suyo, puede calcular los valores y las señales instantáneamente cuando las velas todavía está en marcha (no sólo después de cerrar), de lo contrario las señales se retrasa al menos una vela.

 

Hola Coders,

hola mladen,

Encontré un indicador en mi disco duro que muestra una alerta cuando una línea horizontal es tocada por el precio. Lo he modificado un poco y funciona bien. Pero ahora me gustaría añadir algo. A menudo sucede que una línea exacta no se toca y el precio se invierte algunos pips antes. Ahora podría dibujar muchas líneas más en el gráfico o trato de modificar este indicador que no sólo debe mostrar una alerta cuando la línea en el gráfico se toca, pero unos pocos pips más alto o más bajo. Así que el indicador debe mostrar una alerta cuando los precios tocan la línea en el gráfico +5 pips o la línea -5 pips.

Mi idea es cambiar esta línea:

if (High[0]>=línea && línea>=Low[0]) a algo como esto

if ((High[0]>=línea+0.0005 && línea+0.0005>=Low[0]) || (if (High[0]>=línea-0.0005 && línea-0.0005>=Low[0])

Obviamente eso no funciona.. No tengo ni idea de por qué... :-/

Y otro problema es que esto sólo funcionaría para precios de 1,XXXX. No puedo usar 0.0005 para los pares de Yenes o los Index-CFDs.

Estaría feliz si alguien puede arreglarlo.

¡¡¡Gracias!!!

Aquí está el código:

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

//| LINE_ALERT.mq4

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

extern bool Notification=true;

extern bool displayAlert=true;

cadena de texto;

#property ventana_del_gráfico

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

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

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

int init()

{

//---- indicadores

//----

return(0);

}

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

//| Función de desinicialización de los indicadores personalizada ||.

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

int deinit()

{

//----

//----

return(0);

}

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

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

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

int inicio()

{

//----

if (displayAlert==false) return;

static datetime Time0;

if (Time0 == Time[0]) return; // Una alerta por barra.

for(int iObj = ObjectsTotal() - 1; iObj >= 0; iObj--)

{

string name = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1);

}

else continue; // No HLINE

if (High[0]>=línea && línea>=Low[0])

{

Text = Symbol()+" M "+Period()+" tocó S/R @ "+Close[0];

Alerta(Texto);

Time0 = Time[0]; // No más alertas.

if (Notificación) SendNotification(Texto);

}

}

//----

return(0);

}

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

 
Marbo:
Hola Coders,

hola mladen

Encontré un indicador en mi disco duro que muestra una alerta cuando una línea horizontal es tocada por el precio. Lo he modificado un poco y funciona bien. Pero ahora me gustaría añadir algo. A menudo sucede que una línea exacta no se toca y el precio se invierte algunos pips antes. Ahora podría dibujar muchas líneas más en el gráfico o trato de modificar este indicador que no sólo debe mostrar una alerta cuando la línea en el gráfico se toca, pero unos pocos pips más alto o más bajo. Así que el indicador debe mostrar una alerta cuando los precios tocan la línea en el gráfico +5 pips o la línea -5 pips.

Mi idea es cambiar esta línea:

if (High[0]>=línea && línea>=Low[0]) a algo como esto

if ((High[0]>=línea+0.0005 && línea+0.0005>=Low[0]) || (if (High[0]>=línea-0.0005 && línea-0.0005>=Low[0])

Obviamente eso no funciona.. No tengo ni idea de por qué... :-/

Y otro problema es que esto sólo funcionaría para precios de 1,XXXX. No puedo usar 0.0005 para los pares de Yenes o los Index-CFDs.

Estaría feliz si alguien puede arreglarlo.

¡¡¡Gracias!!!

Aquí está el código:

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

//| LINE_ALERT.mq4

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

extern bool Notification=true;

extern bool displayAlert=true;

cadena de texto;

#property ventana_del_gráfico

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

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

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

int init()

{

//---- indicadores

//----

return(0);

}

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

//| Función de desinicialización de los indicadores personalizada ||.

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

int deinit()

{

//----

//----

return(0);

}

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

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

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

int inicio()

{

//----

if (displayAlert==false) return;

static datetime Time0;

if (Time0 == Time[0]) return; // Una alerta por barra.

for(int iObj = ObjectsTotal() - 1; iObj >= 0; iObj--)

{

string name = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1);

}

else continue; // No HLINE

if (High[0]>=línea && línea>=Low[0])

{

Text = Symbol()+" M "+Period()+" tocó S/R @ "+Close[0];

Alerta(Texto);

Time0 = Time[0]; // No más alertas.

if (Notificación) SendNotification(Texto);

}

}

//----

return(0);

}

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

Marbo

Puedes hacer algo como en th adjunto. Lo único que deberías revisar es lo que debe significar exactamente la distancia en pips de una línea (+ o - en caso de alta o baja)

Archivos adjuntos:
 

¡Genial! ¡Gracias!

 
zilliq:
Hola Mrtool y Mladen,

¿Puede alguno de ustedes explicar cómo se construye el indicador TSV Bullish & Bearish por favor? No he encontrado ninguna información al respecto.

Gracias

Zilliq

Zilliq hay una versión aquí https://www.forex-tsd.com/forum/debates-discussions/116-something-interesting-please-post-here/page299#comment_679505 con el código fuente.

 
cwu:
Si introduzco 0, ¿significa que no hay SL o TP? Gracias de nuevo.

Cwu,

Sí, debería.

 

Chicos

He estado revisando ese TSV Bullish & Bearish y el más antiguo que he encontrado es de 2007. Si esa es la fórmula, entonces no es otra cosa que un activador Gann alta baja en una forma un poco diferente (la esencia - el cálculo - es el mismo)

 

Gracias chicos,

Voy a ver que este fin de semana y voy a publicar el TSV Bearish / alcista que tengo

Soy Vet en Francia y trabajo mañana, así que voy a comprobar el domingo

Ya he codificado un Gann alto y bajo, sobre todo con una versión suave, por lo que debe ser simple

Que tengan un buen fin de semana y gracias por todo

Zilliq

 

Mladen,

Tengo otra pregunta sobre el indicador de alerta de línea. Por el momento funciona con líneas horizontales. También he tratado de implementar Trendlines utilizando OBJ_TREND pero hay una cuestión que no entiendo. Leí en otro foro hace muchos meses que hay que determinar el punto inicial y final de la línea de tendencia. ¿Podríais darme alguna información sobre cómo hacerlo? ¿O es mucho más difícil de lo que imagino?

Un saludo,

Marbo

 
Marbo:
Mladen,

Tengo otra pregunta sobre el indicador de alerta de línea. De momento funciona con líneas horizontales. También he intentado implementar líneas de tendencia utilizando OBJ_TREND pero hay una cuestión que no entiendo. Leí en otro foro hace muchos meses que hay que determinar el punto inicial y final de la línea de tendencia. ¿Podríais darme alguna información sobre cómo hacerlo? ¿O es mucho más difícil de lo que imagino?

Un saludo,

Marbo

Marbo

En realidad no es necesario conocer el inicio y el final. Puedes recuperar los valores de otra manera (utilizando la función ObjectGetValueByShift() que devolverá el precio 0 si busca un precio fuera de la línea de tendencia). Un ejemplo de cómo se puede hacer lo puedes encontrar en este post : https://www.mql5.com/en/forum/177603/page3