Errori, bug, domande - pagina 905

 

Ciao!

1 Ho questo problema - quando cerco di usare un simbolo in un indicatore, non quello sul grafico a cui l'indicatore è collegato, non lo disegna e viene fuori l'errore 4806... se i simboli coincidono, disegna tutto normalmente... qual è il problema? .... Ho appena iniziato a studiare il linguaggio...

 
vlad_123:

L'immagine è stata modificata.

Ecco i calcoli:

Dimostra che l'ottimizzatore sta ingannando la gente :-)

Quindi, il calcolo manuale mostra che il risultato della seconda linea è maggiore del previsto. Ma l'ottimizzatore mostra che il risultato della seconda linea è inferiore.

E l'ottimizzatore mostra un valore di risultato diverso da quello che ci si aspetta quando si calcola manualmente.

Sei sicuro che "1.90" e "2.03" siano esattamente gli stessi, e non il risultato dell'arrotondamento alla seconda cifra quando vengono visualizzati nel rapporto?

Questo è il punto, questi sono valori arrotondati per il rapporto e non possono essere la base finché non si controlla semplicemente la formula.

 
Yedelkin:
Esattamente giusto. Non nella Guida o in nessuna delle due guide per l'utente. Grazie per il link.

Il riferimento punta a una copia del certificato. Il riferimento ha avuto tutto fin dall'inizio:


 
x100intraday:

Ma comunque.

Sono interessato direttamente dagli sviluppatori: qual è l'algoritmo delle mie ulteriori azioni? Devo fare qualcosa riguardo a "MemoryException 180772428 bytes not available" (scheda Log) e "out of memory" (scheda Experts). Devo fare una domanda alla SR?

Aumentare la dimensione della memoria, passare a 64 bit, ridurre la quantità di barre sul grafico, o riscrivere il codice in una forma più frugale.

Se il programma dice che non c'è abbastanza memoria, allora c'è.

 
Renat: Il riferimento punta a una copia del riferimento. Era ed è tutto nell'aiuto fin dall'inizio:

Ho chiesto in russo : "Cos'è MetaAssist e dove posso leggere qualcosa a riguardo? Roche ha risposto che "Questo termine può essere inteso come tutto ciò che è descritto nella sezione...". Ma né tu né Roche avete risposto su cosa sia MetaAssist. Quindi non fate riferimento al "controllo intelligente" se non esiste un termine come "MetaAssist" nelle referenze russe. Avrei potuto trovare la sezione "Controllo intelligente" senza il vostro aiuto.

In altre parole, non c'era e non c'è il termine "MetaAssist" nei materiali di riferimento, il che confuta completamente la tua affermazione che "Era ed è tutto nel riferimento fin dall'inizio".

 
Renat:

Sei sicuro che i numeri "1.90" e "2.03" siano esattamente quelli e non il risultato dell'arrotondamento alla seconda cifra quando vengono mostrati nel rapporto?

Il punto è che questi sono valori arrotondati per il rapporto e non possono essere la base finché non controlliamo semplicemente la formula.

Sono d'accordo che per la prima riga dello screenshot, il risultato dell'ottimizzatore 439639 è paragonabile al calcolo manuale 444801 e la differenza può essere spiegata dagli arrotondamenti.

La mia domanda riguarda la seconda linea dove l'ottimizzatore ha calcolato 373049, mentre quello manuale aggiunge 504383.

 
Renat:
Questo è un bug temporaneo, già risolto e sarà disponibile nella build ufficiale questa settimana. Finora è stata rilasciata solo la versione beta sul nostro server demo.
Corretto nella build 742. Grazie.
 
Renat:

Aumentare la quantità di memoria, passare a 64 bit, ridurre la quantità di barre sul grafico o riscrivere il codice per essere più economico.

Se il programma dice che non c'è abbastanza memoria, è così.

Come mai,Renat? Con 1GB di memoria non disponibile circa 100MB. Ho aggiunto 3 GB (ma dato che XP x32 mantiene al massimo 3 GB, consideriamo che ne ho aggiunti solo 2) - il risultato non è cambiato. Ho aumentato il file di swap da 1.5GB a 10GB (andiamo in giro così) - di nuovo nessun risultato, stesso errore. Quanti altri maledetti GB di hussar devo stipare per compensare il piccolo buco di 100 MB? Ci deve essere una spiegazione logica ragionevole per questa circostanza. Non ho bisogno di conoscere i dettagli del codice di MT5, ma devi ammettere che hai fatto alcune modifiche in una delle build, che ora sta mangiando la memoria, sarebbe un passo abbastanza onesto.

Per una guida all'azione, i miei sinceri ringraziamenti. Tutto questo è molto bello, naturalmente,Renat. Ma è troppo ovvio e banale. Tutto quello che devo fare è ottimizzare unilateralmente qualcosa che funzionava spensieratamente circa sei mesi fa. Ma le raccomandazioni unilaterali non sono ancora sufficienti. Sembro un programmatore principiante che urla perché non riesco a fare il mio primo "Ciao, mondo! Niente affatto. Non sono io quello che ha rovinato qualcosa che una volta funzionava e non aveva bisogno di essere riparato.

Ma dove sono, mi chiedo, le notifiche che la nuova costruzione sta mangiando di più? Io, da buon indiano, ogni volta che aggiorno il terminale, vado sul forum e studio a fondo ogni punto di innovazione e correzione. Ma non ricordo che ci sia stato un solo accenno a "Non è ora di una nuova potenza di calcolo, amico?...e preferibilmente anche un server! Insomma, dai, non tutti hanno questa possibilità. Sono già arrivato fino alle orecchie e ho quattro moduli identici (come raccomandato nei manuali delle schede madri) obsoleti e costosi di Gigabyte ciascuno, e ho raggiunto il limite architettonico, non c'è altro da aggiungere. E tra mezzo anno aspetteremo un'altra sorpresa da MQ?

Per noi, programmatori MQL, è molto più difficile adattarsi alle vostre nuove build di MT5: voi sapete cosa modificate, cancellate e aggiungete, mentre noi non lo sappiamo (senza contare le innovazioni esplicite di comandi, funzioni, librerie, ecc. che dobbiamo studiare per stare al passo con il terminale e il linguaggio). Si scopre che il vostro strumento è la logica, e ci rimane la ricerca intuitiva, l'adattamento a caso e la spalata di codice stantio. In qualche modo questo non è giusto o altro.

Comunque, su x64 lo testerò sicuramente presto e riferirò, ma qualcosa mi dice...

 
x100intraday:

Come mai,Renat? Con 1 GB di memoria non sono disponibili circa 100 MB. Aggiunto 3GB

Una volta che sei diventato un programmatore, devi capire che sei tu che inizi a consumare risorse con le tue richieste. Chiamare funzioni costose non significa affatto che si possa spegnere la questione di "come vengono effettivamente gestite le risorse".

Il modo migliore è postare il codice completo qui nel forum e l'area del problema sarà individuata immediatamente. Se non puoi farlo qui, puoi farlo nel servizio Desk (il codice sarà rimosso dopo i controlli).

ps: non abbiamo mai domande quando il sistema operativo dice che non c'è abbastanza memoria e non diamo mai la colpa a Microsoft per questo.

 

dopo un tranquillo aggiornamento all'ultima build, gli agenti cancellati hanno iniziato a cadere:

FD      0       Tester  23:27:14        expert file added: Experts\grider1.1.ex5. 18867 bytes loaded
KR      3       Network 23:27:14        wrong optimized parameter 7
OG      2       Tester  23:27:14        requested data synchronization error
DR      0       Tester  23:27:14        tester agent shutdown