Erros, bugs, perguntas - página 2533

 
Georgiy Merts:

No seu caso, organize um loop while() em vez de um loop for().

Verificar se há algum sinal de fim de piscar.

Mas sobre "piscar com frequência variável" - algo estranho... Não vejo quaisquer erros na mosca, deve estar a piscar com bastante frequência.

É certo que duvido que seja sensato criar e apagar objectos gráficos em vez de os tornar invisíveis. Mas, parece que não se pode tornar um objecto invisível... Assim, resta apenas apagar.

Obrigado pela resposta, funciona agora. Mas o piscar é igualmente caótico, registado como acontece. E substituí a remoção por mudar a cor do LABEL para preto.



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);
   } 
 
Влад:

Obrigado pela resposta, está a funcionar agora. Mas o piscar é o mesmo caótico, registado como acontece. E substituí a eliminação por mudar a cor do LABEL para preto.


Pode-se ver que depende do carrapato. Este código deve ser feito em OnTimer(), e não em OnTick().

E não é preciso colori-lo de preto - os objectos têm uma propriedade de visibilidade(OBJPROP_TIMEFRAMES) - só é preciso gerir a sua visibilidade.

Os valores para os prazos, em que o objecto deve ser visível, são fixados por um conjunto de bandeiras. No seu caso, precisa de definir 0(OBJ_NO_PERIODS) - o objecto não é visível em qualquer lugar, e OBJ_ALL_PERIODS - visível em qualquer lugar. E não se esqueça de actualizar a tabela com ChartRedraw() após o valor do imóvel ter mudado.

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

Obrigado pela resposta, está a funcionar agora. Mas o piscar é o mesmo caótico, registado como acontece. E substituí a eliminação, mudando a cor LABEL para preto.

Acho que ainda não tem muito a perder, tente usar o meu código de script, funciona, é mais curto

#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á na pasta do guião!

 
Igor Makanu:

Acho que ainda não tem muito a perder, tente usar o meu código de script, funciona, é mais curto

Está na pasta à deriva!

Igor, sei que está escrito em MQL5 e, infelizmente, tenho Metatrader 4.

 
Влад:

Igor, sei que está escrito em MQL5, e infelizmente tenho Metatrader 4.

isto é MQL4... já o poderia ter experimentado ))))

 
É verdade). Peço desculpa pelo atrevimento, mas será possível usar um indicador em vez de um guião? Copiei as entranhas do modelo indicador e está tudo bem quando troco de TFs. Copiei-o para o modelo indicador e ele compila bem. Mas quando o colei no gráfico, o terminal desliga.
 
Aconselhe por favor se souber como obter um resultado de optimização em teste de um Expert Advisor MQL5? Esta pergunta foi afixada neste tópico. Talvez seja respondido aqui.
 
Влад:
É verdade). Peço desculpa pelo atrevimento, mas será possível usar um indicador em vez de um guião? Copiei as entranhas do modelo indicador e está tudo bem quando troco de TFs. Copiei-o para o modelo indicador e ele compila bem. Mas quando o colei no gráfico, o terminal desliga.
Arquivos anexados:
Blink.mq4  3 kb
 
Igor Makanu:

Muito obrigado! )

 

Para administradores do sítio:

Não consegui encontrar onde, estou a escrever aqui.

Preciso de alterar os detalhes do vendedor no perfil.

como fazer isto ?

Escrevi uma mensagem há muito tempo atrás na área do vendedor, mas não há resposta.

talvez haja outra maneira ?