Errori, bug, domande - pagina 1904
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
Se ci sono più istanze, perché duplicare lo stesso calcolo in altre istanze della stessa classe?
Perché avete bisogno di altre istanze se c'è solo un calcolo?
Andrey, potresti essere un po' più specifico? Non capisco bene.
Meglio dare una descrizione più dettagliata del problema, allora la risposta sarà più concreta.
Il calcolo non è unico - se c'è una sola istanza della classe allora il calcolo dovrebbe esserlo, se ci sono più istanze allora perché duplicare lo stesso calcolo in altre istanze della stessa classe? Ci vogliono risorse.
Allo stesso tempo, fare un altro lungo ciclo nella classe genitore per calcolare questi stessi dati non è ottimale (abbiamo già due lunghi cicli), e la classe figlia non sarà autosufficiente.
Buon pomeriggio!
Dopo 4 anni sono tornato a un EA (comprato nel 2013 e dimenticato). Ho deciso di provare di nuovo. Ma ora il sistema dà un errore in una delle linee di codice. Credo che qualcosa sia cambiato in 4 anni con Metatrader, perché prima funzionava bene. Non ho idea di come programmare, ecco perché ho comprato Expert Advisor). Potete dirmi quale può essere l'errore.
Ecco una parte del codice
extern int Bperiod = 20; // Periodo di mediazione della linea dell'indicatore principale.
extern int Bdeviation = 2; // Deviazione dalla linea di base.
extern int Bshift = 0; // Spostamento dell'indicatore rispetto al grafico del prezzo.
extern int Baprice = 0; // CLOSE=0, OPEN=1, HIGH=2, LOW=3, MEDIAN=4, TYPICAL=5, WEIGHTED=6 .
extern string _6 = "========";
extern bool UseAutoDig = true; // Se=true->le variabili esterne nei punti sono moltiplicate per 10.
extern bool UseECN\NDD = true; // Se=true-> gli ordini sono impostati senza fermate, quindi modificati.
L'errore è visualizzato nell'ultima linea del comando
UseECN\NDD, questo comando è ripetuto molte volte nell'EA e un errore si verifica ad ogni linea con questo comandoEsempi di
errori
'\' - sequenza di escape illegale e_plat2.mq4 49 22
'UseECN' - identificatore non
dichiarato
e_plat2.mq4 144 6
'NDD' - identificatore non dichiarato e_plat2.mq4 144 13
'4206' - case value già usato e_plat2.mq4 643 8
Se non ti dispiace, quale potrebbe essere la ragione
?UsaECN\NDD questo comando è ripetuto molte volte nell'Expert Advisor e in ogni linea dove è presente, appare un errore
Sostituire in tutto il codice "UseECN\NDD" con "UseECN_NDD" (Ctrl+H)
Sostituire in tutto il codice "UseECN\NDD" con "UseECN_NDD" (Ctrl+H)
Grazie mille! Sembra che abbia compilato!
Farò dei test...
Perché avete bisogno di queste altre istanze se c'è solo un calcolo?
È meglio che tu dia una descrizione più dettagliata del problema, allora la risposta sarà più concreta.
La classe ha un ciclo che raccoglie dati su tutti gli ordini e le posizioni 1) nel conto e 2) solo quelli che corrispondono al filtro m_symbol e m_magic.
Come risultato, una volta che il ciclo è completato, abbiamo dati 1) sull'intero conto e 2) solo sugli ordini e le posizioni appartenenti all'EA.
Tuttavia, se un EA usa diversi simboli o maghi, abbiamo bisogno di creare istanze della classe per raccogliere statistiche per ogni simbolo/magia. È qui che sorge la domanda: perché abbiamo bisogno di raccogliere statistiche (1) in queste nuove istanze che sono già state raccolte nella prima istanza della classe?
Da qui la domanda - come all'interno della classe sapere se la sua istanza è l'unica, e quindi dobbiamo raccogliere la statistica 1, o, se l'istanza non è l'unica, non raccogliere la statistica 1, e darla fuori dalla primissima istanza (anche qui, non è chiaro come all'interno della classe, se non è l'unica istanza, reindirizzare la richiesta alla primissima istanza della classe per dare la statistica 1)
La classe ha un ciclo che raccoglie dati su tutti gli ordini e le posizioni 1) nel conto e 2) solo quelli che corrispondono al filtro m_symbol e m_magic.
Come risultato, una volta che il ciclo è completato, abbiamo dati 1) sull'intero conto e 2) solo sugli ordini e le posizioni appartenenti all'EA.
Tuttavia, se un EA usa diversi simboli o maghi, abbiamo bisogno di creare istanze della classe per raccogliere statistiche per ogni simbolo/magia. Qui sorge una domanda: perché abbiamo bisogno di raccogliere le statistiche (1) in queste nuove istanze, che sono già state raccolte nella prima istanza della classe?
Da qui la domanda - come all'interno della classe sapere che la sua istanza è l'unica, e quindi la necessità di raccogliere la statistica 1, o, se l'istanza non è l'unica, allora non raccogliere la statistica 1, ed emetterla dalla primissima istanza (inoltre non è ancora chiaro come all'interno della classe, se non è l'unica istanza, reindirizzare la richiesta alla primissima istanza per emettere la statistica 1)
1) Raccogliere statistiche per tutti i maghi/strumenti all'interno di una classe. L'elenco dei maghi deve essere specificato durante l'inizializzazione e messo in un array.
2) Come già consigliato, rendete statici i risultati della statistica #1, e se sono disponibili, non iniziate il ricalcolo.
La classe ha un ciclo che raccoglie dati su tutti gli ordini e le posizioni 1) nel conto e 2) solo quelli che corrispondono al filtro m_symbol e m_magic.
Come risultato, una volta che il ciclo è completato, abbiamo dati 1) sull'intero conto e 2) solo sugli ordini e le posizioni appartenenti all'EA.
Tuttavia, se un EA usa diversi simboli o maghi, abbiamo bisogno di creare istanze della classe per raccogliere statistiche per ogni simbolo/magia. È qui che sorge la domanda: perché dovremmo raccogliere le statistiche (1) in queste nuove istanze, che sono già state raccolte nella prima istanza della classe?
Da qui la domanda - come all'interno della classe sapere se la sua istanza è l'unica, e quindi dobbiamo raccogliere la statistica 1, o, se l'istanza non è l'unica, non raccogliere la statistica 1, e darla fuori dalla primissima istanza (anche qui, non è chiaro come all'interno della classe, se non è l'unica istanza, reindirizzare la richiesta alla primissima istanza della classe per dare la statistica 1)
Da qui la domanda - come sapere all'interno della classe che la sua istanza è l'unica, il che significa che è necessario raccogliere la statistica 1, o, se l'istanza non è l'unica, allora non raccogliere la statistica 1, e darla fuori dalla prima istanza
Vi è già stato detto:
Meglio ancora, tutti i calcoli unici dovrebbero essere messi in una classe separata e farne un singleton.
Sviluppatori, per favore spiegate perché l'evento di tipoOnTesterPass, quando si ottimizza il numero di varianti superiore a8.6e+18, viene chiamato solo quando si crea una nuova generazione?
E perché non c'è una sola parola su questa caratteristica nel file di aiuto?
Perché dovrei scavare nella metà di un Expert Advisor per trovare una risposta, perché questa funzione funziona correttamente in un EA, mentre nell'altro scrive solo i risultati di ottimizzazione nel file su una nuova generazione?
Come posso aggirare questa limitazione?