DirectX - pagina 7

 
Aleksey Vyazmikin:

Carino. E il carico della CPU quando si apre uno scambio, sai, su Si se metti il mercato?

C'è una visualizzazione grafica della posizione aperta sul mercato? Questo è quello che mi manca in quello standard.

In quello precedente la posizione aperta è mostrata con una cornice magenta intorno al prezzo con la posizione in rosso, in quello successivo è la posizione in surplus.


 

tutto su una tela

 
Rafil Nurmukhametov:

Il processore si carica bene, nell'immagine precedente si può vedere la posizione aperta, la cornice intorno al prezzo è di colore magenta, la posizione è in meno, nell'immagine sottostante la posizione è in più


Che ne dite di limitare semplicemente la velocità di aggiornamento - non più di 10 aggiornamenti al secondo? I ritardi porteranno a un pannello di trading frizz, no?

Posso vedere l'indicazione dello stato di posizione - sembra comodo!

 
Aleksey Vyazmikin:

Che ne dite di limitare semplicemente la frequenza di aggiornamento a non più di 10 volte al secondo? Frenare causerà il blocco del pannello commerciale - no?

...

Non so come sia esattamente l'implementazione di Rafil, ma se le celle vengono ridisegnate separatamente dall'intero kanvas, si risolverebbe il problema del carico.

Per fare questo:

1. Ogni cella dovrebbe essere un'etichetta rettangolare indipendente con testo in alto, con le proprie coordinate e dimensioni nell'array.

2. Su un evento di cambiamento di valore, il suo rettangolo (sfondo) viene ridisegnato per primo, e poi il testo. L'area di ridisegno è decine di volte più piccola dell'area dell'intera tela, e quindi il carico diminuirà di decine di percento.

 
Реter Konow:

Non so esattamente come funziona l'implementazione di Rafil, ma se le celle vengono ridisegnate separatamente dall'intera tela, si risolve il problema del carico.

Per fare questo:

1. Ogni cella dovrebbe essere un'etichetta rettangolare separata con testo in alto, con le proprie coordinate e dimensioni nell'array.

2. Su un evento di cambiamento di valore, il suo rettangolo (sfondo) viene ridisegnato per primo, e poi il testo. L'area di ridisegno è decine di volte inferiore all'area dell'intera tela, e quindi il carico sarà ridotto di decine di percento.

L'essenza del bicchiere è che quando il prezzo si muove, deve essere ridisegnato nel suo insieme, ma la parte sinistra della visualizzazione - sì, ci possono essere opzioni, ma penso che ci sia un oggetto cluster (candele?) disegnato separatamente e viene ridisegnato solo quando arrivano nuove informazioni.

 
Aleksey Vyazmikin:

L'essenza del vetro è che deve essere ridisegnato nella sua interezza quando i prezzi si muovono, ma la parte sinistra della visualizzazione - sì, ci possono essere opzioni, ma penso che ci sia un oggetto cluster separato (candela?) disegnato e viene ridisegnato solo quando arrivano nuove informazioni.

Non necessariamente. I prezzi sul mercato non cambiano tutti insieme e alcune celle rimangono periodicamente inattive. Non ha senso ridisegnare l'intera tela.

Lo stesso vale per la parte sinistra. Anche se non c'è comunque un carico pesante. Se solo sullo scorrimento del grafico e sulla barra corrente. Ma non è molto.

 
Реter Konow:

Non necessariamente. I prezzi non cambiano tutti insieme e alcune celle sono occasionalmente inattive. Non ha senso ridisegnare l'intera tela.

Non è necessario, ma il prezzo si muove e di conseguenza il valore nelle celle cambia - come altro? Un'altra cosa è se si cambiano le coordinate del rettangolo con il prezzo, ma penso che sia lo stesso disegno all'interno del kanvas.

 
Aleksey Vyazmikin:

Non necessariamente, ma il prezzo si muove, il che significa che il valore nelle celle cambia - come altro? Un'altra cosa è se si cambiano le coordinate del rettangolo con il prezzo, ma credo che anche questo sia un disegno all'interno della tela.

Il prezzo si muove, il vetro è centralizzato ed è necessario ridisegnarlo. Nessuno lo mette in dubbio. Si tratta dell'area del ridisegno.

Molte celle sono inattive e non cambiano valore ad ogni evento della coppa. Per esempio - a volte i volumi limite cambiano solo in alcune celle, mentre il prezzo e i volumi in altre celle rimangono invariati. In questo caso, è uno spreco di risorse ridisegnare l'intera tela. È necessario controllare i cambiamenti nelle celle e disegnarle individualmente in caso di arrivo di un nuovo valore.

Questo semplice approccio ridurrà il carico molte volte.

Inoltre, è possibile ridurre la frequenza di uscita dei valori nelle celle.

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Виды заявок в стакане цен
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Виды заявок в стакане цен
  • www.mql5.com
Для биржевых инструментов доступно окно "Стакан цен", в котором можно посмотреть текущие заявки на покупку и продажу. Для каждой заявки указано желаемое направление торговой операции, требуемый объем и запрашиваемая цена. Для получения информации...
 
Реter Konow:

Il prezzo si muove, il bicchiere è centralizzato e si rende necessario un ridisegno. Nessuno lo discute. Si tratta dell'area del ridisegno.

Molte celle sono inattive e non cambiano valore ad ogni evento della coppa. Per esempio - a volte i valori limite cambiano solo in alcune celle, mentre il prezzo e i volumi in altre celle rimangono invariati. In questo caso, è uno spreco di risorse ridisegnare l'intera tela. È necessario controllare i cambiamenti nelle celle e disegnarle individualmente in caso di arrivo di un nuovo valore.

Questo semplice approccio ridurrà il carico molte volte.

Inoltre, è possibile ridurre la frequenza di uscita dei valori nelle celle.

Sì, capisco la tua idea, ma le informazioni sul cambio di prezzo e di volume possono spesso (ipotesi) arrivare in sincronia all'apertura del mercato.

Ricordo che volevi fare la tua tazza - qualche risultato?

 
Aleksey Vyazmikin:

Sì, capisco la tua idea, ma le informazioni sui cambiamenti di prezzo e di volume possono spesso arrivare in sincronia all'apertura del mercato.

Ricordo che volevi fare la tua tazza da mercato - qualche risultato?

Ieri ho fatto un esempio del vetro del mercato con ridisegno delle celle indipendentemente dalla tela dell'intera finestra- https://www.mql5.com/ru/forum/333652/page4.

Ho scoperto che un ridisegno separato delle celle mantiene il carico entro il 20% (il video mostra di più a causa della registrazione video), SEMPRE se TUTTE le celle sono ridisegnate a 40 fps. La normale dinamica del tumbler con questo approccio caricherà il 5-10% circa.

Il carico è elevato solo se si ridisegna un'area grande (~500*500 px) ad alta velocità senza pause (~40+ fps). Qualsiasi ritardo o riduzione dell'area di ridisegno riduce il carico di un fattore due.

DirectX
DirectX
  • 2020.03.13
  • www.mql5.com
Привет, кто-нибудь уже разобрался с directx, там есть DirectCompute...