Añadir color a un indicador

 

Me gustaría imprimir un cuadrado rojo (pequeño) en el gráfico cuando el siguiente marco de tiempo más alto está bajando. Y un cuadrado blanco si está subiendo.

¿Cómo puedo hacerlo? Una vez que lo tenga claro, podré añadir otros marcos temporales y diferentes barras.

mi código hasta ahora es

// 30 min actual

double open.30.0 =iCustom(NULL,30,"Heiken Ashi",0,2,0); //Apertura anterior

double close.30.0 =iCustom(NULL,30, "Heiken Ashi",0,3,0); //Cierre anterior

bool Up.30.0 = (close.30.0>open.30.0);

bool Bajada.30.0 = (cierre.30.0<abre.30.0);

Comentario ("\n 30 min de corriente al alza o a la baja " + Up.30.0 +" "+ Down.30.0);

Pero en lugar de que el comentario tenga un "0" o un "1", quiero que muestre un cuadrado o punto rojo o blanco.


Cualquier ayuda se agradecería... No encuentro nada buscando en este sitio o en la web.

 
mrchuckw:

Me gustaría imprimir un cuadrado rojo (pequeño) en el gráfico cuando el siguiente marco de tiempo más alto está bajando. Y un cuadrado blanco si está subiendo.

¿Cómo puedo hacerlo? Una vez que lo tenga claro, podré añadir otros marcos temporales y diferentes barras.

mi código hasta ahora es

// 30 min actual

double open.30.0 =iCustom(NULL,30, "Heiken Ashi",0,2,0); //Apertura anterior

double close.30.0 =iCustom(NULL,30, "Heiken Ashi",0,3,0); //Cierre anterior

bool Up.30.0 = (close.30.0>open.30.0);

bool Bajada.30.0 = (cierre.30.0<abre.30.0);

Comentario ("\n 30 min de corriente al alza o a la baja " + Up.30.0 +" "+ Down.30.0);

Pero en lugar de que el comentario tenga un "0" o un "1", quiero que muestre un cuadrado o punto rojo o blanco.


Cualquier ayuda se agradecería... No encuentro nada buscando en este sitio o en la web.

Hola mrchuckw,

Busque en este sitio y en otros foros de FX los EA que tienen código ObjectCreate...

Utiliza ObjectCreate para colocar las marcas de color donde quieras.

Espero que esto ayude,

Robert


 
Los indicadores de color utilizan dos buffers. Establece uno al valor y el otro al empty_value. Mira un poco de código del indicador en la base de código
 
¡Gracias Robert!
 

Estoy usando el siguiente código... ¿por qué no pone un rectángulo blanco en mi gráfico?

ObjectCreate("cuadrado",OBJ_RECTANGLE,0,0,0);

ObjectSet("square",OBJPROP_XDISTANCE,193);

ObjectSet("square",OBJPROP_YDISTANCE,48);

ObjectSet("square",OBJPROP_COLOR,White);

 

mrchuckw:

Estoy usando el siguiente código... ¿por qué no pone un rectángulo blanco en mi gráfico?

ObjectCreate("cuadrado",OBJ_RECTANGLE,0,0,0);

ObjectSet("square",OBJPROP_XDISTANCE,193);

ObjectSet("square",OBJPROP_YDISTANCE,48);

ObjectSet("cuadrado",OBJPROP_COLOR,Blanco);

OBJ_RECTANGLE 16 Rectángulo. Utiliza 2 coordenadas. Una coordenada es el tiempo y el precio... así que...

ObjectCreate("square",OBJ_RECTANGLE, 0, datetime time1, double price1, datetime time2, double price2);

ObjectSet("square",OBJPROP_COLOR,White);



Tienes que rellenar los valores de . . datetime time1, double price1, datetime time2, double price2

O quizás quieras usar una etiqueta, OBJ_LABEL y luego usar un wingding para el cuadrado ? https://docs.mql4.com/constants/wingdings

 

Ok... creo. No quiero que esté orientado a la fecha/hora... No creo.

Esto es lo que quiero. En la parte inferior del gráfico, debajo de la barra actual, quiero colocar un cuadrado (wingding 110 ?) que puedo llenar con

rojo, si el siguiente marco de tiempo va hacia abajo, o llenar con blanco si va hacia arriba.

Luego, cuando esa barra se cierre y la siguiente comience, quiero que el cuadrado se mueva debajo de la barra anterior, y un nuevo cuadrado debajo de la nueva barra...

¿tiene sentido?

Entonces, ¿cómo se vería la línea ObjectCreate()? ¿Cómo lo coloco en el gráfico donde lo quiero, o debo usar una ventana aparte?

Gracias por su ayuda.

 
mrchuckw:

Ok... creo. No quiero que esté orientado a la fecha/hora... No creo.

Esto es lo que quiero. En la parte inferior del gráfico, debajo de la barra actual, quiero colocar un cuadrado (wingding 110 ?) que puedo llenar con

rojo, si el siguiente marco de tiempo va hacia abajo, o llenar con blanco si va hacia arriba.

Luego, cuando esa barra se cierre y la siguiente comience, quiero que el cuadrado se mueva debajo de la barra anterior, y un nuevo cuadrado debajo de la nueva barra...

¿tiene sentido?

Entonces, ¿cómo se vería la línea ObjectCreate()? ¿Cómo lo coloco en el gráfico donde lo quiero, o debo usar una ventana aparte?

Gracias por tu ayuda.

Ah OK, así que quieres un cuadrado debajo de cada barra, ya sea blanco o rojo dependiendo de un indicador... no uses Objetos, usa buffers de indicadores. ( https://docs.mql4.com/customind )

Cree 2 buffers de indicadores, uno para los cuadrados rojos y otro para los blancos, configure los buffers para que tengan valores vacíos ( SetIndexEmptyValue( int index, double value) ) para obtener el cuadrado debajo de la barra utilice el valor bajo de la barra - 10 pips . . . esto es básicamente lo que WHRoeder estaba consiguiendo.

 
Pero si lo pongo 10 pips por debajo del precio, ¿no saltará? quizás deba ponerlo en un windo separado. Quiero el cuadrado en el mismo lugar en el gráfico, no importa lo que las barras están haciendo.
 
mrchuckw:
Pero si lo pongo 10 pips por debajo del precio, ¿no saltará? tal vez deba ponerlo en un windo separado.
Puedes ponerlo en una ventana separada si quieres... lo que dije fue 10 pips por debajo del Low de la barra... no por debajo del precio actual. La mayor parte del código que necesitas es común, si lo haces a una ventana separada es fácil cambiarlo a una posición debajo de la barra. .
 
OK... déjame jugar con esto un rato. ¡Aprecio toda la ayuda!