Il mio approccio. Il nucleo è il motore. - pagina 91

 
Реter Konow:

Un'altra domanda seria.

Non l'ho provato personalmente, ma ci sono dubbi sull'efficacia dello scambio veloce tramite risorse.

Scambio veloce, - 16 millisecondi avanti e indietro su base costante.

L'unità non sarà sovraccaricata?

Stai cadendo nel "peccato di ottimizzazione prematura". :-)

Fate una classe (o un insieme di funzioni, se GSE non vi attira) di scambio di dati - se nei progetti reali si ritarderà, allora penserete alle opzioni. E nel frattempo sarete occupati con test senza senso per un altro semestre.

PS a proposito hai fatto qualcosa per presentare il progetto al pubblico? o stai solo grattando il tuo ego sul forum tradizionalmente :-)

 
Artyom Trishkin:

Il commento del grafico ha una dimensione limitata. O non lo è? Mi ci sono imbattuto per caso.

Penso che ci siano dei limiti. Io stesso passo solo MqlTick-ticks a EventChartCustom tramite stringhe, poiché l'event-queue salva la sequenza di tick. È terribilmente comodo.

 
Реter Konow:

Cioè, si può tradurre un array di stringhe in uint attraverso l'unione?

Non ricordo come è implementato, ma posso tradurre non solo gli array di stringhe, ma altri tipi di dati in qualsiasi tipo (anche in MqlTick). Il codice sarà lo stesso.

Ed è più veloce che usareStringToChar()?

Non lo so. Prova MqlTick a stringa usando il tuo metodo e poi via StringToChar a uint. E viceversa, ovviamente. Misurare e confrontare.

Se potete, fate un piccolo e semplice esempio. Non riesco a dare un senso al tuo codice.

#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280

void OnStart()
{    
  string Str[] = {"123", "Hello World!", "Peter Konow"};

  CONTAINER<uint> Container; // Создаем контейнер - все будет храниться в массиве простого типа (в примере выбран uint)    
  Container[0] = Str;        // Записали в контейнер строковый массив
  
  CONTAINER<uint> Container2;                 // Создаем контейнер-получатель  
  ArrayCopy(Container2.Data, Container.Data); // Скопировали в него ТОЛЬКО содержимое uint массива

  string Str2[];
  Container2[0].Get(Str2); // Получили данные в исходном виде
  ArrayPrint(Str2);
}
 
fxsaber:

Penso che ci siano dei limiti. Io stesso passo solo MqlTick-ticks a EventChartCustom tramite stringhe, poiché l'event-queue salva la sequenza di tick. È davvero comodo.

Se la domanda riguarda piccoli messaggi (fino a 64 caratteri) e il costante passaggio veloce avanti e indietro, ci sono diverse opzioni convenienti.

E EventChartCustom non è il migliore, perché entra nella coda di eventi OnChartEvent().

Ma quando si tratta di trasferire velocemente avanti e indietro più di 1000 simboli, EventChartCustom e la coda degli eventi portano a ritardi (per esempio, quando si ricaricano le tabelle e si usa l'animazione).

Il passaggio veloce attraverso le risorse è discutibile.

Dimmi, non carica un disco?

 

A giudicare dal silenzio - probabilmente sarà così.

Ecco, controllate).

 
Реter Konow:

Trasferimento veloce tramite risorse - in questione.

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

Nuova versione di MetaTrader 5 build 1930: finestre grafiche fluttuanti e librerie .Net in MQL5

fxsaber, 2018.12.09 00:18

Questo esempio ora è 15 volte più veloce

1000000
Time[TestResource()] = 286646


Approssimativamente, un ciclo completo di scrittura/lettura di tick attraverso la risorsa funziona a 4 milioni di tick al secondo.


Ecco una parola, non metterà un carico sul disco?

Il disco non viene utilizzato nell'operazione della risorsa. Tutto è nella memoria.

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

Bug, bug, domande

fxsaber, 2018.12.11 09:19

Controllato, 60Mb sono scritti in modo sicuro (MT4/5) su Resources. Quindi se c'è un limite, è più alto.

 
fxsaber:


L'unità non viene utilizzata quando si lavora con le risorse. Tutto è nella memoria.

Grazie. Quindi questa opzione rimane.

 
fxsaber:


L'unità non viene utilizzata quando si lavora con le risorse. Tutto è nella memoria.

E il tester? Le risorse create nel tester saranno visibili al di fuori del tester? E vengono creati nel tester?

ZS. Un compagno qui, ha detto che le risorse - non si sa se funzionano nel tester.))
 
Реter Konow:

E il tester? Le risorse create nel tester saranno visibili al di fuori del tester?

E vengono creati nel tester?

Non ho controllato se le risorse funzionano nello Strategy Tester. Se funzionano, saranno visibili in MT4 perché il Tester è dentro il Terminale, ma non in MT5 perché il Tester non è collegato al Terminale. Lì si possono scambiare file solo attraverso i file comuni.


Quando ho guardato le informazioni di cui sopra, ho avuto un solo modo, mi sono fatto una domanda e ho risposto controllando il codice. Lo raccomando.

 
fxsaber:

Non ho controllato se le risorse funzionano nello Strategy Tester. Se funzionano lì, saranno visibili in MT4, perché il tester è dentro il terminale, ma non in MT5, perché il tester non è collegato al terminale in alcun modo. Lì è possibile solo lo scambio attraverso Common-files.

Capisco, devo controllare. Lo controllerò oggi stesso.