Mi enfoque. El núcleo es el motor. - página 91

 
Реter Konow:

Otra pregunta seria.

Yo no lo he probado, pero hay dudas sobre la eficacia del intercambio rápido a través de los recursos.

Intercambio rápido, - 16 milisegundos de ida y vuelta de forma constante.

¿No se sobrecargará la unidad?

Estás cayendo en el "pecado de la optimización prematura" :-)

Haz una clase (o conjunto de funciones, si GSE no te atrae) de intercambio de datos - si en proyectos reales se retrasa, entonces pensarás en las opciones. Y mientras tanto estarás ocupado con pruebas sin sentido durante otro medio año.

P.D. por cierto, ¿has hecho algo para presentar el proyecto al público? o sólo estás rascando tu ego en el foro tradicionalmente :-)

 
Artyom Trishkin:

El comentario del gráfico tiene un tamaño limitado. ¿O no? Me he topado con él.

Creo que hay limitaciones. Yo mismo sólo paso MqlTick-ticks a EventChartCustom a través de cadenas, ya que la cola de eventos guarda la secuencia de ticks. Es muy conveniente.

 
Реter Konow:

Es decir, se puede traducir un array de cadenas en uint a través de la unión?

No recuerdo cómo está implementado, pero puedo traducir no sólo arrays de cadenas, sino otros tipos de datos a cualquier tipo (incluso en MqlTick). El código será el mismo.

¿Y es más rápido que usarStringToChar()?

No lo sé. Pruebe con MqlTick a string usando su método y luego mediante StringToChar a uint. Y viceversa, por supuesto. Medir y comparar.

Si puede, ponga un ejemplo pequeño y sencillo. No puedo entender su código.

#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:

Creo que hay limitaciones. Yo mismo sólo paso MqlTick-ticks a EventChartCustom a través de cadenas, ya que la cola de eventos guarda la secuencia de ticks. Es muy útil.

Si se trata de mensajes pequeños (de hasta 64 caracteres) y de un paso rápido y constante de ida y vuelta, hay varias opciones convenientes.

Y EventChartCustom no es el mejor, porque entra en la cola de eventos OnChartEvent().

Pero cuando se trata de una transferencia rápida de ida y vuelta de más de 1000 símbolos, EventChartCustom y la cola de eventos provocan retrasos (por ejemplo, cuando se recargan las tablas y se utiliza la animación).

El paso rápido por los recursos es cuestionable.

Dime, ¿no carga un disco?

 

A juzgar por el silencio, probablemente lo hará.

Ahí lo tienes, compruébalo).

 
Реter Konow:

Transferencia rápida a través de recursos - en cuestión.

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Nueva versión de MetaTrader 5 build 1930: Ventanas de gráficos flotantes y bibliotecas .Net en MQL5

fxsaber, 2018.12.09 00:18

Este ejemplo se ejecuta ahora 15 veces más rápido

1000000
Time[TestResource()] = 286646


A grandes rasgos, un ciclo completo de escritura/lectura de ticks a través del recurso funciona a 4 millones de ticks por segundo.


Aquí hay una palabra, ¿no pondrá una carga en la unidad?

El disco no se utiliza en la operación de recursos. Todo está en la memoria.

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

fxsaber, 2018.12.11 09:19

Comprobado, 60Mb se escriben con seguridad (MT4/5) en Recursos. Así que si hay un límite, es más alto.

 
fxsaber:


La unidad no se utiliza cuando se trabaja con recursos. Todo está en la memoria.

Gracias. Por lo tanto, esta opción se mantiene.

 
fxsaber:


La unidad no se utiliza cuando se trata de recursos. Todo está en la memoria.

¿Y el probador? ¿Los recursos creados en el probador serán visibles fuera del probador? ¿Y se crean en el probador en absoluto?

ZS. Un compañero aquí, dijo que los recursos - no se sabe si trabajan en el probador)).
 
Реter Konow:

¿Y el probador? ¿Los recursos creados en el probador serán visibles fuera del probador?

¿Y se crean en el probador en absoluto?

No he comprobado si los recursos funcionan en el Probador de Estrategias. Si funcionan allí, serán visibles en MT4 porque el Probador está dentro de la Terminal, pero no en MT5 porque el Probador no está conectado con la Terminal. Allí sólo se pueden intercambiar archivos a través de archivos comunes.


Cuando miré la información anterior, me puse en una dirección, me hice una pregunta y la respondí comprobando el código. Lo recomiendo.

 
fxsaber:

No he comprobado si los recursos funcionan en el Probador de Estrategias. Si funcionan allí, serán visibles en MT4, porque el Probador está dentro de la Terminal, pero no en MT5, porque el Probador no está conectado a la Terminal de ninguna manera. Allí sólo se pueden intercambiar archivos a través de Common-Files.

Ya veo. Tengo que comprobarlo. Lo comprobaré hoy mismo.