Errori, bug, domande - pagina 610

 

Salve.

Passaggio da 4 a 5. Non riesco a capire la seguente domanda. Ho prescritto la mia classe nel file include, poi la uso nell'Expert Advisor. Poi voglio creare un altro Expert Advisor e ho bisogno della stessa classe. Devo creare un altro file include o il terminale creerà una copia di quello esistente e lo aggancerà correttamente ad un altro EA (come le librerie di funzioni in MQL4)? Le classi possono essere registrate in librerie e usate insieme a diversi Expert Advisors (come le librerie di funzioni in MQL4)? Ho scaricato il certificato per la 5a, ma non ho trovato nessuna descrizione dettagliata di questa procedura. Forse c'è qualcosa da leggere che mi aiuterebbe a capire?

Grazie in anticipo.

 

RedFish:

Devo creare un altro file include o il terminale creerà una copia di quello esistente e lo aggancerà correttamente ad un altro EA (come le librerie di funzioni in MQL4)?

Quando crei una classe in un file esterno, fai il file con l'estensione mqh invece di mq5 e poi includi questo file nel tuo progetto di qualsiasi esperto/script/indicatore

Si possono aggiungere classi alle librerie e usarle simultaneamente con diversi EA (come le librerie di funzioni in MQL4)?

Certo, fallo in questo modo.

 
sergeev:

Quando crei una classe in un file esterno, fai questo file con l'estensione mqh invece di mq5 e collega questo file a qualsiasi tuo progetto EA/Script/indicatore tramite include.

Certo, fallo in questo modo.

Grazie per la risposta.

Come collegare le librerie con le classi a un Expert Advisor? In MQL4, c'era l'operazione #import - ho elencato le funzioni - #import, l'ho chiuso e tutto ha funzionato. In MQL5, come funziona questa procedura? Non riesco a trovare una descrizione di questo processo da nessuna parte ...

Grazie ancora.

 
RedFish:

Grazie per la risposta.

Come faccio a collegare le librerie con le classi a un Expert Advisor? In MQL4, c'era l'operazione #import - ho elencato le funzioni - #import, l'ho chiuso e tutto ha funzionato. In MQL5, come funziona questa procedura? Non riesco a trovare una descrizione di questo processo da nessuna parte ...

Grazie ancora.

Questi punti sono descritti in dettaglio in Aiuto: https://www.mql5.com/ru/docs/basis/preprosessor
Документация по MQL5: Основы языка / Препроцессор
Документация по MQL5: Основы языка / Препроцессор
  • www.mql5.com
Основы языка / Препроцессор - Документация по MQL5
 
Terminal: При авторизации в журнал терминала выводится информация о времени и адресе предыдущего успешного подключения.

Questa implementazione porta a una violazione della sicurezza - rivela l'indirizzo IP del commerciante se lui/lei decide improvvisamente di dare la password Invest a qualcun altro. Ho controllato - l'IP viene mostrato a tutti, indipendentemente dal fatto che e come si siano collegati usando la loro password di trading o la password dell'investitore.

Significa che l'IP dell'ultima connessione (indipendentemente dal fatto che l'ultima connessione sia stata fatta con la password Investor o Trade) viene mostrato quando si accede (indipendentemente dal fatto che l'ultima connessione sia stata fatta con la password Investor o Trade).

Devi disabilitare questa funzione per la password dell'investitore e considerare solo i login usando la password del commercio.

 
notused:

Questa implementazione porta a una violazione della sicurezza - rivela l'indirizzo IP del commerciante se lui/lei decide improvvisamente di dare la password Invest a qualcun altro. Ho controllato - l'IP viene mostrato a tutti, indipendentemente dal fatto che e come si siano collegati usando la loro password di trading o la password dell'investitore.

Così, l'IP dell'ultima connessione (indipendentemente dal fatto che l'ultima connessione sia stata fatta con la password Investor o Trade) viene mostrato quando si fa il login (indipendentemente dal fatto che l'ultima connessione sia stata fatta con la password Investor o Trade).

Devi disabilitare questa funzione per la password dell'investitore e considerare solo i login usando la password del commercio.

Sì, questo sarà risolto - già visto.
 
      ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
Come posso preparare in anticipo una stringa con enumerazione logica(?) come: OBJ_PERIOD_M10| OBJ_PERIOD_H4, per poi sostituirla semplicemente nella variabile pronta ObjectSetInteger () sotto forma di stringa incollata? Ho provato a incollarlo simbolicamente e poi avvolgerlo in StringToInteger(), ma non ha funzionato... PerchéOBJ_PERIOD_... - è un elemento di tipo enum ma ha il flag hex-equivalente di tipo int? Questa enumerazione sembra più un'operazione OR bitwise...
 
x100intraday:
Come posso anteporre una stringa con enumerazione booleana(?) come: OBJ_PERIOD_M10| OBJ_PERIOD_H4, così che posso semplicemente sostituire una variabile pronta in ObjectSetInteger () come una stringa incollata? Ho provato a incollarlo simbolicamente e poi avvolgerlo in StringToInteger(), ma non ha funzionato... PerchéOBJ_PERIOD_... - è un elemento di tipo enum ma ha il flag hex-equivalente di tipo int? Questa enumerazione sembra più un'operazione OR bitwise...

Funzionerebbe con #define?

Esempio:

#define Fl_Fnc __FILE__+" -> "+__FUNCTION__+"(): "
 
tol64:

Funzionerebbe con #define?

Esempio:

Ho paura di immaginare come. In realtà, ho bisogno di una variante flessibile, non ho bisogno di una stringa in forma invariata, ma di diverse stringhe da formare, in un ciclo... Se è possibile, vorrei vedere un esempio più specifico...

In realtà, la questione si riduce a qualcos'altro. Voglio sapere se è possibile ottenere OBJ_PERIOD_M30 propriamente detto come elemento enum da una stringa che contiene una parola riservata del tipo "OBJ_PERIOD_M30 " e contiene effettivamente int-value su cui si possono eseguire operazioni come |? Questo è un caso semplice. Ma voglio interpretare immediatamente qualsiasi riga della forma "OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1" come un'operazione bitwise con valori numerici senza inserire un array addizionale di valori numerici corrispondenti e una successiva "identificazione" elemento per elemento con una lista.

 

Buon pomeriggio, per favore consigliatemi, ho bisogno di usare questa costruzione void RAssignStringVector(int rhandle, string variable, string &vector[], int size);

Ottengo l'errore 'vector' - parametro non valido per la funzione di importazione mt4R.mqh, come posso passare un puntatore a un array di stringhe, funziona in µl4, non in 5, cosa dovrei fare in questa situazione?