Erros, bugs, perguntas - página 2310

 
ExpertRemove não está a funcionar correctamente no modo Optimize.
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);
}


Optimização de execução. Pode ver pelo código que todos os passes devem ser terminados por ExpertRemove. Mas isto não acontece:

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%)

Metade dos passes ignoraram a ExpertRemove. É reprodutível?


ZY Isto causa discrepâncias entre os passes simples e as optimizações.

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

void f2()
{
   f1();
}

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

Isto é essencialmente o mesmo que uma única função com um parâmetro por defeito. é normalmente assim que é tratado, por isso não é uma solução de trabalho ou uma muleta, é uma solução perfeitamente normal.

 
TheXpert:

De facto, é o mesmo que uma função com um parâmetro por defeito. Normalmente é assim que é resolvido, por isso não é uma alternativa ou uma muleta, mas uma solução perfeitamente normal.

A opção de sobrecarga é compreensível. Mas não é de todo flexível criar tal coisa para cada função. Não se pode tornar agradável em C++ também?

 
fxsaber:

A opção de sobrecarga é compreensível. Mas não é de todo flexível criar tal coisa para cada função. Não podemos torná-lo agradável também em C++?

Não sei, C++ é mais flexível com constantes, mas não tenho trabalhado com apontadores de funções como parâmetros padrão

UPD g++ come o seu código
 
TheXpert:

hz, C++ é mais flexível com constantes, mas eu não trabalhei especificamente com apontadores de funções como parâmetros padrão

UPD g++ come o seu código com cores vivas

Obrigado pela informação!

 
fxsaber:

Como é que se atinge um valor por defeito para o parâmetro de entrada de uma função?

Pode usar o código estilo pitão

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:

Pode usar o código estilo pitão

Obrigado, eu não sabia do NULL.

 

No relatório do Testador, quando se calcula a expectativa matemática de duas posições colapsadas por CloseBy, esta é dividida por duas, em vez de uma. Por conseguinte, obtemos valores errados no relatório.


E tais contratempos em CloseBy no relatório


 

Привет

Aluguei este [nome do produto Market has been deleted by moderator] para um eu e não fui capaz de alterar as configurações, posição número três 3 máx

como mudar o número de posições múltiplas de compra e venda ao mesmo tempo

Philip

 
foonet:

A discussão sobre os produtos do Mercado é proibida no fórum, lamentamos.
A discussão sobre os produtos do Mercado é proibida no fórum, lamentamos.