Errores, fallos, preguntas - página 2533

 
Georgiy Merts:

En su caso, organice un bucle while() en lugar de un bucle for().

Comprueba si hay alguna señal de fin de parpadeo.

Pero sobre el "parpadeo con frecuencia variable" - algo extraño... No veo ningún error sobre la marcha, debería parpadear con bastante frecuencia.

Es cierto que dudo que sea prudente crear y eliminar objetos gráficos en lugar de hacerlos invisibles, pero parece que no se puede hacer invisible un objeto... Así que sólo queda borrar.

Gracias por la respuesta, ahora funciona. Pero el parpadeo es igual de caótico, grabado como ocurre. Y he sustituido la eliminación por el cambio del color de la ETIQUETA a negro.



int i = 1;
   while(i > 0)  //true?
   {      
      if(!ObjectCreate(0,"Blink",OBJ_LABEL,0,0,0))
   {
      Print("Not Create! Error - ",GetLastError());
   }
   ObjectSetInteger(0,"Blink",OBJPROP_XDISTANCE,50+i);
   ObjectSetInteger(0,"Blink",OBJPROP_YDISTANCE,50);
   ObjectSetInteger(0,"Blink",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
   ObjectSetString(0,"Blink",OBJPROP_TEXT,"Test");
   ObjectSetString(0,"Blink",OBJPROP_FONT,"Arial");
   ObjectSetInteger(0,"Blink",OBJPROP_FONTSIZE,18);
   ObjectSetDouble(0,"Blink",OBJPROP_ANGLE,0);
   ObjectSetInteger(0,"Blink",OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
   ObjectSetInteger(0,"Blink",OBJPROP_COLOR,Red);
   ObjectSetInteger(0,"Blink",OBJPROP_BACK,false);
   ObjectSetInteger(0,"Blink",OBJPROP_SELECTABLE,true);
   ObjectSetInteger(0,"Blink",OBJPROP_SELECTED,false);
   ObjectSetInteger(0,"Blink",OBJPROP_HIDDEN,true);
   ObjectSetInteger(0,"Blink",OBJPROP_ZORDER,0);
   
   Sleep(200);
   
   ObjectSetInteger(0,"Blink",OBJPROP_COLOR,Black);
   
   Sleep(200);
   } 
 
Влад:

Gracias por la respuesta, ya funciona. Pero el parpadeo es el mismo caótico, grabado como sucede. Y he sustituido el borrado por el cambio del color de la ETIQUETA a negro.


Ya ves que depende de la garrapata. Este código debería hacerse en OnTimer(), no en OnTick().

Y no tienes que colorearlo de negro - los objetos tienen una propiedad de visibilidad(OBJPROP_TIMEFRAMES) - sólo tienes que gestionar su visibilidad.

Los valores de los plazos, en los que el objeto debe ser visible, se establecen mediante un conjunto de banderas. En tu caso, necesitas establecer 0( OBJ_NO_PERIODS ) - el objeto no es visible en ninguna parte, y OBJ_ALL_PERIODS - visible en todas partes. Y no olvide actualizar el gráfico con ChartRedraw() después de que el valor de la propiedad haya cambiado.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
  • www.mql5.com
Комбинация флагов видимости объекта определяет таймфреймы графика, на которых объект отображаем. Для установки/получения значения свойства OBJPROP_TIMEFRAMES можно использовать функции ObjectSetInteger()/ObjectGetInteger...
 
Влад:

Gracias por la respuesta, ya funciona. Pero el parpadeo es el mismo caótico, grabado como sucede. Y he sustituido el borrado cambiando el color de la ETIQUETA a negro.

No creo que tengas mucho que perder todavía, prueba a usar el código de mi script, funciona, es más corto

#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict

#include <ChartObjects\ChartObjectsTxtControls.mqh>
CChartObjectLabel Label;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   Label.Create(0,"tst",0,0,50);
   Label.Description("Hello word!");
   Label.FontSize(14);
   bool show=true;
   while(!IsStopped())
     {
      color col=show ? clrRed : clrNONE;
      Label.Color(col);
      show=!show;
      ChartRedraw();
      Sleep(1000);
     }
  }
//+------------------------------------------------------------------+

¡está en la carpeta de scripts!

 
Igor Makanu:

No creo que tengas mucho que perder todavía, prueba a usar el código de mi script, funciona, es más corto

¡Está en la carpeta de los manuscritos!

Igor, tengo entendido que está escrito en MQL5 y yo tengo Metatrader 4 por desgracia.

 
Влад:

Igor, tengo entendido que está escrito en MQL5, y yo tengo Metatrader 4 por desgracia.

esto es MQL4... podría haberlo intentado ya ))))

 
Oh, hombre, es cierto). Pido disculpas por el atrevimiento, pero ¿es posible utilizar un indicador en lugar de un script? He copiado las tripas de la plantilla de indicadores y la he compilado normalmente. Lo he copiado en la plantilla de indicadores y compila bien, pero cuando lo pego en el gráfico, el terminal se cuelga.
 
Por favor, indique si sabe cómo obtener un resultado de optimización hacia adelante en un MQL5 Expert Advisor bajo prueba? Esta pregunta se publicó en este hilo. Tal vez se responda aquí.
 
Влад:
Oh, hombre, es cierto). Pido disculpas por el atrevimiento, pero ¿es posible utilizar un indicador en lugar de un script? He copiado las tripas de la plantilla del indicador y está bien cuando cambio de TF. Lo he copiado en la plantilla de indicadores y compila bien, pero cuando lo pego en el gráfico, el terminal se cuelga.
Archivos adjuntos:
Blink.mq4  3 kb
 
Igor Makanu:

¡Muchas gracias! )

 

Para los administradores del sitio:

No he podido encontrar dónde, escribo aquí.

Necesito cambiar los datos del vendedor en el perfil.

¿Cómo hacer esto?

Escribí un mensaje hace tiempo en el área de vendedores, pero no hay respuesta.

¿tal vez haya otra forma?