Errores, fallos, preguntas - página 1866

 
Registro del probador
2017.04.21 09:06:58.342 RTS-6.17,M1: testing of Experts\fxsaber\Test2.ex5 from 2017.04.07 00:00 to 2017.04.08 00:00 started
2017.04.21 09:06:58.342 RTS-6.17 : real ticks begin from 2017.04.05 00:00:00

Los tics reales comienzan dos días antes de la fecha del intervalo de prueba inicial. ¿Es esto normal?

 
fxsaber:
Registro del probador

Los tics reales comienzan dos días antes de la fecha del intervalo de prueba inicial. ¿Es esto normal?

Supongo que esto se ha hecho intencionadamente, para poder calcular los indicadores que requieren una cierta cantidad de historia para sus cálculos.
 
Artyom Trishkin:
Puedo suponer que esto fue hecho a propósito - para poder calcular indicadores que requieren una cierta cantidad de historia para sus cálculos?
Las barras son suficientes para eso. El historial de garrapatas está disponible en cualquier profundidad.
 
fxsaber:
Registro del probador

Los tics reales comienzan dos días antes de la fecha del intervalo de prueba inicial. ¿Es esto normal?

¿Supone que el historial y los ticks se cargan de nuevo en el probador cada vez?

Borra la caché del historial en la carpeta del probador, ejecuta la prueba y mira el registro

 
stringo:

¿Supone que el historial y los ticks se descargan de nuevo en el probador cada vez?

Borra la caché del historial en la carpeta del probador, ejecuta la prueba y mira el registro

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

Peculiaridades del lenguaje mql5, sutilezas y trucos

fxsaber, 2017.04.07 16:00

En el probador de MT5 en modo "ticks reales", la base del historial no son los ticks reales, sino las barras M1. Esto significa que si los ticks reales no corresponden a las barras, se ignoran y en su lugar se generan ticks artificiales que están obligados a corresponder a las barras.

Al mismo tiempo, si se solicita CopyTicks para más de 128K, entonces en el probador, se tomarán no de la caché (ticks reales + generados), sino de una base de datos - ticks reales. Y conseguir un desajuste en el probador entre el historial de garrapatas y lo que el probador estaba alimentando.

Esta es una recopilación de las respuestas recibidas en la SD.
 
fxsaber:
Es una recopilación de las respuestas recibidas en el SR.
¿Y qué?
 
stringo:
¿Y qué?
Dado que CopyTicks es capaz de recuperar los datos de la base de datos compartida, ¿por qué los dos días adicionales?
 
fxsaber:
Dado que CopyTicks es capaz de recuperar los datos de la base de datos compartida, ¿por qué los dos días adicionales?

¿De qué base común? La base común de todos los agentes probadores.

En el caso general no habrá ninguna marca antes de la fecha de inicio de la prueba. Te he sugerido que borres todas las cachés del probador, ejecutes la prueba y veas los registros.

 
stringo:

¿De qué base común? La base común de todos los agentes probadores.

En general, no habrá garrapatas antes de la fecha de inicio de la prueba. Te he sugerido que borres todas las cachés del probador, ejecutes la prueba y mires los registros.

Entendido, gracias. Entonces no entendí del todo lo que significaba la SD.
 
De la SD.
Мы приняли решение отказаться от приведения неродственных структур

Ahora (1589) no compila cosas tan simples

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

¿Cómo comparar rápidamente el doble y el QNaN?

fxsaber, 2016.10.11 10:57

double Nan(long bit_value)
  {
   struct L { long   x; } l; l.x=bit_value;
   struct D { double x; } d=(D)l;
   return(d.x);
  }

double QNaN   =Nan(0x7FF7000000000000);   // QNaN

Y se hizo imposible averiguar si el doble es igual a QNaN

double QNaN2 = (double)"nan";

void OnStart()
{
  Print(QNaN == QNaN);
}


Resultado

false


Porque has hecho completamente inviable la librería TypeToBytes, que era perfectamente capaz de comparar double con QNaN

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

¿Cómo comparar rápidamente el doble y el QNaN?

fxsaber, 2016.10.11 11:14

#include <TypeToBytes.mqh>

void OnStart()
{
   if (_R(QNaN)==QNaN) {
      Alert("QNaN is QNaN");
   } else {
      Alert("Ooops");
   }   
}

Por no hablar de la enorme cantidad de otras características que pone en práctica - ejemplo.