Errori, bug, domande - pagina 1626

 
Alexey Da:

Questo comportamento è stato osservato con qualche esperto?

I registri sarebbero utili, però. Invia un biglietto a servicedesk.

Non posso ancora allegare log e file dal mio telefono. I parametri di ottimizzazione sono circa 500. Valori dei parametri da 0 a 2. 2000 iterazioni passano in un batter d'occhio. Allora tutto è lento. Con la build precedente ci volevano 120.000 corse in un giorno.
 
Alexey Navoykov:

...Altrimenti, come spiegare il fatto che uno script completamente vuoto, con solo la funzione OnStart() { }, compila oltre 400 ms!

Certo, io non scrivo compilatori, ma sono sicuro che c'è solo un certo minimo che non dipende affatto dalle dimensioni del progetto. È come chiamare un taxi e guidare fino all'entrata successiva - sembra che si sposti di un paio di metri, nel denaro un paio di centesimi, ma il prezzo minimo di 200r può anche causare una domanda - c'è un centesimo per andare, per cosa ?!
 
Alexey Oreshkin:
Naturalmente non scrivo compilatori, ma sono sicuro che ci sono semplicemente dei minimi che non dipendono affatto dalla dimensione del progetto. È come chiamare un taxi e guidare fino al prossimo ingresso - come spostato un paio di metri, nel denaro un paio di copechi, ma il prezzo minimo di servire in 200r può anche sollevare una domanda - qui per andare per un centesimo, per cosa ?!
Bene, con l'avvento di Yandex Taxi e servizi simili questo è già stato in qualche modo mitigato. E queste cifre sono abbastanza ragionevoli, perché tutti hanno bisogno di mangiare. Ma le cifre che ho citato non sono chiaramente adeguate alla complessità del compito.
 
Alexey Navoykov:

Vorrei sollevare ancora una volta il problema della compilazione lenta di MQL5. Circa tre mesi fa ho cercato di sollevare questo problema, ma non è stato capito, apparentemente i miei argomenti non erano abbastanza convincenti. Pertanto, sono tornato alla vecchia build (1159), che ha compilato tutto quasi istantaneamente (mentre con i nuovi compilatori il mio progetto ha compilato in 20 secondi).

E così una settimana fa ho cercato di passare a una nuova build. Ho pensato "dimentica i 20 secondi, sopporterò per il bene delle cose nuove". Naturalmente ho dovuto modificare un po' il codice per rispettare le nuove condizioni, il che ha rivelato diversi bug del nuovo compilatore (descritto qui).Il risultato è che il mio progetto sta compilando già da 30 secondi! Non so se ha a che fare con la complicazione del progetto o con una "complicazione" in più del compilatore, ma semplicemente non va più bene.

Il progetto contiene circa 700 Kb di codice sorgente, è un Expert Advisor che contiene un paio di dozzine di mqh. Tutto è OOP. La gente mi ha scritto prima che il rallentamento è probabilmente causato da grandi funzioni. Ne ho avuti un po'. Beh, li ho frammentati in parti più piccole e non hanno alcun effetto.

La cosa più sorprendente è che questa compilation superlunga non serve a niente. La velocità del programma è la stessa che con il vecchio compilatore, l'ho misurata appositamente. Questo richiede solo una frase: "Per cosa?

Ho la forte sensazione che ci sia un bug/malfunzionamento nel compilatore a causa del quale sta oziando in uno spazio vuoto. Come altro posso spiegare il fatto che uno script assolutamente vuoto con solo la funzione OpenStart() { } compila oltre 400 ms!È inimmaginabile che ci possa volere così tanto tempo per compilare/ottimizzare uno script vuoto. Bene, aggiungendo piccole funzioni e classi in esso, si può vedere come il tempo di compilazione cresce rapidamente.

Voglio dire subito che il mio hardware è ovviamente tutt'altro che potente - Core i5U. Ma questo non impedisce al mio progetto di compilare in 1-2 secondi su un vecchio compilatore. Rispettivamente, il dummy viene compilato in un attimo.

Noterò anche. Al compilatore manca completamente non solo il caching dei frammenti compilati in precedenza, ma anche un banale controllo per assicurarsi che il codice sorgente fosse identico. Cioè compili il tuo progetto e poi clicchi di nuovo sul pulsante "Compile" senza fare alcuna modifica e aspetti di nuovo gli stessi 30 secondi. Quanto è buono...

Mi piacerebbe sentire i commenti degli sviluppatori di MT e degli utenti del forum che lavorano con grandi progetti (sono solo io che sono preoccupato per questo problema?), quanto tempo ci vuole per compilare e su quale hardware. Vorremmo sottolineare che stiamo parlando della compilazione di un eseguibile.

Si tratta di costrutti complessi, che a volte segnalate qui come bug. Se non li usate, il tempo sarà notevolmente ridotto. Per esempio, TUTTO il codice in kodobase si compila molto più velocemente di 20 secondi. Ho una build 1368 su un portatile molto lento che compila in decine di ms. Datemi il codice per riprodurre.
 
coderex:
Ecco perché non sto cercando di dimostrare qualcosa di più, inoltre i progetti sui plus richiedono molto più tempo per costruire, anche se sono molto più grandi, ma sono abituato a costruire in pochi minuti per un file eseguibile o di libreria, mentre un progetto con diversi file con una struttura di directory richiede fino a diverse decine di minuti :) e aspettare 10-20 secondi non è un problema...
Non riesco a immaginare quanto tempo ci vorrebbe per costruire un progetto del genere in MQL. Anche gli IDE completi hanno diverse modalità di compilazione. Forse ti riferisci alla build di rilascio, mentre la maggior parte delle volte la modalità debug è sufficiente per noi. Ma in MT non si ha molto tempo per aspettare.
Inoltre, usano file precompilati, quindi le build successive saranno ovviamente più veloci
 
fxsaber:
La questione riguarda i costrutti complessi, il cui frequente fallimento viene talvolta segnalato qui come un bug. Se non li usate, il tempo sarà notevolmente ridotto. Per esempio, TUTTO il codice in kodobase si compila molto più velocemente di 20 secondi. Ho una build 1368 su un portatile molto lento che compila in decine di ms. Dammi il codice per giocare.
Non stai esagerando su TUTTI i codici? Come può essere così sicuro? Li avete provati tutti?
E per quanto riguarda i disegni complessi, sono solo tue speculazioni. Cosa c'è di complicato in loro? Se possono presentare qualche complessità, è solo nella fase di controllo della sintassi, e viene eseguita istantaneamente. Questo può essere visto, per esempio, compilando mqh, dove non viene creato alcun codice eseguibile. Così, dopo questo controllo tutte le difficoltà apparenti nelle costruzioni sintattiche sono già risolte e il compilatore sa esattamente cosa fare. Il passo successivo è l'ottimizzazione del codice eseguibile. Quindi è qui il problema.
Ok, quando sono al mio computer vi darò del codice per il replay. Ma sono già confuso dai tuoi racconti sulle decine di ms su un hardware debole. Stiamo parlando delle stesse cose? Il file dello script è .mq5? E che processore ha?
 
-Aleks-:
Il link non dà le informazioni di interesse - sii specifico.

Difficile da indovinare aprire la prima pagina del thread che ha due immagini nel primo post??

https://www.mql5.com/ru/forum/88768

Крупнейшие брокеры отмечают взрывной рост популярности MetaTrader 5
Крупнейшие брокеры отмечают взрывной рост популярности MetaTrader 5
  • recensioni: 1
  • www.mql5.com
Недавно один из национальных брокеров России Solid Financial Services запустил торговую платформу MetaTrader 5 с хеджинговой системой учета позиций...
 
Alexey Viktorov:

Difficile da indovinare aprire la prima pagina del thread che ha due immagini nel primo post??

https://www.mql5.com/ru/forum/88768

Ho guardato la prima foto - non hanno dati sul sito web sul conto dei centesimi per i cinque. Ma la seconda foto ha quei dati, ma non è chiaro se è possibile sovrapporli lì? E la limitazione del numero di ordini aperti e del volume delle posizioni... Questo non è buono in generale. Ma è bene che ci sia una possibilità.

Ma ahimè, non ho alcun incentivo a riscrivere l'intero codice (incluso spendere soldi extra per riscrivere un codice complesso).

 
-Aleks-:

Ho guardato la prima foto - non hanno dati sul sito web sul conto dei centesimi per i cinque. Ma la seconda immagine ha tali dati, ma non è chiaro se è possibile sovrapporli? E la limitazione del numero di ordini aperti e del volume delle posizioni... Questo non è buono in generale. Ma è bene che ci sia una possibilità.

Ma, ahimè, non abbiamo alcun incentivo a riscrivere l'intero codice (incluso spendere soldi extra per riscrivere il codice complesso).

Allora perché ha dovuto inventare tali ragioni? Si potrebbe dire semplicemente NICHAT e NOBODY...

Se non hai tutti quei soldi per fare trading su un conto in dollari, quali restrizioni sul numero di ordini e sui volumi possono affaticarti? È tutto strano.

 
Alexey Viktorov:

Allora perché si inventa queste ragioni? Potresti semplicemente dire che non voglio e non lo farò...

Se non ho abbastanza soldi per fare trading in un conto in dollari, quali restrizioni sul numero di ordini e sui volumi possono affaticarmi? È tutto strano.

Voglio e lo farò - ho già ordinato un corso sul lavoro con gli ordini - il modo in cui mi sento a mio agio - sto aspettando il suo arrivo per la fine dell'anno.

Faccio trading su una griglia in controtendenza, e anche con lotti crescenti, con molte coppie di valute - quindi sono necessari molti ordini e il supporto di un grande volume di posizione. Risolvo il problema con diversi trucchi, se devo svilupparli e implementarli di nuovo mi porterà solo via tempo e non migliorerà i miei risultati finanziari.