Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 182
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Per esempio, elimino tutti gli oggetti sul mio VDS. Non voglio sovraccaricare il programma. E non c'è bisogno di loro lì. Io uso i globali. Quindi tutto dipende dalla situazione.
Guarda, non mi piacciono per un motivo:
Guarda, c'è un motivo per cui non mi piacciono:
Beh, non c'è bisogno di leggerlo. Potete usare GlobalVariableCheck per controllare se la variabile è presente o meno. Si può fare lo stesso con gli oggetti.
Quindi avete solo bisogno di creare/controllare/cancellare una variabile.
Vladimir Simakov:
2. Disponibilità di variabili al di fuori del programma.
nessun problema, tutte le funzioni che lavorano con variabili globali hanno un valore di ritorno - il risultato dell'operazione
c'è uno strumento di sincronizzazionehttps://www.mql5.com/ru/docs/globals/globalvariablesetoncondition , non è molto, ma usa quello che ti viene offerto
Ma il grande svantaggio è il tipo di dati - solo doppio, non mi piace il doppio, almeno ulong sarebbe stato utilizzabile, e l'organizzazione di nome / valore ---> stringa / doppio provoca un desiderio di scambiare - per scrivere dati in stringa e chiave in doppio - più per una operazione può essere scritto / letto
ma avendo stimato tutta questa "roba" Potete scriverli in file binari, cioè totale libertà e nessuna incertezza.
probabilmente bisogna sapere come lavorare con loro
@fxsaber ha mostrato esempi di lavoro con qualsiasi tipohttps://www.mql5.com/ru/forum/320395/page6#comment_12910394
Beh, non c'è bisogno di leggere. Potete semplicemente usare GlobalVariableCheck per controllare se la variabile esiste o no. Si fa lo stesso con gli oggetti.
Quindi, avete solo bisogno di creare/controllare/cancellare la variabile.
Sì, un banale conflitto di nomi e la stringa nell'altro robot
GlobalVariableDel(yourValueName);
perderà il suo deposito))))
Dite che il nome sarà unico, che l'altro robot non ci sarà mai, che il figlio/moglie/amico/bronzo non si avvicinerà mai al terminale di battaglia))) D'accordo, ma la probabilità non è zero, il che significa che il codice diventa inaffidabile.
Sì, è un banale conflitto di nomi e la linea dell'altro robot
ti prosciuga il tuo deposito)))
Direte che il nome sarà unico, che l'altro robot non ci sarà mai, che il bambino/moglie/amico/bevuto non si avvicinerà mai al terminale di battaglia))) D'accordo, ma la probabilità non è zero, il che significa che il codice diventa inaffidabile.
Stronzate e fantasia
Un EA su denaro viene SEMPRE eseguito da un terminale separato, sul proprio VDS (o anche server) e nessuno ci fa mai casino.
Stronzate e fantasia
Un EA on the money viene SEMPRE eseguito da un terminale separato, su un proprio VDS (o anche server) e nessuno ci fa mai casino.
Cosa vuol dire "SEMPRE"? Oggi - sempre, domani si può calcolare diversamente. E non tutti sembrano essere d'accordo con lei.
Ho sottolineato il vero pericolo dell'uso delle variabili globali del terminale. Questo non è né buono né cattivo - è un dato che gli sviluppatori ci hanno dato, dobbiamo solo esserne consapevoli e tenerne conto.
La stessa stringa
GlobalVariablesDeleteAll();
...fatto in qualsiasi script e oops...
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Peculiarità di mql5, consigli e trucchi
Vladimir Simakov, 2020.05.24 17:02
La stessa stringa
GlobalVariablesDeleteAll();
...fatto in qualsiasi script e oops.
Lo stesso vale per gli oggetti grafici.
ObjectsDeleteAll(...
Solo le risorse EA non possono essere cambiate da altri programmi.
Colleghi, per favore aiutatemi a fare una macro, se possibile.
Ho bisogno di dichiarare dinamicamente un array bidimensionale. E anche la seconda dimensione deve essere cambiata. Si tratta di qualcosa come questo ciclo:
Naturalmente, il compilatore si tirerà indietro di fronte a questo:
Mi piacerebbe vedere una macro come la seguente:
Invece di una linea:
double d_array[][would_be_size2];
Grazie.
Colleghi, per favore aiutatemi a fare una macro, se possibile.
Ho bisogno di dichiarare dinamicamente un array bidimensionale. E anche la seconda dimensione deve essere cambiata. Si tratta di qualcosa come questo ciclo:
Naturalmente, il compilatore si tirerà indietro di fronte a questo:
Mi piacerebbe vedere una macro come la seguente:
Invece di una linea:
Grazie.
Ma la creazione di un array di dimensioni sufficienti (massime) al di fuori del ciclo è ostacolata da atteggiamenti politici ? :-)
L'approccio precedente (ricreare l'array nel ciclo ogni volta) non vince nulla in termini di velocità o consumo di memoria.
Mi piacerebbe vedere una macro simile a questa:
Non funzionerà.