Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1794

 

Forum sul trading, sistemi di trading automatico e test di strategia

Tutte le domande dei neofiti su MQL4 e MQL5, aiuto e discussione su algoritmi e codici

MakarFX, 2021.12.06 12:14

bool FindObject(string name)
  {
   if(ObjectFind(0,name)) return(false);
   return(true);
  }

E nel caso di un errore, cosa restituirà la vostra funzione, true?

 
Mihail Matkovskij #:

E in caso di errore, cosa restituirà la vostra funzione, true?!

Quale errore? Fammi un esempio.
 
MakarFX #:

Questo, sì, dovrebbe funzionare.

 
Nerd Trader #:

Stai parlando del cambio di colore tramite proprietà? Ho una variante simile, devo capire perché questa non funziona.

Funziona, ma reagisce a qualsiasi OnChartEven, cioè cancella->crea con prezzo "0"->muove il cursore. Da qui lo sfarfallio

 
Nerd Trader #:

Stai parlando del cambio di colore tramite una proprietà? Ho questa opzione, ho bisogno di capire perché non funziona.

No. È perché gli oggetti non sfarfallino e appaiano/scompaiono, non rimbalzino come scottati e la CPU non faccia rumore...

Quindi, cosa c'è che non va, quando l'oggetto nella finestra principale è "0" la vostra funzione restituirà false? Spiegare il punto con>=0... o uguale a zero.

Guarda attentamente.

if (ObjectFind(chart, name) >= 0)

A quale intervallo di valori la condizione ritornerà vera?

 
MakarFX #:
Quale errore? Fate un esempio.

Cosa è vero di solito? Tutto ciò che non è 0 (l'ho menzionato sopra). E si ha true solo quando la condizione restituisce false a 0. L'oggetto è nel seminterrato (ObjectFind(ch, name) > 0) - false. Ma l'errore (-1) è vero.

Quindi, ecco la variante corretta:

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); } // чётко определим условие существования объекта!
 
Mihail Matkovskij #:

No. È così che gli oggetti non sfarfallano e appaiono/scompaiono, non saltano come scottati e la CPU non fa rumore...

Prestate molta attenzione.

A quale intervallo di valori la condizione ritornerà vera?

E se
ObjectFind(chart, name)=-1

che cosa allora?

 
MakarFX #:

Funziona, ma reagisce a qualsiasi OnChartEven, cioè cancella->crea con prezzo "0"->muove il cursore. Da qui lo sfarfallio.

Perché? Perché non accade per la linea verde? Le condizioni sono identiche solo inverse (prezzo > Ask) per il giallo e (prezzo < Bid) per il verde.


Mihail Matkovskij #:

Impedisce agli oggetti di sfarfallare e di apparire/scomparire, di rimbalzare come animali scottati e il rumore della CPU...

Per qualche ragione, le linee verdi e rosse hanno solo una copia e non sfarfallano quando il cursore viene spostato.


Mihail Matkovskij #:

Guarda attentamente.

A quale intervallo di valori la funzione restituirà true?

da zero in su?
 
Mihail Matkovskij #:

Cosa è vero di solito? Tutto ciò che non è 0 (l'ho menzionato sopra). E si ha true solo quando la condizione restituisce false con un valore di 0.

Guarda di nuovo attentamente

 
MakarFX #:

Guarda di nuovo attentamente.

Completato il messaggio. Testate la vostra funzione e la mia con l'ID del grafico non corretto e quando l'oggetto viene creato nella sottofinestra. E vedere cosa restituisce la tua funzione e cosa restituisce la mia. E leggete attentamente la documentazione. Tutti i link e la citazione sono dati sopra.