Errores, fallos, preguntas - página 1145

 
Renat:

Así que usted da sus números, asegúrese de comenzar con contadores de cero, la medición de 5 minutos, por ejemplo, en EURUSD y el inicio de ambos programas al mismo tiempo.

ps: el hecho de leer el contador en el inite es una buena manera de engañarse a sí mismo si se es descuidado. empiece el contador desde cero si quiere hacer un experimento limpio.

Hmmm... Gracias. Miré el EURUSD en el DC - todo está bien. Estoy contando uniformemente desde cero.

No puedo repetir este experimento ahora (la Bolsa de Moscú está cerrada). Pero fue así durante el día en el mercado activo:

ExpCount (Si-6.14,M1) OnTick_count=697
TicksCount (Si-6.14,M1) OnCalculateCount=1326

Literalmente un par de minutos. ¿Hay algún problema con el corredor?

 
Fry:

Um... Gracias. Miré el EURUSD en el DC - está bien. Estoy contando uniformemente desde cero.

Ahora no puedo repetir este experimento (la Bolsa de Moscú está cerrada), pero sí lo fue en el mercado activo del día:

ExpCount (Si-6.14,M1) OnTick_count=697
TicksCount (Si-6.14,M1) OnCalculateCount=1326

Literalmente un par de minutos. ¿Hay algún problema con el corredor?

No, no depende del corredor. El terminal recibe un flujo de ticks que se entrega tanto a los indicadores como a los Asesores Expertos.

Suele significar que el indicador trabaja rápido y recibe todos los ticks. Sin embargo, es probable que el experto se retrase en sus cálculos y no pueda salir del manipulador antes de que llegue el siguiente tick. Has citado un código simple como ejemplo, pero en realidad has calculado los ticks en un Asesor Experto que funciona y que ha realizado muchos cálculos. Al menos, no estaba tan vacío como en el ejemplo.

Como resultado, el Asesor Experto se salta los ticks que llegaron más rápido que su manejador. Si no se saltan las garrapatas en este caso, se puede poner al experto a trabajar en el duro pasado. Por ejemplo, debido a sus costes, el Asesor Experto recibirá cotizaciones desfasadas durante varios segundos/minutos de la cola de ticks y leerá un perfil de mercado completamente desfasado.

 
Renat:

No.

Suele significar que el indicador funciona rápidamente y recibe todos los ticks. El Asesor Experto, por otro lado, es muy probable que sea lento en los cálculos y no tenga tiempo de salir del manejador antes de que llegue el siguiente tick.

Como resultado, el experto omitirá los ticks que vengan más rápido que su manejador. Si no se saltan las garrapatas en este caso, se puede poner a trabajar fácilmente al experto en el duro pasado. Por ejemplo, debido a sus costes, el Asesor Experto recibirá cotizaciones desfasadas durante varios segundos/minutos de la cola de ticks y leerá un perfil de mercado completamente desfasado.

Gracias. Lo tengo. Lo sospechaba por la cola. No podía creer que esta cola vacía se ralentizara tanto, ya que casi la mitad del flujo pasa volando.
 
Renat:

No tenemos ningún error.

Has intentado insertar una URL no documentada en la página del clip desde tu navegador en lugar de la URL de inserción realmente documentada y soportada. No podemos estar al tanto de cada pequeño cambio en el motor de la página de YouTube y hackear la URL compartible basada en la URL de la página.

¿Puede explicar por qué https://www.youtube.com/watch?v=XXXXXX se considera "documentado" y https://www.youtube.com/watch?v=XXXXXX "indocumentado"?

Esta es la línea regular a comprobar: ^https?:\/\/(www\.)?youtube\.com/watch\?v=\S+$

 
Roffild:

¿Puede explicar por qué https://www.youtube.com/watch?v=XXXXXX está "documentado" y https://www.youtube.com/watch?v=XXXXXX es "indocumentado"?

Esta es la línea normal que hay que comprobar: https?:\/\/(www\.)?youtube.com/watch\?v=\S+.

Si hablamos de reconocimiento de URLs de fondo en el cuerpo del mensaje, no se trata de regularidad, simplemente no estamos escalando a través de los recursos HTTPS en busca de datos estructurados.

Si nos referimos a la función normal de incrustación de clips de YouTube que se encuentra en el panel del editor, sigue produciendo enlaces HTTP de YouTube para los compartidores como http://youtu.be/ZI67sr0RXzU, incluso si se entra a través de HTTPS.


Cuando hablo de la URL documentada, sólo me refiero a lo que se inserta en el botón especial de "Vídeo", donde sólo aceptamos las urls especiales que se renderizan para el apuntalamiento de YouTube. Pero si usas enlaces dentro del texto de un post, estamos tratando de reconocer los datos estructurados dentro de esa página para hacer una vista previa.

Este es el aspecto de los datos estructurados del vídeo:

        <meta property="og:site_name" content="YouTube">
    <meta property="og:url" content="https://www.youtube.com/watch?v=ZI67sr0RXzU">
    <meta property="og:title" content="MetaTrader 5 Strategy Tester 3D Visualization">
    <meta property="og:image" content="http://i1.ytimg.com/vi/ZI67sr0RXzU/maxresdefault.jpg">

      <meta property="og:description" content="MetaTrader 5 Strategy Tester 3D Visualization">

      <meta property="og:type" content="video">
          <meta property="og:video" content="https://www.youtube.com/v/ZI67sr0RXzU?version=3&amp;amp;autohide=1">
        <meta property="og:video:type" content="application/x-shockwave-flash">
        <meta property="og:video:width" content="960">
        <meta property="og:video:height" content="720">
y así es como se muestra:
MetaTrader 5 Strategy Tester 3D Visualization
MetaTrader 5 Strategy Tester 3D Visualization
  • www.youtube.com
MetaTrader 5 Strategy Tester 3D Visualization
 

Saludos, señores desarrolladores. Que tal si se hace la posibilidad de inicializar las constantes estáticas directamente en el cuerpo de la estructura/clase, como se implementa en C++:

struct TStruct {   static const int a = 10; };

Esto suele ser mucho más conveniente y claro, en lugar de eliminar la inicialización fuera de la clase, desperdiciando líneas de código adicionales.

Ahora el compilador genera un error: '=' - uso de asignación ilegal

 
Fry:
Gracias. Lo tengo. Sospeché que era la cola. No podía creer lo lento que era esto, con casi la mitad del flujo pasando.
Tal vez no sean los frenos, sino el flujo de garrapatas del servidor de comercio. Si los ticks vienen del servidor "en paquete", entonces OnTick() del Asesor Experto es llamado una vez por "paquete" y no por cada tick en él.
 
meat:

Saludos, señores desarrolladores. Que tal si se hace la posibilidad de inicializar las constantes estáticas directamente en el cuerpo de la estructura/clase, como se implementa en C++:

Esto suele ser mucho más conveniente y claro, en lugar de eliminar la inicialización fuera de la clase, desperdiciando líneas de código adicionales.

Ahora el compilador genera un error: '=' - uso de asignación ilegal

Para ello existen constructores que funcionan también para las estructuras.
 
Renat:
Hay constructores para esto, que funcionan también para las estructuras.

Los constructores están diseñados para inicializar los miembros locales de un objeto. Y estamos hablando de variables estáticas de clase. Se inicializan fuera del cuerpo de la clase, o en el cuerpo de la clase en el lugar de la declaración (si son constantes) - este es el segundo caso del que hablo, funciona en C++, y en MQL produce un error.

 
meat:

Saludos, señores desarrolladores. ¿Qué tal si se hace posible inicializar las constantes estáticas directamente en el cuerpo de la estructura/clase, como se implementa en C++?

En realidad sólo en los pluses la inicialización de los miembros estáticos se realiza fuera de la clase. Sólo se pueden inicializar internamente las constantes de tipo integral.