Tela vs Etichette - pagina 17

 
Mihail Matkovskij:

A proposito di g-code, posso trovare il tuo g-code argomentando ogni parola che dico! Non come te, che fai accuse...Trovato?

Non sono un programmatore. Sono un autodidatta. Si può mettere mano a qualsiasi mio codice e chiamarlo come si vuole, ma non importa come lo si guardi, i miei codici sono lontani dal g...

 
Artyom Trishkin:
Un argomento di interesse è stato cestinato... Che tipo di persone...

Il soggetto avrebbe potuto essere interessante. Ma, ahimè, non sarà mai così.

 
Alexey Viktorov:

Non sono un programmatore. Sono un autodidatta. Si può mettere mano a qualsiasi mio codice e chiamarlo come si vuole, ma non importa come lo si guardi, i miei codici sono lontani dall'essere i più g...

Ma i codici degli altri membri della comunità, per te, sono... Beh, ovviamente sei un autodidatta. Quindi non c'è bisogno di regole non scritte che dicano che non si possono cestinare i colleghi.

Ora per le domande sul codicehttps://www.mql5.com/ru/code/24076. Naturalmente non sarò come te e non dirò che è un codice di merda... Ma farò comunque le mie osservazioni.

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   calculate();
   ArrayFill(extImg1, 0, IMG_WIDTH1*IMG_HEIGHT, 0);
   textComment(dts(lots[0])+" ", IMG_WIDTH1, 1, extImg1);
   textComment(dts(lots[1])+" ", IMG_WIDTH1, 2, extImg1);
   textComment(dts(lots[2])+" ", IMG_WIDTH1, 3, extImg1);
   textComment(dts(lots[3])+" ", IMG_WIDTH1, 4, extImg1);
   textComment(dts(lots[4])+" ", IMG_WIDTH1, 5, extImg1);
   textComment(dts(lots[5])+" ", IMG_WIDTH1, 6, extImg1);
   textComment(dts(lots[6])+" ", IMG_WIDTH1, 7, extImg1);
   textComment(dts(lots[7])+" ", IMG_WIDTH1, 8, extImg1);
   ResourceCreate("::bbb", extImg1, IMG_WIDTH1, IMG_HEIGHT, 0, 0, IMG_WIDTH1, clr_format);
  //ChartRedraw();
//--- return value of prev_calculated for next call
   return(rates_total);
}

Perché non c'è nessuna limitazione sulla frequenza di aggiornamento di BitmapLabel, se funzionerà nel tester, sul modello "all ticks"? Sperate che un ferro moderno digerisca tutto?) Dov'è l'ottimizzazione? E tu mi hai suggerito questo, quando stavo cercando un modo per emettere testo dai processi ad alto carico (uscita nel tester, sul modello "tutti i tick " , e sul grafico in loop)?

E quando ho detto che non funzionava per me ogni tick...

https://www.mql5.com/ru/forum/1111/page2979#comment_21212761

Perché non usare CCanvas, che è appositamente progettato per questo scopo? È vero, ho guardato, hai scritto da qualche parte che presumibilmente chiama funzioni non necessarie ecc. Così non hai fatto la limitazione della frequenza di aggiornamento per il tester, ma allo stesso tempo, le funzioni di CCanvas ti hanno in qualche modo ostacolato... :)

Strano...


E ora tocca a voi dirmi esattamente perché pensate che il mio codice sia "g-code". Solo, con argomenti, non con chiacchiere inutili!

 
Artyom Trishkin:
Stai ingombrando un argomento interessante... Che tipo di persone...

Tutto quello che ho fatto è stato accettare l 'offerta di partecipare al test, il che ha portato alla necessità di fare un paio di domande all'invitato...

 
Mihail Matkovskij:

...

Perché non c'è limite alla frequenza di aggiornamento di BitmapLabel se deve essere eseguito in un tester, su un modello "all ticks"? Spera che il ferro moderno digerisca tutto?). Dov'è l'ottimizzazione? E questo è quello che mi hai suggerito, quando stavo cercando un modo per emettere un testo da processi altamente caricati (uscita nel tester, su tutti i modelli di tick, e sul grafico in loop)?

...

E perché, perché tu stesso affermi che un'etichetta bitmap è più veloce di un'etichetta normale. E una singola etichetta regolare in questo caso sarebbe quasi invisibile in termini di prestazioni.

 
Dmitry Fedoseev:

Tutto quello che ho fatto è stato accettare l 'offerta di partecipare a un test, il che mi ha portato a dover fare un paio di domande all'invitato...

"Il cappello di un ladro è in fiamme"... Chiunque può scaricare il codice sorgente e ripetere le misure che ho presentato sopra! Avete solo lamentele e reclami. Inventato, "broken links" e simili...
Dmitry Fedoseev:

Perché, perché tu stesso affermi che l'etichetta bitmap è più veloce dell'etichetta normale.

Non ho detto questo. E io parlavo di emettere informazioni su più di una linea. Ecco perché ho fatto un display per emettere un gran numero di linee per misurarlo.

L'output su Labels ottimizza il grafico. Mentre in BitmapLabel è necessario passare un array di pixel, precompilandolo. In questo caso, sta riempiendo l'array di pixel ed emettendo del testo su di esso. Tutte queste operazioni, se chiamate troppo spesso, mettono a dura prova l'applicazione. Mentre per l'etichetta dovete solo passare una stringa. Questo è già stato menzionato sopra.

Potete scoprire di più sulla velocità confrontando le misure di velocità di CCanvas e delle etichette in diverse modalità:https://www.mql5.com/ru/forum/364640/page13#comment_21314045

 
Mihail Matkovskij:

Ma i codici di altri membri della comunità per voi g... Beh, ovviamente sei un autodidatta. Ecco perché non c'è bisogno di regole non scritte che dicano che non si possono cestinare i colleghi.

E ora le domande sul codice. Non voglio essere come te e dire che è un codice di merda... ...ma farò comunque i miei commenti.

Perché non c'è una limitazione sulla frequenza di aggiornamento di BitmapLabel, se funzionerà nel tester, sul modello "tutti i tick"? Sperate che un ferro moderno digerisca tutto?) Dov'è l'ottimizzazione? E tu mi hai suggerito questo, quando stavo cercando un modo per emettere testo dai processi ad alto carico (uscita nel tester, sul modello "tutti i tick " , e sul grafico in loop)?

E quando ho detto che non funzionava per me, avete iniziato a dare voce alle vostre lamentele... Presumibilmente, non capisco niente e ho dovuto chiamare TextOut - ResourseCreate - ChartRedraw senza pietà. Vero,ChartRedraw è commentato per qualche motivo...


Perché non usare CCanvas, appositamente progettato per questo scopo? Vero, vedo che hai scritto da qualche parte che presumibilmente chiama funzioni inutili, ecc. Quindi non hai fatto una limitazione della frequenza degli aggiornamenti per il tester, ma allo stesso tempo, le funzioni di CCanvas ti hanno in qualche modo ostacolato... :)

Strano...


E ora tocca a voi dirmi esattamente perché pensate che il mio codice sia "g-code". Solo, con argomenti, non con chiacchiere inutili!

  1. Su quale pianeta vivi? Dove avete trovato queste regole? Vieni in qualsiasi stazione di servizio e sentirai tutto su chi ha riparato la tua auto l'ultima volta. Anche se fosse quello con cui stai parlando ora. E non si tratta solo di automobili. È solo l'esempio più ovvio.
  2. Vi ho offerto questo codice come esempio, non per copiarlo ciecamente.
  3. Tutti i controlli e i ritardi sovraccaricano il codice ed è più difficile usare un tale codice come esempio.
  4. Di che tipo di ottimizzazione stiamo parlando se l'EA non è di trading? Quali parametri devono essere ottimizzati in esso?
  5. Dopo che hai rifiutato la mia proposta, Nikolay ha iniziato a spiegarti tutte le sottigliezze. Ho appena consigliato di guardare il suo topic su Canvas. Hai mentito dicendo che hai letto tutto. Come volete che trattino i bugiardi (per usare un eufemismo)?

Lascia che le mosche e gli scarabei stercorari curiosino nel tuo codice. Ho abbastanza altre cose interessanti e utili da fare.

 
Mihail Matkovskij:
"Il cappello di un ladro va a fuoco"?... Chiunque può scaricare il codice sorgente e ripetere le misure che ho presentato sopra! Voi, invece, non avete altro che lamentele e reclami. Inventato, "broken links" e simili...

