Errores, fallos, preguntas - página 2310

 
ExpertRemove no funciona correctamente en el modo de optimización.
input int Range = 0; // 1 .. 10

bool FuncInit()
{
  ExpertRemove();
  
  return(true);
}

int Count = 0;

void OnTick()
{
  static const bool Init = FuncInit();
  
  Count++;
}

double OnTester()
{
  return(Count);
}


Optimización de la ejecución. Puedes ver en el código que todos los pases deben ser terminados por ExpertRemove. Pero esto no sucede:

Core 5  pass 8 tested with error "expert removed itself in global initialization function" in 0:00:00.312
Core 5  pass 9 returned result 331851.00 in 0:00:00.125
Core 4  pass 6 tested with error "expert removed itself in global initialization function" in 0:00:00.265
Core 4  pass 7 returned result 331851.00 in 0:00:00.140
Core 1  pass 0 tested with error "expert removed itself in global initialization function" in 0:00:00.312
Core 1  pass 1 returned result 331851.00 in 0:00:00.125
Core 3  pass 4 tested with error "expert removed itself in global initialization function" in 0:00:00.296
Core 3  pass 5 returned result 331851.00 in 0:00:00.156
Core 8  pass 2 tested with error "expert removed itself in global initialization function" in 0:00:00.265
Core 8  pass 3 returned result 331851.00 in 0:00:00.140
Tester  optimization finished, total passes 10
Statistics      optimization done in 0 minutes 01 seconds
Statistics      shortest pass 0:00:00.125, longest pass 0:00:00.156, average pass 0:00:00.137
Statistics      local 10 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

La mitad de los pases han ignorado a ExpertRemove. ¿Es reproducible?


ZY Esto provoca discrepancias entre las pasadas individuales y las optimizaciones.

 
fxsaber:
typedef void (*FUNC)();
void f1() {};

void f2()
{
   f1();
}

void f2( FUNC g) 
{
   g();
}

Esto es esencialmente lo mismo que una función única con un parámetro por defecto. así es como se suele manejar, por lo que no es una solución o una muleta, es una solución perfectamente normal.

 
TheXpert:

De hecho, es lo mismo que una función con un parámetro por defecto. Así es como se suele resolver, por lo que no es una solución artificial o una muleta, sino una solución perfectamente normal.

La opción de la sobrecarga es comprensible. Pero no es nada flexible crear algo así para cada función. ¿No se puede hacer bonito en C++ también?

 
fxsaber:

La opción de la sobrecarga es comprensible. Pero no es nada flexible crear algo así para cada función. ¿No podemos hacerlo bien en C++ también?

No sé, C++ es más flexible con las constantes, pero no he trabajado con punteros de funciones como parámetros por defecto

UPD g++ se come tu código
 
TheXpert:

hz, C++ es más flexible con las constantes, pero no he trabajado específicamente con punteros de funciones como parámetros por defecto

UPD g++ se come tu código con creces

Gracias por la información.

 
fxsaber:

¿Cómo puedo conseguir un valor por defecto para el parámetro de entrada de una función?

Puedes utilizar código tipo python

typedef void (*FUNC)();

void f0() {Print(__FUNCSIG__);};
void f1() {Print(__FUNCSIG__);};

void f2( FUNC g = NULL ) {
   if (g == NULL){g = f1;}
   
   g();
}


void OnStart()
{
   f2();
   f2(f0);
}
 
Sergey Dzyublik:

Puedes utilizar código tipo python

Gracias, no sabía lo de NULL.

 

En el informe del Probador, al calcular la expectativa matemática de dos posiciones colapsadas por CloseBy, se divide por dos, en lugar de por uno. De ahí que obtengamos valores erróneos en el informe.


Y tales percances en CloseBy en el informe


 

Привет

Alquilé este [nombre del producto Mercado ha sido borrado por el moderador] para un yo y no he podido cambiar la configuración, posición número tres 3 máximo

cómo cambiar el número de posiciones múltiples de compra y venta al mismo tiempo

Philip

 
foonet:

La discusión sobre los productos del mercado está prohibida en el foro, lo siento.
La discusión sobre los productos del mercado está prohibida en el foro, lo siento.