Minha insatisfação com o testador de estratégia. com os desenvolvedores do MQL - página 7

 

(Continuação)

Fiz alguns programas simples de compreensão analítica mostrando que o mercado tem um forte impacto sobre os carrapatos Ask e Bid.


o marcado já encontrou seu lugar na citação do fórum ?

isso é um HIT ... :-)

O PS/ Testador é necessário para verificar o desempenho do robô. Otimizador para garantir que os parâmetros sejam estáveis. O testador não faz estratégias e o otimizador não adivinha o mercado.

 

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

Minha insatisfação com o testador de estratégia. aos desenvolvedores de MQL

Renat Fatkhullin, 2017.12.02 15:23

E você compara como o zip deles no modo de compressão fraca se comprime. Talvez os arquivos BMP sejam assim.

Trabalhos de compressão de recursos.

Não é sério dizer tais coisas sem provas sobre o pano de fundo da refutação direta.

Pegue este código. Meu EX5 é de 1.717.722 bytes. O ZIP em seu modo de compressão mais fraco é de 1.177.567 bytes.

Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET)
Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET)
  • votos: 19
  • 2011.03.25
  • MetaQuotes Software Corp.
  • www.mql5.com
С появлением двух новых свойств стало возможным загружать одно изображение с набором из нескольких картинок. Такая технология давно используется в web-дизайне и получила название Спрайт: Важно: для использования свойств OBJPROP_XOFFSET и OBJPROP_YOFFSET обязательно указывайте размер области видимости с помощью свойств OBJPROP_XSIZE и...
 
fxsaber:

Pegue este código. Meu EX5 é de 1.717.722 bytes. ZIP no modo mais fraco - 1 177 567 bytes.

Isso mesmo, esses arquivos particulares são fracamente comprimidos e o tamanho do arquivo EX é razoável.

Naturalmente, dentro dos recursos do EX são comprimidos.

 
Renat Fatkhullin:

Isso mesmo, esses arquivos em particular comprimem mal e o tamanho do arquivo EX é razoável.

Naturalmente, dentro dos recursos EX são comprimidos.

Não, infelizmente.

void OnStart()
{
  uchar Data[];
  uchar Key[1];
  uchar Result[];
  
  FileLoad("thousands_rubies_galaxy.bmp", Data);  
  Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result));
  
  ArrayFree(Data);
  
  FileLoad("space_wind.wav", Data);  
  Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result));  
}


Resultado

826534
306648


Sua compressão ZIP é muito melhor do que EX5.

 

Os recursos são comprimidos com o algoritmo lzss mais rápido possível, não zipados.

Não somos suicidas para fechar o zíper por muito tempo e depois abrir o zíper por muito tempo.

 
Renat Fatkhullin:

Os recursos são comprimidos com o algoritmo lzss mais rápido possível, não zipados.

Não somos suicidas para fechar o zíper por muito tempo e depois abrir o zíper por muito tempo.

#define  BENCH(A)                                                              \
{                                                                             \
  const ulong StartTime = GetMicrosecondCount();                              \
  A;                                                                          \
  Print("Time[" + #A + "] = " + (string)(GetMicrosecondCount() - StartTime)); \
} 

void OnStart()
{
  uchar Data[];
  uchar Key[1];
  uchar Result[];
  
  FileLoad("thousands_rubies_galaxy.bmp", Data);  
  BENCH(Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result)))
  
  ArrayFree(Data);
  
  FileLoad("space_wind.wav", Data);  
  BENCH(Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result)))
}

Resultado

826534
Time[Print(CryptEncode(CRYPT_ARCH_ZIP,Data,Key,Result))] = 53334
306648
Time[Print(CryptEncode(CRYPT_ARCH_ZIP,Data,Key,Result))] = 29029

É um suicídio de 80ms?

 
fxsaber:




Resultado

80ms é suicídio?

Execute-o em um celoron.

E depois escalar até uma variante de tamanho de arquivo maior no projeto.

 
Renat Fatkhullin:
Execute-o em um celoron.

Trata-se de um tempo relativo, é claro. Na minha i7, a compilação do código fonte da KB leva

'demo_bitmapoffset.mq5' demo_bitmapoffset.mq5   1       1
0 error(s), 0 warning(s), compile time: 232 msec                1       1


Quando eu comento sobre isso.

//#resource "\\Files\\thousands_rubies_galaxy.bmp";
//#resource "\\Files\\space_wind.wav";


Eu recebo uma redução de 30ms.

'demo_bitmapoffset.mq5' demo_bitmapoffset.mq5   1       1
0 error(s), 0 warning(s), compile time: 202 msec                1       1


A mudança total para ZIP puro (80ms) levaria 282ms. Assim, a desaceleração seria de 21,5%. E isto é para o código fonte mais simples.

Se você pegar fontes que compilam em segundos, a desaceleração será de cerca de 1%. Parece que não é nada de mais neste caso.

 

Não, nós acreditamos e ainda acreditamos que os recursos devem ser comprimidos e descomprimidos o mais rápido possível em todo o zoológico de processadores. Há muitos processadores estrangulados pela economia, incluindo os átomos semi-vitais. Há uma perda de velocidade de uma dúzia de vezes em comparação com os processadores poderosos de hoje.

A propósito, na última construção do MT5, aumentamos drasticamente a velocidade de lançamento do terminal e do editor após uma avaliação profunda do impacto da compressão de recursos e dos métodos de inicialização de proteção. Ganhamos segundos inteiros em processadores de baixo custo.

O que não era perceptível em i7/xeon em pleno vôo, era um desastre por segundos em átomos/celebrões e outros igualmente poderosos.

 
Renat Fatkhullin:

Não, nós acreditamos e ainda acreditamos que os recursos devem ser comprimidos e descomprimidos o mais rápido possível em todo o zoológico de processadores. Há muitos processadores estrangulados pela economia, incluindo os átomos semi-vitais. Há uma perda de velocidade de uma dúzia de vezes em comparação com os processadores poderosos de hoje.

A propósito, na última construção do MT5, aumentamos drasticamente a velocidade de lançamento do terminal e do editor após uma avaliação profunda do impacto da compressão de recursos e dos métodos de inicialização de proteção. Ganhamos segundos inteiros em processadores de baixo custo.

O que era imperceptível em i7/xeon em pleno vôo, era um desastre por segundos em átomos/celebrões e outros igualmente poderosos.

Tire o chapéu para você, para tal reversão! Eu gostaria da mesma abordagem minuciosa para CopyTicks e CustomSymbols. É quase um desastre lá.