La tela è forte! - pagina 63

 
Renat Akhtyamov:

Bellissimo!!!

Nikolai, per favore butta qui l'elenco del codice della formazione della tavolozza dei colori dell'arcobaleno

Se sarà sotto forma di funzione, sarà ancora più pratico
L'ho fatto molte volte. Non sono al mio computer in questo momento.
La funzione si chiama Grad.
Potete trovarlo almeno nel dopo codice di 3DSpiral
 
Nikolai Semko:

3D Moving Avarage
Domani metterò il codice nel Buy More.


Nikolai, non smetti mai di stupire!

 

Grande!

 
Prima ruotava nella mia testa) ora si può guardare. Pensiero interessante, ci ho pensato per un paio d'ore. Cosa potrebbe significare il comportamento dell'asse z...? Sembrano montagne e una pianura davanti. Come il Caucaso in Russia è il prezzo attuale e il resto dell'altopiano è la media...)
Ma se visto nello spazio, risulta essere una distanza lungo l'asse z. Ma la distanza è in cosa? Comunque, non ho ancora elaborato alcun anologo, ma mi chiedo se Nikolai ha fatto esattamente quello che ho visto nella mia testa☺
 
Maxim Romanov:
Ma se visto nello spazio, risulta essere una distanza lungo l'asse z. Ma la distanza in cosa?
Z è il periodo della MA.
In questo caso, tutte e tre le dimensioni hanno grandezze diverse:
x - tempo
y - prezzo
z è il periodo per il calcolo della media aritmetica
le loro gamme sono semplicemente scalate per adattarsi alle dimensioni dello schermo.
 

Forum sul trading, sistemi di trading automatico e test di strategia

Biblioteche: Easy Canvas

Nikolai Semko, 2020.02.17 05:15

Voglio chiarire un punto importante per i programmatori interessati quando si utilizza il kanvas in modalità tester.
Un noto programmatore di questa comunità è venuto da me con questa domanda:

- Perché in modalità tester il mio pannello creato sugli oggetti viene ridisegnato molto più velocemente che su tela, mentre in modalità normale il mio pannello viene disegnato a velocità normale su tela?

Sono riuscito a capire la ragione del problema e la sua soluzione.

Il problema è che il ridisegno degli oggetti va insieme al ridisegno di tutto lo schermo, mentre lo schermo nel tester viene ridisegnato non più frequentemente di 30 fotogrammi al secondo.

Gli oggetti sono in definitiva la stessa tela (interna), ma quando si cambiano le proprietà dell'oggetto, la tela dell'oggetto non viene generata (non ricalcolata), ma generata solo quando lo schermo viene aggiornato (ChartRedraw), il che avviene nel tester (e anche in modalità normale) non più spesso di quanto i nostri occhi possano distinguere i cambiamenti, cioè non più spesso di ~ 32 frame al secondo.

Supponiamo che il pannello cambi ogni tick. Allora la tela di default sarà anche ridisegnata ogni tick, ma il ridisegno nel tester non è ancora più frequente di ~30 msec (~30 fps).

In altre parole, la tela sarà ricomputata molto più frequentemente di quanto sia effettivamente visualizzata sullo schermo, il che si traduce in un uso sproporzionato delle risorse.

La soluzione a questo problema sarebbe assicurarsi che la tela sia ricalcolata e ridisegnata non più spesso di ogni 15-30 millisecondi di tempo del computer, e allora non ci saranno cicli inutili di ricalcolo a vuoto.

Per esempio, così:

void OnTick()
  {
  static uint lastCalc=0;
  uint cur=GetTickCount();
  if (cur-lastCalc>15) {
    ReDrawMyCanvas();
    lastCalc=cur;
   }
  }

 
Nikolai Semko:

Questo dovrebbe essere postato nel thread delle caratteristiche - utile.
 

Ciao a tutti, vorrei approfondire la mia conoscenza di Canvas

Non so nemmeno da dove cominciare. In questo momento sto immaginando che Canvas sia composto da complicate formule logaritmiche e cose del genere.

Potete darmi un esempio di come fare un bottone come sotto su tela. Ho bisogno del codice per capirlo.


 
Vladimir Pastushak:

Ciao a tutti, vorrei approfondire la mia conoscenza di Canvas

Non so nemmeno da dove cominciare. In questo momento sto immaginando che Canvas sia composto da complicate formule logaritmiche e cose del genere.

Potete darmi un esempio di come fare un pulsante su una tela come qui sotto. Ho bisogno del codice per capirlo.


È più facile usare un elemento già pronto. (come immagine Png).

Quindi è una linea con un giro un'altra linea più giro, ecc. - Poi uno più piccolo con un riempimento sotto forma di gradiente (è così che si definisce il riempimento).

Su tela si ha solo una primitiva striscia di rettangoli e cerchi con la possibilità di disegnare il contorno della nostra figura o linea, o di riempirla.

Quindi, per impostazione predefinita, è disponibile un rettangolo che viene riempito immediatamente.....

C'è anche una tela con punti per dipingere le vostre primitive (espandere la classe).

Probabilmente ha scritto molte cose che già conoscete.


C'è anche una tela 3D con matrici vettoriali

Motivazione: