Modificar el tamaño de la fuente

 

Hola :)

Estoy haciendo un indicador muy sencillito para mql4, nada del otro mundo,un indicador que me ayude a identificar el maximo y el mínimo de una determinada franja horaria y me calcule la entradas, el tp y el sl.  Al final he conseguido que me funcione correctamente pero al mostrar la información en el chart como "Print" o "Comment", me aparece con una letra tan pequeña que me quedo bizca para leerlo. ¿hay alguna manera  para  establecer el tamaño de la fuente de ese "Comment" o "Print"? Estoy bucando por "string font size" pero no encuentro nada, seguramente no es la búsqueda correcta


Muchisimas  gracias de antemano

 
MariaJF:

Hola :)

Estoy haciendo un indicador muy sencillito para mql4, nada del otro mundo,un indicador que me ayude a identificar el maximo y el mínimo de una determinada franja horaria y me calcule la entradas, el tp y el sl.  Al final he conseguido que me funcione correctamente pero al mostrar la información en el chart como "Print" o "Comment", me aparece con una letra tan pequeña que me quedo bizca para leerlo. ¿hay alguna manera  para  establecer el tamaño de la fuente de ese "Comment" o "Print"? Estoy bucando por "string font size" pero no encuentro nada, seguramente no es la búsqueda correcta


Muchisimas  gracias de antemano

La fuente, tamaño, etc, de los Print() y Comment() no pueden ser modificados.

Para ello debe utilizar OBJPROP_TEXT y darles el tratamiento de objeto.

Por cierto, he movido este hilo al apartado MQL4. Todo lo relacionado con MQL4/MT4 debe ir allí, ya que los apartados Indicadores, Asesores Expertos, etc, están destinados a MQL5.

Tenga eso en cuenta para próximas ocasiones.

OBJ_TEXT - Object Types - Objects Constants - Constants, Enumerations and Structures - MQL4 Reference
OBJ_TEXT - Object Types - Objects Constants - Constants, Enumerations and Structures - MQL4 Reference
  • docs.mql4.com
OBJ_TEXT - Object Types - Objects Constants - Constants, Enumerations and Structures - MQL4 Reference
 
Disculpe las molestias. Muchas gracias por su respuesta, me pongo a ello  :)
 

Estoy tan pez que ni con el manual en la mano consigo lo que quiero.

Me explico:


Mi indicador con el "Print" en pantalla me funciona perfectamente y me devuelve una serie de datos que yo he averiguado previamente en el código, por  ejemplo

  Print("  ", Symbol() , " : "
                
                                   
                   " Spread: " + DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD)/PipValue , 2),
                   " Nivel de SL : "+  DoubleToStr( NivelSL, Digits),
                   " Maximo: "+  DoubleToStr( Canal_H, Digits),
                   " Minimo: "+  DoubleToStr( Canal_L, Digits),
                   " Distancia entre Mx/Min:"+ DoubleToStr( Distancia, Digits)
                                 
                 
                     
                    );

De las indicaciones del manual para OBJ_TEXT creo entender que lo único que me interesa para mi caso, es decir, para modificar la fuente, es esto 

//+------------------------------------------------------------------+
//| Creating Text object                                             |
//+------------------------------------------------------------------+
bool TextCreate(const long                      chart_ID=0,                // chart's ID
                const string                    name="Text",              // object name
                const int                       sub_window=0,             // subwindow index
                datetime                        time=0,                   // anchor point time
                double                          price=0,                  // anchor point price
                const string                    text="A VER QUE PASA ",   // the text itself
                const string                    font="Arial",             // font
                const int                       font_size=10) ;           // font size
 {
//--- create Text object
   if(!ObjectCreate(chart_ID,name,OBJ_TEXT,sub_window,time,price))
     {
      Print(__FUNCTION__,
            ": failed to create \"Text\" object! Error code = ",GetLastError());
      return(false);
     }
//--- set the text
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- set text font
   ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
//--- set font size
   ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
//--- successful execution
   return(true);  }

Pero lo único que consigo al compilar es  el error undeclared identifier para  chart_id, name,sub_window, time, price, font y font_size. 

¿no están declaradas en bool?

Tambien me da el error 'void' function returns a value  en los dos return


¿Alguien puede darme una pista?   :'( 

Gracias por vuestra atención 

 
MariaJF #:

Estoy tan pez que ni con el manual en la mano consigo lo que quiero.

Me explico:


Mi indicador con el "Print" en pantalla me funciona perfectamente y me devuelve una serie de datos que yo he averiguado previamente en el código, por  ejemplo

De las indicaciones del manual para OBJ_TEXT creo entender que lo único que me interesa para mi caso, es decir, para modificar la fuente, es esto 

Pero lo único que consigo al compilar es  el error undeclared identifier para  chart_id, name,sub_window, time, price, font y font_size. 

¿no están declaradas en bool?

Tambien me da el error 'void' function returns a value  en los dos return


¿Alguien puede darme una pista?   :'( 

Gracias por vuestra atención 

¿Podrías añadir más código?

NO hay ninguna función void en lo que has mandado. 

En cuanto a esto  "Pero lo único que consigo al compilar es  el error undeclared identifier para  chart_id, name,sub_window, time, price, font y font_size". Sí está declarado, al menos en esta parte del código que mandas,

pero sin ver más código no sé ni tan siquiera si el error está en esta parte del código.

 
Enrique Enguix #:

¿Podrías añadir más código?

NO hay ninguna función void en lo que has mandado. 

En cuanto a esto  "Pero lo único que consigo al compilar es  el error undeclared identifier para  chart_id, name,sub_window, time, price, font y font_size". Sí está declarado, al menos en esta parte del código que mandas,

pero sin ver más código no sé ni tan siquiera si el error está en esta parte del código.

Muchísimas gracias Enrique. Disculpame por tardar tanto en responder pero estos dias han sido una locura para mi. Intento explicarme

El Void Ontick , donde hago los cálculos, termina con un Print y un Comment iguales para poder registrar en los logs los resultados que además veo en pantalla. 

Despues de darle muchas vueltas he intentado meter en una variable el Comment para poder modificar la fuente y el tamaño de la fuente

 

 void ObjetoTexto(string ObjetoTexto, int Tipo = OBJ_TEXT,  color ColorText = clrBlack, int WidthText = 100, int StyleText = STYLE_DASH, 
                       string DatosText = Comment(), string FontText = "Arial", int SizeText = 12 , int AnchorLab = ANCHOR_LOWER, double AngleLab = 0, 
                        bool BackgroundLab = false, int Window = 0) 
    
   {   
                       
        if(ZOR >= ZON) 
        ObjectCreate(ObjetoTexto, Tipo, Window, 0, 0);
        ObjectSetInteger(0, ObjetoTexto, OBJPROP_COLOR, ColorText);
        ObjectSetInteger(0, ObjetoTexto, OBJPROP_WIDTH, WidthText);
        ObjectSetInteger(0, ObjetoTexto, OBJPROP_STYLE, StyleText);
        ObjectSetInteger(0, ObjetoTexto, OBJPROP_FONTSIZE, SizeText);
        ObjectSetInteger(0, ObjetoTexto, OBJPROP_ANCHOR, AnchorLab);
        ObjectSetDouble(0, ObjetoTexto, OBJPROP_ANGLE, AngleLab);
        ObjectSetInteger(0, ObjetoTexto, OBJPROP_BACK, BackgroundLab);
        ObjectSetText(ObjetoTexto, DatosText, WidthText, FontText, ColorText);
        
            
                    
      } 

Pero lo sigo haciendo mal porque todavia me manda dos errores  y no he podido probar si funciona: 

'Comment' - constant expected DibujarZona.mq4

'Comment' - wrong parameters count DibujarZona.mq4