Errori, bug, domande - pagina 1812

 
Sergei Vladimirov:

"Dottore, ho qualcosa che mi fa male!" © )

Dammi un esempio di tale espressione. Un riproducibile. Allora sarete in grado di dire qualcosa.

ulong PackMagic(int bs, int type, int frac, int ll)//bs=0 - sell, bs=1 - buy (в смысле ll), type - это тип FPST
     {
        int d1;
        ulong i, frac1=frac, ll1=ll, type1=type;
        
        i=1; d1=10;
        while (ll>=d1) {d1=d1*10; i=i+1;}
              
        if (type==0 || type==2) return (frac1+ll1*Pow10frac_length+i*Pow10(frac_length+i)+
         type1*Pow10(frac_length+i+1)+bs*Pow10(frac_length+i+2)+Id1_class*Pow10(frac_length+i+3));
        else return(ll1+i*Pow10(i)+type1*Pow10(i+1)+bs*Pow10(i+2)+Id1_class*Pow10(i+3));
     }    
    
     ulong Pow10(ulong power) // power>0
     {
        ulong r=10;
        if (power==0) return 1;
        for (ulong i=2; i<=power; i++) r=r*10;
        return r;
     }

Il problema è nella funzione PackMagic. variabili esterne int frac_length=2; int Pow10frac_length=100; int Id1_class=1;.

 
Sergey Kudryavtsev:
Il problema è nella funzione PackMagic. variabili esterne int frac_length=2; int Pow10frac_length=100;.
Non hai fornito un esempio dell'errore. A quali valori di argomento questa funzione restituisce il valore sbagliato (quale?) e quale dovrebbe essere il risultato corretto?
 
Sergei Vladimirov:
Non hai dato un esempio di errore. A quali valori degli argomenti questa funzione restituisce il valore sbagliato (quale?) e quale dovrebbe essere il risultato corretto?

Per esempio:

Id1_class=1, bs=0, type=0, frac=99, ll=1, frac_length=2, Pow10frac_length=100, return ha restituito 11299.

Dovrebbe essere 1001199. In Expert, funzioni in classe, conto demo in Open.

Non è un fatto che 11299 sarà sempre restituito in caso di errore.

 
Non riproducibile. Con questi parametri, la funzione restituisce costantemente 1001199. Non ci sono nemmeno errori nella funzione stessa. Quindi, non c'è niente da dire. Molto probabilmente, il problema nel tuo Expert Advisor non è in questa funzione, ma da qualche altra parte. I valori dei parametri passati alla funzione sono diversi da quelli che ti aspetti. Di conseguenza, il risultato è diverso da quello atteso.
 

Sta giocando. Scritto il tuo codice allo script, ha dato il valore corretto (1001199) quando viene eseguito in modalità debug, ma se compilo la release e la eseguo dall'albero in MT5, ha dato 11199 costantemente. Sono riuscito a localizzare il problema, ecco il codice da riprodurre:

int frac_length = 2;

void OnStart()
{
        
        ulong i = 1;

        ulong a1 = Pow10(frac_length + i);
        ulong a2 = Pow10(frac_length + i + 1);
        ulong a3 = Pow10(frac_length + i + 2);
        ulong a4 = Pow10(frac_length + i + 3);
        
        Print(IntegerToString(a1), " ", IntegerToString(a2), " ", IntegerToString(a3), " ", IntegerToString(a4));

}  

ulong Pow10(const ulong power)
{
        ulong r = 10;
        
        if (power == 0)
                return 1;
                
        for (ulong i = 2; i <= power; i++)
                r = r*10;
                
        return r;
}

In modalità debug funziona correttamente. Ma all'inizio del rilascio dal navigatore in MT5 o produce delle sciocchezze ("1000 10000 100 100 100" invece di "1000 10000 100000 1000000") o MT5 si blocca con il pieno carico di uno dei core del processore.

Ci sono due modi per risolvere il problema. In uno di questi modi:

        ulong a1 = Pow10(frac_length + i);
        ulong a2 = Pow10(frac_length + i + (ulong)1);
        ulong a3 = Pow10(frac_length + i + (ulong)2);
        ulong a4 = Pow10(frac_length + i + (ulong)3);

O spostando la variabile globale frac_length all'interno della funzione Start().

Questo è davvero un bug del compilatore, scrivi al Service Desk.

 
MT4 ha iniziato a pesare 1,8 gigabyte (RAM). Si è mangiato tutto l'UPU, il secondo terminale non può essere acceso correttamente. Potete dirmi come "pulire" la RAM da MT?
 

Quando si passa il mouse su una recensione personale appena pubblicata per un prodotto di mercato, appaiono diversi suggerimenti/azioni. Se selezioni "modifica" e cambi la recensione, un errore "Nessun diritto" apparirà dopo aver cliccato su "Aggiorna".

L'applicazione al SR non può essere creata -Si è verificato un errore.

 
fxsaber:
Quando si passa il mouse su una recensione personale appena pubblicata per un prodotto di mercato, appaiono diversi suggerimenti/azioni. Se si seleziona "modifica" e si cambia la recensione, l'errore "No rights" appare dopo aver cliccato su "Update".

Si prega di specificare il nome e la versione del vostro browser.
Su chrome 56.0.2924.87 il volo va bene, sia con che senza aggiornare manualmente la pagina di revisione.

 
fxsaber:

L'applicazione al SR non può essere creata -Si è verificato un errore.

Capisco, devi cancellare i cookie per www.mql5.com.
A quanto pare c'è stato un aggiornamento dei principi di controllo dei token anti-cSRF.

In chrome, si può fare così:
Premi F12 mentre sei su www.mql5.com => nel dashboard vai su Application => Cookies => clicca su cookies => Cancella tutto da...
 
Sergey Dzyublik:

Si prega di specificare il nome e la versione del vostro browser.
Su Chrome 56.0.2924.87 il volo va bene, sia con che senza aggiornare manualmente la pagina di revisione.

Versione portatiledi Chrome45.0.2454.85 + Frigate.