Erros, bugs, perguntas - página 2223

 
Nikolai Semko:
Sim, já dei este link para a vossa implementação no correio 22214. Volto a dizê-lo - penso que esta é a opção mais sensata até agora. E parece não haver melhor implementação em termos de carga mínima de CPU e relevância do momento de um novo tick.

Haverá funcionalidade normal nos Serviços.

 
fxsaber:

Nos Serviços haverá uma funcionalidade normal.

esperançosamente...

 

O terminal (1874) deixa de mostrar (gráfico ou consulta) o histórico da barra do símbolo personalizado ao mudar para outro servidor comercial. Após o reinício do Terminal, é mostrado o histórico. Assim que se muda novamente para outro servidor, a situação repete-se.


Ohistórico do tick não sofre quando se muda de servidor comercial. Este insecto não está aí presente.

 
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()
  }
};

É assim que o ME se deve comportar?

 

Erro em FileLoad. Se dois agentes locais com a bandeira FILE_COMMON tentarem ler dados através do FileLoad, um dos agentes falha.

É possível colocar bandeiras apropriadas em FileOpen, mas não em FileLoad. Portanto, por favor permitir o acesso ao ficheiro através do FileLoad se o outro FileLoad o ler.

 

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Não para MT Developers! Por que substituir INIT_PARAMETERS_INCORRECT por ?

fxsaber, 2018.07.10 20:16

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

Insecto antigo.

 

É possível manter o arquivo tester_file na RAM para evitar o abuso de HDD/SSD? Há milhões de passes e é horrível contar o ficheiro tantas vezes.


Um tal "disco RAM" tornaria muito mais difícil a transferência não autorizada de dados pessoais para terceiros.

 

As novas caches de optimização não têm em conta as alterações ao ficheiro tester_file e aos ficheiros comuns antes de executar Optimisação.

Aqui está um exemplo de uma tal EA.

 
fxsaber:

As novas caches de optimização não têm em conta as alterações ao ficheiro tester_file e aos ficheiros comuns antes de executar Optimisação.

Aqui está um exemplo de uma tal EA.

Os antigos foram tidos em conta ou não?

Nada mudou das "velhas" caches de optimização.

Se der um arquivo tester_file modificado com o mesmo tempo de modificação, o arquivo será considerado como inalterado.

Os ficheiros comuns não podem ser controlados de forma alguma (e nunca o foram), porque não se sabe qual deles utiliza no seu Expert Advisor

 
Slava:

Se der um ficheiro tester_file modificado com o mesmo tempo de modificação do ficheiro, o ficheiro será tratado como não modificado.

O tempo de modificação actualizado não tem qualquer efeito sobre o resultado. Conselheiro especializado

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
#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 duas corridas consecutivas


Marcado a vermelho, a segunda corrida corresponde exactamente aos valores da primeira corrida, não da segunda (segunda linha).


O registo confirma-o

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


Se eu reiniciar a cache (recompilar), a primeira corrida está bem, mais à frente não está.