Come faccio a rendere l'output di un grafico in carattere monospaziato? - pagina 7

 
Renat Fatkhullin:

Che problema c'è a pensarci e a migliorarlo drasticamente?

C'è già una libreria MQL4-MQL5 in modalità "funziona ed è grande" che ti sta strappando i capelli. La gente lo usa seriamente per confrontare la velocità di entrambe le piattaforme.

E ora vi state offrendo non di pensare, ma di creare un nuovo strumento all'avanguardia che sarà portato in giro dicendo "MT5 è più lento".


Non capisco niente. Suggerisco, ancora una volta, se fxsaber ha il tempo e il desiderio:

1. Fare una libreria per MT5 (opzionalmente per MT4), che disabiliti le funzioni non necessarie (per ora, la grafica) in modalità tester/ottimizzatore

2. Per fare ciò, avvolgete queste funzioni costose in definizioni e, a seconda del modo di funzionamento, abilitatele o disabilitatele

Non c'è bisogno di essere così emotivi, nessuno sta attaccando MT5.

 
fxsaber:

C'è uno strumento universale che permette di misurare le prestazioni del codice nel tester con una riga. Siamo riusciti a vedere molte cose lì. In particolare, che una corsa singola è più lenta di una corsa di ottimizzazione.

A proposito del commento, gli sviluppatori hanno dato la loro risposta. Finora, io stesso accelero l'ottimizzazione di 1,5-2 volte con una linea.

E l'SD mi ha parlato di una sfumatura importante per la performance.


Preoccuparsi dei microsecondi di esecuzione della funzione è ragionevole solo in modalità di ottimizzazione. In tempo reale, non fa differenza. E il commento non ha alcun impatto sulle prestazioni dell'Expert Advisor in tempo reale, anche se è un ordine di grandezza più lento.


Ma è un fatto che quasi nessuno scrive gli EA in modo tale che girino il più velocemente possibile nel tester.

Per favore, scrivi una FAQ su come raggiungere questo obiettivo. Vi prego di avere tutti i vostri pensieri in un unico posto. Li metteremo nel tuo blog, in altri posti, potrei fare un video clip su youtube e metterlo sul canale MQ. Hai senza dubbio una vasta esperienza in queste cose sistemiche, condividiamola per il bene comune!
 
Alexey Volchanskiy:
Per favore, scrivi una FAQ su come raggiungere questo obiettivo. Che tutti i pensieri siano in un unico posto.

C'è un grande thread solo per questo. Forse qualcuno spenderà molto tempo e sforzo per compilare una FAQ sezione per sezione basata sui molti post in questo thread.


E per le prestazioni, uso sempre la stessa ricetta - TesterBenchmark + profiler. E, naturalmente, trovare un equilibrio ragionevole tra le caratteristiche del tester e il commercio reale. Ecco come è scritto MT4Orders. Il programma è finalizzato al lavoro veloce nel tester e al lavoro ideale sull'account reale. A questo scopo dobbiamo capire che ci sono alcuni controlli (a volte costosi) nello stesso tester che non sono necessari per il commercio reale. Questo si traduce in un grande risparmio. E il caching della stessa storia, ecc. Cioè, è necessario scrivere librerie che a volte hanno nelle loro viscere logiche diverse per tester e reale. Trade.mqh, purtroppo, non è una tale libreria.

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2017.02.24
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
fxsaber:

C'è un grande thread solo per questo. Forse qualcuno spenderà molto tempo e sforzo per compilare una FAQ sezione per sezione basata sui molti post in questo thread.


E per le prestazioni, uso sempre la stessa ricetta - TesterBenchmark + profiler. E naturalmente, trovare un equilibrio ragionevole tra le caratteristiche del tester e il commercio reale. Ecco come è scritto MT4Orders. Il programma è finalizzato al lavoro veloce nel tester e al lavoro ideale sull'account reale. A questo scopo dobbiamo capire che ci sono alcuni controlli (a volte costosi) nello stesso tester che non sono necessari per il commercio reale. Questo si traduce in un grande risparmio. E il caching della stessa storia, ecc. Cioè, è necessario scrivere librerie che a volte hanno nelle loro viscere logiche diverse per tester e reale. Trade.mqh, purtroppo, non è una tale libreria.

È a questo che mi riferivo nei miei post precedenti. Fare una FAQ sul ramo di cui sopra è il compito al massimo. Prendiamo l'umile compito di fare una FAQ sulla velocizzazione dell'ottimizzazione. Scrivi solo i tuoi pensieri, se c'è del codice, aggiungi del codice. Cercherò di riassumerlo, di ripassarlo e poi ci metteremo d'accordo e lo pubblicheremo. Farò la clip, ho molta esperienza, nessun problema.
 
Alexey Volchanskiy:
Prendiamo un compito modesto: fare una FAQ sulla velocizzazione dell'ottimizzazione.

L'altruismo a volte è una buona cosa. Ma il tempo non appartiene a me, appartiene alla Famiglia.

Si condividono codici e ricette umili. Questo sembra sufficiente.

Non possiedo alcun segreto.

 
fxsaber:

E lo fa correttamente. Ha senso come non fare un ChartRedraw dopo aver cambiato le proprietà di un oggetto. Per usare la terminologia

ChartRedraw dovrebbe essere chiamato dopo la scrittura di massa, non dopo ogni scrittura.

Sì, ma se ho una piccola tela, diciamo 130x80 pixel, che è meno dell'1% della finestra totale e ho bisogno di emettere informazioni correnti in essa. Così in MT4 posso farlo senza ridisegnare l'intero schermo con Update(false), ma in MT5 devo ridisegnare l'intero schermo ogni volta. Ed è un paio di ordini di grandezza più intensivo in termini di risorse. E questo non è un test, ma un argomento di lavoro.
 
Nikolai Semko:
Sì, ma se ho una piccola tela, diciamo 130x80 pixel, che è meno dell'1% della finestra totale, e ho bisogno di visualizzare informazioni attuali in essa. Così in MT4 posso farlo senza ridisegnare l'intero schermo con Update(false), ma in MT5 devo ridisegnare l'intero schermo ogni volta. Ed è un paio di ordini di grandezza più intensivo in termini di risorse. E questo non è un test, ma un argomento di lavoro.

Sono sicuro che lo schermo non è mai parzialmente ridisegnato quando si fa il kanvas o qualsiasi altra azione.

 
fxsaber:

L'altruismo a volte è una buona cosa. Ma il tempo non appartiene a me, appartiene alla Famiglia.

Si condividono codici e ricette umili. Questo sembra sufficiente.

Non ho alcun segreto.


La modestia è grande! Anch'io sono una persona modesta. L'altruismo è per la defunta Madre Teresa nella maggior parte dei casi. Anche se a volte le radici di questa brutta malattia - l'altruismo - spuntano anche in me )))

 
fxsaber:

Sono sicuro che lo schermo non è mai parzialmente ridisegnato quando si fa il kanvas o qualsiasi altra azione.


Sì, mi sono sbagliato. Ho sbagliato a dire cheResourceCreate senza ChartRedraw in MT4 ridisegna la tela ogni volta. Lo fa solo una volta ogni tanto, mentre MT5 non lo fa affatto.

Sì, certo che sono scemo. A livello di hardware il contesto dello schermo non può cambiare solo una parte dello schermo, ma l'intero schermo.
L'ho capito quando ho introdotto un piccolo ritardo Sleep(10):

File: