Errores, fallos, preguntas - página 2223

 
Nikolai Semko:
Sí, ya di este enlace a su aplicación en el post 22214. Lo diré de nuevo: creo que esta es la opción más sensata hasta el momento. Y parece que no hay una implementación mejor en términos de carga mínima de la CPU y relevancia del momento de un nuevo tick.

Habrá una funcionalidad normal en los Servicios.

 
fxsaber:

En Servicios habrá una funcionalidad normal.

con suerte...

 

El terminal (1874) deja de mostrar (gráfico o consulta) el historial de barras del símbolo personalizado cuando se cambia a otro servidor de negociación. Después de reiniciar el Terminal se muestra el historial. En cuanto se cambia de nuevo a otro servidor, la situación se repite.


El historial de ticks no se resiente al cambiar de servidor de negociación. Este error no está presente allí.

 
template <typename T>
class CLASS
{
public:  
  T Func() { return(0); }
};

class CLASS2 : public CLASS<int>
{
public:
  CLASS2()
  {
    this.Func(); // ALT+G в ME не производит переход на int CLASS<int>:Func()
  }
};

¿Es así como se supone que se comporta el ME?

 

Error en FileLoad. Si dos Agentes locales con la bandera FILE_COMMON intentan leer datos a través de FileLoad, uno de los Agentes falla.

Es posible establecer banderas apropiadas en FileOpen, pero no en FileLoad. Por lo tanto, permita el acceso al archivo a través de FileLoad si el otro FileLoad lo lee.

 

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

No para los desarrolladores de MT. ¿Por qué sustituir INIT_PARAMETERS_INCORRECT?

fxsaber, 2018.07.10 20:16

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
  #property tester_file __FILE__

Antiguo bicho.

 

¿Es posible mantener tester_file en la RAM para evitar el abuso del HDD/SSD? Hay millones de pases y es horrible contar el archivo tantas veces.


Este "disco RAM" haría mucho más difícil la transferencia no autorizada de datos personales a terceros.

 

Las nuevas cachés de optimización no tienen en cuenta los cambios realizados en los archivos tester_file y Common antes de ejecutar la optimización.

Este es un ejemplo de este tipo de EA.

 
fxsaber:

Las nuevas cachés de optimización no tienen en cuenta los cambios realizados en los archivos tester_file y Common antes de ejecutar la optimización.

Este es un ejemplo de este tipo de EA.

¿Se han tenido en cuenta los antiguos o no?

Nada ha cambiado respecto a las "antiguas" cachés de optimización.

Si se desliza un archivo tester_file modificado con la misma hora de modificación del archivo, éste se considerará como no modificado.

Los archivos comunes no pueden ser controlados de ninguna manera (y nunca lo han sido), porque se desconoce cuál de ellos utiliza en su Asesor Experto

 
Slava:

Si se desliza un archivo tester modificado con la misma hora de modificación del archivo, éste será tratado como no modificado.

El tiempo de modificación actualizado no tiene efecto en el resultado. Asesor experto

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
#property tester_file __FILE__ 

sinput int NumPass = 10;

#define  TOSTRING(A) #A

void SetArray( int &Array[], const int Amount )
{
  MathSrand((int)TimeLocal());
  
  for (int i = ArrayResize(Array, Amount) - 1; i >= 0; i--)
    Array[i] = MathRand() * Amount / SHORT_MAX + 1; // Случайное положительное число
}

void OnTesterInit()
{    
  ParameterSetRange(TOSTRING(NumPass), true, 0, 0, 1, NumPass - 1); // Задали Оптимизатору количество проходов = NumPass    
  
  int Array[];
  
  SetArray(Array, NumPass);      
  FileSave(__FILE__, Array);
  
  ArrayPrint(Array);  
}

void OnTesterDeinit()
{
  ChartClose(); // Закрыли чарт Frame-выполнения советника
}

double OnTester()
{
  int Array[];
  
  return((FileLoad(__FILE__, Array) != -1) ? Array[NumPass]: 0);
}


Resultado de dos ejecuciones consecutivas


Marcado en rojo, el segundo recorrido corresponde exactamente a los valores del primer recorrido, no al segundo (segunda línea).


El registro lo confirma

Tester  set "Custom max" as optimization criterion for mathematical calculations
Tester  input parameter 'NumPass' set to: enable=true, value=0, start=0, step=1, stop=9
Tester  cache file 'tester\cache\X2.30.480532BA71563CA64BC267378A0185DD.opt' contains 10 records
Tester  Experts\fxsaber\X2.ex5 math calculations test means no history and no symbol info for EURGBP
Tester  complete optimization started
Tester  optimization already processed, total passes 10
Tester  reading of 10 result records from cache...
Tester  1 blocks of results read from cache in 0 ms
Statistics      optimization done in 0 minutes 00 seconds


Si reinicio la caché (recompilo), la primera ejecución está bien, más adelante no.