Errori, bug, domande - pagina 1435

 

All'inizio ho pensato che fosse un problema con i miei indicatori, ma poi ho capito - tutto è glitchato.

Quando carico il terminale, la cronologia delle citazioni rimane la stessa (come se la sessione precedente non esistesse) e la cronologia non si aggiorna automaticamente.

Il prezzo è vecchio, ma per qualche motivo i buffer degli indicatori mostrano il calcolo precedente (nuovi prezzi).

Quando il mercato è aperto, la "merda" si aggiorna (apparentemente su un nuovo tick) e tutto diventa normale.

Quando il mercato è chiuso, si può contemplare la "spazzatura" dai buffer "per il fine settimana", a meno che non si aggiornino forzatamente le quotazioni.

A titolo illustrativo, allego il grafico con la SMA standard del set di indicatori MT5:

Indicatore standard per esempio

Bild 2010, ed era lo stesso su quelli vecchi.

 

Cosa è successo a MT5?

mi sono alzato la mattina e nessun EA nello strategy tester funziona... nessuna posizione aperta...

Ieri sera funzionavano tutti... oggi più di 10 EA hanno smesso di funzionare

sia vecchio che nuovo

 

Errore di compilazione: errore di generazione del codice

class A { public:
        void g() {}
};
struct B {
/**/    virtual void f() { g(); }
        virtual void g() {}
};
A *f() export { return new A(); }
void OnStart()
{
        f().g();
}
Per esempio, se rimuovete l'esportazione o commentate la linea /**/, l'errore scomparirà, il che significa che il compilatore deve essere migliorato.
 

Qual è l'abitudine dei creativi web qui di cambiare i nomi dei file negli allegati?

Mando un indicatore compilato con il nome richiesto IndicatorCAF.ex4. In allegato, "sito intelligente" riscrive il nome come ha bisogno: Indicator0AF_01.ex4.

Dimmi perché? Qual è il senso pratico in questo? Qual è la verità? Beh, ok non capisce i nomi russi e li rinomina a suo piacimento - è ancora comprensibile. Ma perché cambiare il nome di un file scritto in inglese in qualcos'altro? È un nome, non un numero...

Seleziono IndicatoreCAF.mq4


Il nome allegato a questo messaggio è corretto: IndicatorCAF.mq4


Mando un messaggio e voilà.

Per qualche ragione ho aggiunto _01 al mio precedente file ex4 (ecco perché ho delle domande)...

Ok, ho già allegato un file con questo nome - è comprensibile, ma questo è il primo file. Non ho ancora trovato questi nomi nella nostra corrispondenza.


E qual è un'altra cosa divertente - il file ex4 compilato nel mio MetaEditor Versione: 5.00 build 1214 12 Nov 2015 non visualizza oggetti grafici nel terminale della persona a cui do questo file. Ha anche il terminale MT4, build 910 e MetaEditor Versione: 5.00 build 1214 12 Nov 2015.

Il file sorgente dell'indicatore compilato da lui crea normalmente un eseguibile che funziona correttamente nel suo terminale.

Quali sono questi errori?

E poi sorge la domanda ovvia: come si comporteranno i programmi compilati nel mio editor per il mercato? La build del terminale è la 910, ma è incompatibile con le versioni precedenti a causa del nuovo compilatore. I programmi compilati nel mio editor funzioneranno sul marketplace?

 

Perché la qualità di questa icona di terminal.exe è così scarsa? È usato per visualizzare tutti gli .ex5 nel file system

(3° da terminal.exe, se la numerazione parte da 1)

Le altre icone sono di qualità normale, ad esempio

(1°) e(ultimo)

 

Errore di compilazione: errore di ottimizzazione dell'albero

#property library
class A {};
A *f() export { return new A; }
void g() {}
int h( int a, int b ) { return b; }
class B {
       virtual int function() { return h( int(g()), 1 ); }
};

Ma se si rimuove la parola chiave virtual

class B {
              int function() { return h( int(g()), 1 ); }
};
allora va bene. Che effetto ha avuto?
 
A100:

Errore di compilazione: errore di ottimizzazione dell'albero

E se si rimuove la parola chiave virtual

allora va bene. Che effetto ha avuto?
Posso esportare i metodi anche adesso? Le classi sono disponibili anche per l'esportazione?
 
coderex:
??? Mi sono perso qualcosa? Ora si possono esportare anche i metodi? E sono disponibili anche classi per l'esportazione?

Quale linea indica che il metodo è stato esportato? Il puntatore potrebbe sempre essere restituito. f() non è un metodo di classe - è una funzione in sé.

Inoltre, intendiamo l'astratto 'errore di ottimizzazione dell'albero' non legato a una particolare stringa, che è un errore in sé. Inoltre, se può essere risolto semplicemente "riordinando le stringhe" (togliendo la parola chiave virtuale), questo è un doppio errore.

 
A100:

Quale linea indica che il metodo è stato esportato? Il puntatore potrebbe sempre essere restituito. f() non è un metodo di classe - è una funzione in sé.

Inoltre, intendiamo l'astratto 'errore di ottimizzazione dell'albero' non legato a una particolare stringa, che è un errore in sé. Inoltre, se può essere risolto semplicemente "riordinando le stringhe" (rimuovendo la parola chiave virtuale), questo è un doppio errore.

Ho scritto male, riguardo al metodo, volevo scrivere un oggetto di classe (è notte dopo tutto :) )

A *f() export { return new A; }

e non sto contestando quello che hai scritto, sono solo sorpreso, perché nell'aiuto si parla di esportazione solo per le funzioni, e si scopre che si possono esportare anche gli oggetti.

 
BaTTLeBLooM:

Cosa è successo a MT5?

mi sono alzato la mattina e nessun EA nello strategy tester funziona... nessuna posizione aperta...

Ieri sera funzionavano tutti... oggi più di 10 EA hanno smesso di funzionare

sia vecchio che nuovo

Descrivi il problema in modo più dettagliato. Quale costruzione, quale sistema operativo, bit rate? Cosa c'è nei registri dei tester?