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

 
Nerd Trader #:

Perché? Perché questo non accade per la linea verde? Le condizioni sono identiche solo l'inverso (prezzo > Ask) per la linea gialla e (prezzo < Bid) per la linea verde.

Ma le linee verdi e rosse, per qualche motivo, sono create solo in un'istanza e non lampeggiano quando il cursore si muove.

da zero in su?

Punto interessante...

State cercando due linee

        if(ObjectFind("Buy Stop") == window || ObjectFind("not allowed") == window){

e tu ne cancelli uno.

          ObjectDelete(line_name);

La domanda è: quale? Qual è il cognome di "line_name"

 
Mihail Matkovskij #:

Completato il messaggio. Prova la tua funzione e la mia con l'ID del grafico non corretto e quando l'oggetto viene creato sottofinestra. E vedere cosa restituisce la tua funzione e cosa crede la mia.

Sei solo fuori dal giro)


 
MakarFX #:
E se

che cosa allora?

Errore. E tu, vero, per qualche motivo!

 
Mihail Matkovskij #:

Errore. E tu, vero, per qualche motivo!

"-1" significa nessun oggetto. Poiché non c'è un oggetto, vero
 
MakarFX #:

Sei solo fuori dal giro).


Vi ho dato come dovrebbe essere il controllo dell'esistenza dell'oggetto. E che la mia funzione non funziona? Al contrario, è più versatile. Se hai bisogno di lavorare con una sottofinestra, non noterai molta differenza.

 
Mihail Matkovskij #:

Vi ho dato come dovrebbe essere il controllo dell'esistenza dell'oggetto. E che la mia funzione non funziona? Al contrario, è più versatile. Se avete bisogno di lavorare con una sottofinestra, non farà molta differenza.

Lasciatemi ripetere la domanda

E se
ObjectFind(chart, name)=-1

Che cosa allora?

 
MakarFX #:
"-1" - non c'è nessun oggetto. Poiché non c'è un oggetto - vero

La vostra funzione restituirà true e quando si verifica un errore:

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

Tutte le domande dei neofiti su MQL4 e MQL5, consigli e discussioni su algoritmi e codici

Mihail Matkovskij, 2021.12.06 12:38

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


 
  string name = "name";

  ObjectCreate(1, name, OBJ_HLINE, 1,0,0);

  Print(FindObject("name"));

  if (objectExist(0, "name")) Print("objectExist Find");
  else Print("objectExist Object not found.");

...

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); }

bool FindObject(string name)
  {
   if(ObjectFind(0,name)) return(false);
   return(true);
  }
Creo non nella finestra principale, è ancora vero (ma Makar ha scritto per la mia situazione solo per la finestra principale). Per objectExist è chiaro, c'è >= 0.


Se la ricerca di un altro oggetto non è "nome", allora la variante di Makar restituirà false.
 
Mihail Matkovskij #:

Completato il messaggio. Prova la tua 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.

Mihail Matkovskij #:

Vi ho dato come dovrebbe essere il controllo dell'esistenza dell'oggetto. E la mia funzione non funziona? Al contrario, è più universale. Se avete bisogno di lavorare con una sottofinestra, non farà molta differenza.


Per quanto riguarda l'universalità della funzione, beh...

bool FindObject(string name,int win)
  {
   if(ObjectFind(0,name)!=win) return(false);
   return(true);
  }
 
MakarFX #:

Un punto interessante...

Stai cercando due linee

e tu ne rimuovi uno.

La domanda è: quale? Qual è il cognome di "line_name"?

Quello che, per convenzione, è vero