Campeonato de Otimização de Algoritmos. - página 75

 
Alguém já tentou a tarefa de texto? Quais foram os resultados?
 
Se ninguém da administração da MetaQuotes aparecer aqui antes de 11 de julho, o campeonato não será possível, pois o procedimento de geração de FF para o campeonato não será realizado sem eles.
 

Agora vamos ver do que o testador regular é capaz no problema do texto, as condições de otimização são as mesmas do código apresentado - o texto não mudou, ou seja, 49 letras.

ZS. Eu encontrei, em minha opinião, um trabalho impróprio da EA com biblioteca no testador, eu vou relatar em linha de erro.

 

2016.06.29 02:15:16 Estatísticas otimização feita em 1 minuto 18 segundos

2016.06.29 02:15:16 Testador otimização genética concluída no passe 23552

A otimização terminou com o melhor resultado 35 (que muitas letras que o otimizador poderia nomear corretamente dentre 49).

Como não há opção para ajustar o número de passes/execuções de FF no testador padrão, tenho que executar meu algoritmo com o mesmo número de execuções de FF se quiser comparar meu algoritmo com o padrão.

Meu resultado:

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) Hora: 475397 µs; 0.47539700 c

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) FF Funciona: 23552

2016.06.29 02:27:30.817 Roteiro OAC Dik (GBPUSD,H1) Max: 42.00000000

Embora o testador estivesse otimizando em 4 núcleos e meu roteiro em 1 núcleo, mas consegui o resultado 100+ vezes mais rápido em termos de tempo.

Aqui está o texto do consultor especializado para testar o otimizador interno na tarefa sobre o texto:

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property strict

//+------------------------------------------------------------------+
// тестовая фитнес функция чемпионата, не известна участникам
#import "FFtext.ex5"
int    GetParamCount (); 
void   GetParamProperties (double &min, double &max, double &step); 
double FF (double &array []); 
int    GetCountRunsFF (); 
void   PrintCodeToFile (double &param []); 
#import
//+------------------------------------------------------------------+

//--- input parameters
input int      Input1  = 0; 
input int      Input2  = 0; 
input int      Input3  = 0; 
input int      Input4  = 0; 
input int      Input5  = 0; 
input int      Input6  = 0; 
input int      Input7  = 0; 
input int      Input8  = 0; 
input int      Input9  = 0; 
input int      Input10 = 0; 
input int      Input11 = 0; 
input int      Input12 = 0; 
input int      Input13 = 0; 
input int      Input14 = 0; 
input int      Input15 = 0; 
input int      Input16 = 0; 
input int      Input17 = 0; 
input int      Input18 = 0; 
input int      Input19 = 0; 
input int      Input20 = 0; 
input int      Input21 = 0; 
input int      Input22 = 0; 
input int      Input23 = 0; 
input int      Input24 = 0; 
input int      Input25 = 0; 
input int      Input26 = 0; 
input int      Input27 = 0; 
input int      Input28 = 0; 
input int      Input29 = 0; 
input int      Input30 = 0; 
input int      Input31 = 0; 
input int      Input32 = 0; 
input int      Input33 = 0; 
input int      Input34 = 0; 
input int      Input35 = 0; 
input int      Input36 = 0; 
input int      Input37 = 0; 
input int      Input38 = 0; 
input int      Input39 = 0; 
input int      Input40 = 0; 
input int      Input41 = 0; 
input int      Input42 = 0; 
input int      Input43 = 0; 
input int      Input44 = 0; 
input int      Input45 = 0; 
input int      Input46 = 0; 
input int      Input47 = 0; 
input int      Input48 = 0; 
input int      Input49 = 0; 

