Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1236
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
Saluti. Potresti dirmi qualcosa, per favore?
È possibile ottenere il nome di una variabile invece del suo valore? Per esempio, stampare il nome di una variabile.
#define PRINTVAR(x) Print(" " ##x); Print(x)
void OnStart()
{
long anyvar=(long)TimeLocal();
PRINTVAR(anyvar);
}
risultato:
2020.08.24 14:46:05.394 test (USDCHF,H1) anyvar
2020.08.24 14:46:05.394 test (USDCHF,H1) 1598280365
Forse una caratteristica da inedito :-) simile a "C", ma non ancora utilizzabile
Dovete ottenere il nome della variabile stessa.
Senza conoscere il nome, e senza alcuna caratteristica distintiva, questo non può essere fatto. Potete, per esempio, ottenere i nomi di tutte le variabili uguali a 5 e stampare i loro nomi, trovati, stampati. O i nomi di tutte le variabili stringa. Ma in ogni caso è un'enumerazione variabile.
Maxim Kuznetsov Grazie
Sì, si tratta anche di selezionare una variabile per nome.
Per esempio, ci sono variabili a1, a2, a3, a4, a5, ecc. Dovete cercare anche tra queste variabili, scegliere quale ha "a" e 5, e usarla.
allora non c'è quasi nessun modo. I nomi delle variabili sono accessibili solo dal preprocessore (#macros).
Dobbiamo cambiare la logica interna, per esempio usare un array di hash di nomi al posto delle variabili. Allora sia la chiave che il valore sono disponibili contemporaneamente. O usare SQLite in caso di archiviazione a lungo termine. O combinarli :-)
Ma è così, senza la conoscenza dell'algoritmo, consigli invano.
Sì, si tratta anche di selezionare una variabile per nome.
Per esempio, ci sono variabili a1, a2, a3, a4, a5, ecc. Dobbiamo enumerare anche queste variabili, scegliere quale ha "a" e 5, e usarla.
Scrivi i nomi in una matrice e passa attraverso la matrice.
Buon giorno a tutti, la mia domanda riguarda il tester MT4, il linguaggio mql4
Per favore, ditemi qual è il mio errore quando inizializzo un array. Ho creato un array unidimensionale con 750 elementi. Ho inizializzato tutti i 750 elementi con il valore 50.0.
Significa che nel primo tick e nei successivi, il primo elemento della matrice con indice 0 deve avere valore 50,0 e l'ultimo elemento della matrice con indice 749 deve avere valore 50,0.
Infatti si scopre che l'ultimo elemento dell'array ha valore 0. E il primo, come dovrebbe essere, è 50.0.
La domanda. Come fare in modo che tutti i valori dell'array (compreso l'ultimo) abbiano il valore 50.0 dopo l'inizializzazione
Ecco il mio codice
Print("=========================749======= ",S_L[749]," =0= ",S_L[0]);
}
In fondo al valore di Print() del diario
2020.08.24 17:43:55.427 GBPUSD,M1: 52255 eventi tick (1440 barre, 53256 stati delle barre) processati in 0:00:00.047 (tempo totale 0:00:02.422)
2020.08.24 17:43:55.407 2010.01.04 00:00:53 TESTER(B.ORG) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:52 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:50 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:47 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:45 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:43 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:41 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:40 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:37 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:35 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:32 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:30 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:28 TESTER(B.ORDERS) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:26 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:25 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:22 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:20 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:17 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:15 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:13 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:11 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:10 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:07 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:05 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:02 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00 TESTER(B.ORD) GBPUSD,M1: =========================749======= 0 = 0= 50
2020.08.24 17:43:55.385 2010.01.01 00:00:00 Tester(B.ORD.) test avviato
Grazie per l'aiuto
Ecco il mio.
Dove?))
Dove?)))
In cima al mio post modificato. Grazie per la risposta.
ANDREY:
Domanda. Come posso fare in modo che tutti i valori del mio array (compreso l'ultimo) abbiano un valore di 50.0 dopo l'inizializzazione?
Grazie per il suggerimento. A proposito, volevo chiarire..... Nel tutorial di Kovalev si dice che l'array può essere inizializzato simultaneamente alla sua dichiarazione (come ho fatto io), senza alcuna funzione speciale. So che il tutorial di Kovalev è un po' datato. D. Ho capito bene che ora in mql4 gli array dovrebbero essere inizializzati solo usando una funzione?
Grazie.