Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1286

 
Vladimir Karputov:

OnChartEvent si attiva comunque solo per il simbolo corrente - in questo caso non ha senso riconoscere il simbolo: è sempre posizionato.

Il secondo modo è quello di bypassare la lista di tutti i grafici - ObjectFind.

Nel frattempo, potresti dirmi che tipo di errore è questo?

2021.02.02 18:06:55.780 GDICache        pen creation error [87]
2021.02.02 18:06:56.251 GDICache        pen creation error [87]
2021.02.02 18:06:56.556 GDICache        pen creation error [87]
2021.02.02 18:06:56.677 GDICache        pen creation error [87]
2021.02.02 18:06:56.969 GDICache        pen creation error [87]

Ho scoperto il motivo. Si è presentato durante il debug quando si specificano le proprietà della linea. Lo stile della linea è stato lasciato come valore. È solo strano che non ho trovato nessun accenno a questo errore da nessuna parte.

 
Aleksandr Prishenko:

Prima funzionava meravigliosamente. Avrei dovuto provarlo su un hosting gratuito. Comunque ha dato al methaquotes 15 sterline ))))

Grazie per la risposta!

Migrato (pentito dei 15) ma i controlli sono abbastanza strani.

Migrator non capisce il percorso di installazione dell'indicatore da EA, deve pulire i grafici:

2021.02.02 19:57:39.442 Virtual Hosting 6215402: controllo per il carico "C:\Users\Crucian\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Experts\BBS_9.ex5::Indicators\Band Width1.ex5"

2021.02.02 19:57:39.442 Virtual Hosting 6215402: failed to load program


Migrator chiede anche di ricompilare gli indicatori tecnici )):

2021.02.02 19:44:12.708 Virtual Hosting 6215402: la versione obsoleta del modulo importato "ZigZag.ex5" dovrebbe essere ricompilata prima del trasferimento al server di hosting



 
Buon pomeriggio, ho visto molti articoli su come costruire un EA da un indicatore o come ottenere dati da un indicatore in un EA. E come fare il contrario, come visualizzare un EA, diciamo che ha calcolato un array di dati come trasferirlo a un indicatore personalizzato?
 
VANDER:
Buon pomeriggio, ho visto molti articoli su come costruire un EA da un indicatore o come ottenere dati da un indicatore in un EA. E come fare il contrario, come visualizzare un EA, diciamo che ha calcolato un array di dati come trasferirlo a un indicatore personalizzato?

Attraverso un .mqh inseribile in cui si conta tutto e l'EA prende da lì, e l'indicatore...

 

Ciao! Come posso fare in modo che la piattaforma MT5 magnetizzi la linea nell'indicatore delle medie mobili? Per far sì che la linea di tendenza si alzi chiaramente e sia magnetizzata alla linea dell'indicatore. Nelle impostazioni della piattaforma nei grafici c'è una voce "magnetizzazione", lì la linea di tendenza viene messa sul prezzo di apertura. Esiste un modo simile per una media mobile e una semplice trendline?


 
leonerd:

Avviare il debugger, mettere un breakpoint sulla variabile type. Disegno un triangolo (Inserisci - Oggetti - Forme - Triangolo) sul grafico. Premere Elimina, il triangolo viene rimosso. Catturo un evento, il tipo nel codice precedente è sempre 0. type_str, rispettivamente, è OBJ_VLINE (primo valore nell'enumerazione).

Lo stesso codice restituisce OBJ_TRIANGLE come tipo di oggetto corretto quando le proprietà di un oggetto grafico vengono cambiate o trascinate.

Uscita. Quando si elimina un oggetto grafico non riesce a ottenere il tipo di oggetto in OnChartEvent.

Non è ancora chiaro come ottenere il tipo di un oggetto cancellato. Il nome dell'oggetto in OnChartEvent() viene corretto ma il tipo è sempre 0. Quanto sopra descritto è un bug o dovrebbe essere fatto in qualche altro modo?

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id==CHARTEVENT_OBJECT_DELETE)
     {
      string object_name=sparam;
      ENUM_OBJECT object_type=(ENUM_OBJECT)ObjectGetInteger(ChartID(),object_name,OBJPROP_TYPE); // object_type всегда VLINE
     }
  }
 
leonerd:

Non è ancora chiaro come scoprire il tipo di oggetto cancellato. Il nome dell'oggetto in OnChartEvent() viene corretto, ma il tipo è sempre 0. Quanto sopra descritto è un bug o dovrebbe essere fatto diversamente?

ObjectType(sparam)
 
Vitaly Muzichenko:

Cos'è la funzione ObjectType()?

Sembra essere un ramo di MQL5.

Ovviamente, è stato progettato in questo modo. Gli altri parametri dell'oggetto cancellato non possono essere recuperati. Riceve solo il nome. Le coordinate, ecc. sono tutte zero. C'è un modo per recuperarli dall'evento di cancellazione di un oggetto grafico?

 
leonerd:

Cos'è la funzione ObjectType()?

Sembra essere un ramo di MQL5.

Ovviamente, è stato progettato in questo modo. Gli altri parametri dell'oggetto cancellato non possono essere recuperati. Riceve solo il nome. Le coordinate, ecc. sono tutte zero. C'è un modo per ottenerli dalla cancellazione di un oggetto grafico?

Sì, non me lo aspettavo in mql5, ma c'è un analogo:

ObjectGetInteger(0,name,OBJPROP_TYPE)

Volete ottenere i parametri dell'oggetto per l'evento di cancellazione, cioè dopo che è già andato.

 
leonerd:

Cos'è la funzione ObjectType()?

Sembra essere un ramo di MQL5.

Ovviamente, è stato progettato in questo modo. Gli altri parametri dell'oggetto cancellato non possono essere recuperati. Riceve solo il nome. Le coordinate, ecc. sono tutte zero. C'è un modo per ottenerli dall'evento di cancellazione di un oggetto grafico?

Probabilmente, tale possibilità non esiste e non è prevista. Dopo tutto l'oggetto esiste già...

Vedo questa via d'uscita: alla creazione dell'oggetto, in una struttura di array scrivere il nome e tutti i parametri richiesti, e alla rimozione, dopo aver letto i parametri richiesti rimuovere dalla struttura di array il record su di esso.