double param []; 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit () 
{ 
  ArrayResize (param, GetParamCount ()); 
  
  param [0] = Input1; 
  param [1] = Input2; 
  param [2] = Input3; 
  param [3] = Input4; 
  param [4] = Input5; 
  param [5] = Input6; 
  param [6] = Input7; 
  param [7] = Input8; 
  param [8] = Input9; 
  param [9] = Input10; 
  param [10] = Input11; 
  param [11] = Input12; 
  param [12] = Input13; 
  param [13] = Input14; 
  param [14] = Input15; 
  param [15] = Input16; 
  param [16] = Input17; 
  param [17] = Input18; 
  param [18] = Input19; 
  param [19] = Input20; 
  param [20] = Input21; 
  param [21] = Input22; 
  param [22] = Input23; 
  param [23] = Input24; 
  param [24] = Input25; 
  param [25] = Input26; 
  param [26] = Input27; 
  param [27] = Input28; 
  param [28] = Input29; 
  param [29] = Input30; 
  param [30] = Input31; 
  param [31] = Input32; 
  param [32] = Input33; 
  param [33] = Input34; 
  param [34] = Input35; 
  param [35] = Input36; 
  param [36] = Input37; 
  param [37] = Input38; 
  param [38] = Input39; 
  param [39] = Input40; 
  param [40] = Input41; 
  param [41] = Input42; 
  param [42] = Input43; 
  param [43] = Input44; 
  param [44] = Input45; 
  param [45] = Input46; 
  param [46] = Input47; 
  param [47] = Input48; 
  param [48] = Input49; 
  //---
  return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit (const int reason) 
{ 
  PrintCodeToFile (param); 
  //---
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick () 
{ 
  //---
}
//+------------------------------------------------------------------+
//| Tester function                                                  |
//+------------------------------------------------------------------+
double OnTester () 
{ 
  double ret = FF (param); 
  
  //---
  return (ret);
}
//+------------------------------------------------------------------+

É claro, e tenho certeza disso, se você executar a otimização no testador algumas vezes para ter certeza dos resultados, você provavelmente obterá melhores resultados. Mas eu sou francamente preguiçoso demais para limpar o cache cem vezes e esperar tanto tempo. Mas se alguém tem muito tempo - pode pagar algumas vezes e obter a média de um otimizador de resultados confiável.

Para ser honesto, estou surpreso com os resultados do otimizador interno. Eu esperava ver resultados muito piores (sem ofensa ao MQ), porque ele usa GA binário. Deixe-me lembrá-lo, é uma tarefa muito complicada, não apenas preciso escolher a melhor opção entre inúmeras opções para um número limitado de corridas, mas FF é uma superfície discreta onde o algoritmo não consegue se apoiar.

ZZZI:

"Reacoscientific article zhovataye zhevataye mt'yuipa" - isto foi coletado por um testador de pessoal

"raramente um trabalho científico combina estes dois tipos" - e este é o texto da tarefa.

ZZZI. anexo *.set file of advisor com melhor resultado.

Arquivos anexados:
 
Olá! Alguém aqui...?
 
Leitura.
 

Estive de férias. Onde está o posto com os arquivos de conexão finais anexados e as opções (1 e 2) e de preferência um argumento sobre o porquê da opção 2 ser necessária?

Como a desvantagem desta opção eu escrevi antes e não obtive uma resposta

В примере библиотеки участника по 2-му есть импорт FF и в скрипте запуска и в библиотеке участника. Но если я пришлю ex файл, какой путь импорта ff туда зашивать? Как запускать на другой FF? Не продумано.

Pensei que esta questão seria resolvida pelos participantes quando eu estivesse fora (

 
Merda, todos estão lutando e se espalhando
 
Igor Volodin:

Estive de férias. Onde está o posto com os arquivos de conexão finais anexados e as opções (1 e 2) e de preferência um argumento sobre o porquê da opção 2 ser necessária?

Como a desvantagem desta opção eu escrevi antes e não obtive uma resposta

Pensei que a questão seria resolvida pelos participantes quando eu estivesse fora (

Utilizar o método de conexão por 2ª variante. Alguns participantes acreditam que há muito trabalho para refazer seus algoritmos para a variante 1-st. Embora possamos fazer facilmente qualquer algoritmo para a variante 2. Portanto, esta questão está resolvida.
Desvantagem da 2ª opção de uma maneira diferente, mas no campeonato é aceitável.
Caminho para as bibliotecas padrão "ff.ex5
 
Igor Volodin:
Oh, cara, todo mundo está todo rasgado e disperso.
Estou aqui. Estou aqui.
Estamos esperando por representantes da MQ, sem eles o campeonato não pode ser realizado, pois somente eles podem ser confiáveis para gerar a chave para o FF.