Non ho detto questo. E io parlavo di emettere informazioni su più di una linea. Quindi, per misurare, ho fatto un display per emettere un gran numero di linee.

L'output su Labels ottimizza il grafico. Mentre in BitmapLabel è necessario passare un array di pixel, precompilandolo. In questo caso, sta riempiendo l'array di pixel ed emettendo del testo su di esso. Tutte queste operazioni, se chiamate troppo spesso, mettono a dura prova l'applicazione. Mentre per l'etichetta dovete solo passare una stringa. Questo è già stato menzionato sopra.

Si può imparare di più sulla velocità confrontando le misure di velocità di CCanvas e delle etichette in diverse modalità:https://www.mql5.com/ru/forum/364640/page13#comment_21314045

Beh, in generale, sfacciataggine e impudenza.

 
C'è una citazione con link in questo commento. Questi link permettono ancora di scaricare un file con una classe che non ha un campo limitFps, ma è referenziato. Ditemi anche che ho "disegnato" io stesso tali collegamenti.
 
Alexey Viktorov:
  1. Su quale pianeta vivi? Dove avete trovato queste regole? Andate in qualsiasi servizio auto e sentirete tutto su chi ha riparato la vostra auto l'ultima volta. Anche se fosse quello con cui stai parlando ora. E non si tratta solo di automobili. È solo l'esempio più ovvio.

Ovviamente, siamo su pianeti diversi se si segue questo paradigma...!

L'officina di automobili mi dà un esempio... :) Beh, almeno hai tirato su il morale stamattina. :)

Alexey Viktorov:

Vi ho offerto questo codice come esempio...

Allora chiedo di nuovo: qual è la differenza tra Kanvas e me? Funziona allo stesso modo. Solo le funzioni di cui avete bisogno non vengono buttate via, come la vostra. L'unica differenza è che è OOP, un livello totalmente diverso, non la vostra programmazione procedurale. :)

Alexey Viktorov:

Tutti i controlli e i ritardi sovraccaricano il codice e tale codice è più difficile da usare come esempio.

Certo, certo... Sovrascrivere... Neanche tu sei molto bravo in codice! Probabilmente ti verrà risposto con una scusa: Beh, non sono un programmatore... :) Stai solo cercando di insegnare agli altri. :)

Alexey Viktorov:

Di che tipo di ottimizzazione stiamo parlando se l'Expert Advisor non è un trading? Quali parametri dovrei ottimizzare in esso?

Sono confuso in termini di termini :) Stavo parlando dell'ottimizzazione della frequenza di aggiornamento dell'etichetta Bitmap. Cosa che non hai fatto e mi hai offerto il tuo esempio da utilizzare in processi ad alto carico.

Alexey Viktorov:
  1. Dopo che la mia offerta è stata rifiutata, Nikolai ha iniziato a spiegarti tutte le sottigliezze. Ti ho appena consigliato di guardare il suo topic sui kanvas. Hai mentito dicendo che hai letto tutto. Come volete trattare i bugiardi (per usare un eufemismo)?

In questo caso, il bugiardo sei tu! Perché non ho detto questo. Ho solo detto perché ho bisogno di un'altra libreria basata su Canvas. Infatti, un altro Canvas. Mi hai offerto la stessa Tela e funziona esattamente allo stesso modo. Nikolay non aveva alcuna voglia di spiegare cosa fare per far lavorare velocemente Kanvas nel mio compito. E ovviamente non avete le conoscenze adeguate. Hai detto a Nikolai "non perdere tempo con lui". Ha detto "sono d'accordo". Questa è la spiegazione tua e di Nikolai. Programmatori...

Alexey Viktorov:

Lascia che le mosche e gli scarabei stercorari curiosino nel tuo codice. Ho abbastanza altre cose interessanti e utili da fare.

Non dirò che il tuo è vero... Ma su una cosa sono d'accordo con te. Non è davvero necessario. Perché dovrei avere bisogno delle conclusioni di un dilettante...? Meglio andare in un'autofficina...

Questo è tutto. Non vi darò risposte più dettagliate. Perché è una perdita di tempo. Preferisco fare qualcosa di utile!