Errori, bug, domande - pagina 1812
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
"Dottore, ho qualcosa che mi fa male!" © )
Dammi un esempio di tale espressione. Un riproducibile. Allora sarete in grado di dire qualcosa.
{
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;.
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.
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:
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 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.
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.
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.
L'applicazione al SR non può essere creata -Si è verificato un errore.
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...
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.