Errori, bug, domande - pagina 2533

 
Georgiy Merts:

Nel tuo caso, organizza un ciclo while() piuttosto che un ciclo for().

Controllare se c'è qualche segno di fine del lampeggiamento.

Ma riguardo al "lampeggiare con frequenza variabile" - qualcosa di strano... Non vedo nessun errore al volo, dovrebbe lampeggiare abbastanza frequentemente.

Certo, dubito che sia saggio creare e cancellare oggetti grafici invece di renderli invisibili, ma sembra che non si possa rendere invisibile un oggetto... Quindi rimane solo la cancellazione.

Grazie per la risposta, ora funziona. Ma il lampeggiamento è altrettanto caotico, registrato come avviene. E ho sostituito la cancellazione con il cambiamento del colore dell'ETICHETTA in nero.



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

Grazie per la risposta, ora funziona. Ma il lampeggiamento è lo stesso caotico, registrato come avviene. E ho sostituito la cancellazione con il cambiamento del colore dell'ETICHETTA in nero.


Si può vedere che dipende dalla zecca. Questo codice dovrebbe essere fatto in OnTimer(), non in OnTick().

E non c'è bisogno di colorarlo di nero - gli oggetti hanno una proprietà di visibilità(OBJPROP_TIMEFRAMES) - devi solo gestire la sua visibilità.

I valori per i tempi in cui l'oggetto deve essere visibile sono impostati da un insieme di bandiere. Nel tuo caso, devi impostare 0(OBJ_NO_PERIODS) - l'oggetto non è visibile da nessuna parte, e OBJ_ALL_PERIODS - visibile ovunque. E non dimenticate di aggiornare il grafico con ChartRedraw() dopo che il valore della proprietà è cambiato.

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

Grazie per la risposta, ora funziona. Ma il lampeggiamento è lo stesso caotico, registrato come avviene. E ho sostituito la cancellazione cambiando il colore dell'ETICHETTA in nero.

Non credo che tu abbia ancora molto da perdere, prova ad usare il mio codice di script, funziona, è più 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);
     }
  }
//+------------------------------------------------------------------+

è nella cartella degli script!

 
Igor Makanu:

Non credo che tu abbia ancora molto da perdere, prova ad usare il mio codice di script, funziona, è più corto

È nella cartella srift!

Igor, capisco che è scritto in MQL5 e io ho Metatrader 4 purtroppo.

 
Влад:

Igor, capisco che è scritto in MQL5, e io ho Metatrader 4 purtroppo.

questo è MQL4... potrebbe averla già provata ))))

 
Oh, cavolo, proprio cos). Mi scuso per l'impudenza, ma è possibile utilizzare un indicatore invece di uno script? Ho copiato l'essenza del modello dell'indicatore e va bene quando cambio i TF. L'ho copiato nel modello dell'indicatore e si compila bene, ma quando lo incollo nel grafico, il terminale si blocca.
 
Per favore consigliate se sapete come ottenere un risultato di ottimizzazione in avanti in un Expert Advisor MQL5 in prova? Questa domanda è stata postata in questo thread. Forse troverà risposta qui.
 
Влад:
Oh, cavolo, proprio cos). Mi scuso per l'impudenza, ma è possibile utilizzare un indicatore invece di uno script? Ho copiato il nucleo del modello dell'indicatore e l'ho compilato normalmente. L'ho copiato nel modello dell'indicatore e si compila bene, ma quando lo incollo nel grafico, il terminale si blocca.
File:
Blink.mq4  3 kb
 
Igor Makanu:

Grazie mille! )

 

Per gli amministratori del sito:

Non ho trovato dove, sto scrivendo qui.

Ho bisogno di cambiare i dettagli del venditore nel profilo.

come fare?

Ho scritto un messaggio molto tempo fa nell'area del venditore, ma non c'è risposta.

forse c'è un altro modo?


Motivazione: