Autoapprendimento del linguaggio MQL5 da zero - pagina 78

 
Alexey Viktorov:

Io farei così.

Il fatto è che è una funzione del mio EA, ed è multistrumentale. Questo è il momento in cui si aggiungono i simboli e si controllano tutti i simboli disponibili. Se viene trovato, viene aggiunto al rapporto del mercato per un ulteriore utilizzo con esso. E naturalmente il nome corretto dello strumento viene scritto nella variabile locale.

 
Vitaly Muzichenko:

Alexey, il codice è abbastanza normale. Ciò che non è normale è inserire diversi caratteri nel parametro, cosa che difficilmente viene fatta da qualcuno.

Ho circa la stessa implementazione nel mio prodotto di lavoro.

Questa implementazione funziona con successo in una soluzione multivaluta, cosa che non si può dire di altri codici, cioè il codice è universale.

Non c'è un accenno a una soluzione multivaluta nella domanda. Ecco perché dice che il codice non soddisfa il requisito.

 

E solo per la cronaca. Perché controllare entrambi i modi

StringFind(symbol, s, 0) >= 0 || StringFind(s, symbol, 0) >= 0

A prova di bomba. Una volta ho avuto un cliente che si lamentava di aver inserito un simbolo ma non funzionava. Si è scoperto che il suo terminale mostrava un simbolo puro ma lo inseriva con degli additivi. Ho aggiunto la seconda direzione di controllo senza pensare a lungo )))

 
Poi ci sarà un terzo tipo, che sarà indignato dal fatto che ha inserito il nome del simbolo senza additivi, e il grafico ha additivi, ma per qualche motivo l'Expert Advisor ha funzionato. Quindi, fate un confronto esatto, e se non corrisponde, visualizzate un messaggio - "il grafico ha il simbolo così e così, e voi inserite così e così" e lasciate che il peso della responsabilità ricada sull'utente.
 
Dmitry Fedoseev:
Poi avremo un terzo tipo che si lamenterà di aver inserito il nome del simbolo senza additivi, mentre il grafico ha additivi, ma l'Expert Advisor ha funzionato per qualche motivo. Quindi, fate un confronto esatto, e se non corrisponde, visualizzate un messaggio - "il grafico ha il simbolo così e così, e voi inserite così e così" e lasciate che il peso della responsabilità ricada sull'utente.

Non è un'opzione, ovviamente. Una persona è a suo agio nell'inserire caratteri puri. E lasciare che il codice aggiunga da solo i suffissi/prefissi. Puramente per comodità. Anch'io non sono un fan di scoprire il nome completo di un personaggio.
Potete anche solo copiare il file impostato ed eseguire il programma. Non c'è bisogno di sovrascrivere nulla. Ci sono dei simboli, saranno agganciati automaticamente.

 
Konstantin Nikitin:

Non è un'opzione, ovviamente. Una persona è a suo agio nell'inserire caratteri puri. E lasciare che il codice aggiunga da solo i suffissi/prefissi. Puramente per comodità. Io stesso non sono un fan della ricerca del nome completo di un personaggio.

L'infallibilità non è mai conveniente)

 
Valeriy Yastremskiy:

L'infallibilità non è mai conveniente)

Non è tanto l'infallibilità. Si tratta più che altro della comodità di copiare un file impostato. Mi sono già abituato (ci si abitua rapidamente a una buona cosa) e non mi accorgo quando trasferisco le impostazioni. Abbastanza pratico.
Anche se la seconda direzione e aggiunto da sciocchi )))

 
 MrBrooklin:

Ciao Alexey!

Per migliorare la tua conoscenza del linguaggio di programmazione MQL5, per favore spiega perché non c'è differenza tra void &array e void& array?

Sinceramente, Vladimir.

Non lo so. Ho scoperto per esperienza che void & array funziona allo stesso modo. Questo & significa che la variabile è passata per riferimento e nient'altro. Un array come parametro di input di una funzione viene passato solo per riferimento.
 
Alexey Viktorov:
Non lo so. Ho imparato per esperienza che void & array funziona comunque. Questo & significa che la variabile è passata per riferimento e nient'altro. Un array come parametro di input di una funzione viene passato solo per riferimento.

Grazie, Alexey, lo terrò presente per il futuro.

Buon Natale!

Sinceramente, Vladimir.

 
MrBrooklin:

Grazie, Alexey, lo terrò presente per il futuro.

Buon Natale!

Sinceramente, Vladimir.

Artem Trishkin mi ha risposto alla stessa domanda, perché è un link (maiuscolo), quindi può stare in qualsiasi posto. dovrebbe provare senza spazi per la purezza dell'esperimento.

Motivazione: