Campionato di ottimizzazione degli algoritmi. - pagina 75

 
Qualcuno ha provato il compito del testo? Quali sono stati i risultati?
 
Se nessuno dell'amministrazione di MetaQuotes si presenta qui prima dell'11 luglio, il campionato non sarà possibile, poiché la procedura di generazione di FF per il campionato non sarà effettuata senza di loro.
 

Ora vediamo di cosa è capace il tester regolare nel problema del testo, le condizioni di ottimizzazione sono le stesse del codice presentato - il testo non è cambiato, cioè 49 lettere.

ZS. Ho trovato, secondo me, un lavoro improprio di EA con la libreria nel tester, lo segnalerò nel thread degli errori.

 

2016.06.29 02:15:16 Statistiche ottimizzazione fatta in 1 minuto e 18 secondi

2016.06.29 02:15:16 Tester ottimizzazione genetica terminata al passaggio 23552

L'ottimizzazione è terminata con il miglior risultato 35 (il numero di lettere che l'ottimizzatore ha potuto nominare correttamente su 49).

Poiché non c'è un'opzione per regolare il numero di passaggi/esecuzioni di FF nel tester standard, devo eseguire il mio algoritmo con lo stesso numero di esecuzioni di FF se voglio confrontare il mio algoritmo con quello standard.

Il mio risultato:

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

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

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

Anche se il tester stava eseguendo l'ottimizzazione su 4 core e il mio script su 1 core, ma ho ottenuto il risultato più di 100 volte più veloce nel tempo.

Ecco il testo dell'Expert Advisor per testare l'ottimizzatore interno nel compito sul testo:

//+------------------------------------------------------------------+
//|                                                      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);
}
//+------------------------------------------------------------------+

Naturalmente, e ne sono sicuro, se si esegue l'ottimizzazione nel tester diverse volte per essere sicuri dei risultati, probabilmente si otterranno risultati migliori. Ma onestamente sono troppo pigro per pulire la cache cento volte e aspettare così a lungo. Ma se qualcuno ha un sacco di tempo - può pagare un paio di volte e ottenere il risultato medio affidabile ottimizzatore personale.

Ad essere onesti, sono sorpreso dai risultati dell'ottimizzatore interno. Mi aspettavo di vedere risultati molto peggiori (senza offesa per MQ), perché usa la GA binaria. Vi ricordo che è un compito molto complicato, non solo devo scegliere l'opzione migliore tra innumerevoli opzioni per un numero limitato di corse, ma FF è una superficie discreta in cui l'algoritmo non ha nulla a cui attaccarsi.

ZZZI:

"articolo reacosciente zhovataye zhovataye mt'yuipa" - questo è stato assemblato da un tester dello staff

"raramente un articolo scientifico combina questi due tipi" - e questo è il testo del compito.

ZZZI. allegato *.set file di advisor con un risultato migliore.

File:
 
Salve! C'è qualcuno qui...?
 
Lettura.
 

Sono stato in vacanza. Dov'è il post con i file di connessione finale allegati e le opzioni (1 e 2) e preferibilmente un argomento sul perché l'opzione 2 è necessaria?

Dal momento che lo svantaggio di questa opzione ho scritto prima e non ho ottenuto una risposta

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

Pensavo che questa domanda sarà risolta dai partecipanti quando non ci sarò più (

 
Merda, tutti combattono e si disperdono
 
Igor Volodin:

Sono stato in vacanza. Dov'è il post con i file di connessione finale allegati e le opzioni (1 e 2) e preferibilmente un argomento sul perché l'opzione 2 è necessaria?

Dal momento che lo svantaggio di questa opzione ho scritto prima e non ho ottenuto una risposta

Pensavo che il problema sarà risolto dai partecipanti quando non ci sarò più (

Usare il metodo di connessione della seconda variante. Alcuni partecipanti credono che ci sia molto lavoro per rifare i loro algoritmi per la 1a variante. Mentre possiamo facilmente fare qualsiasi algoritmo per la variante 2. Pertanto questa questione è risolta.
Svantaggio della 2a opzione in modo diverso, ma nel campionato è accettabile.
Percorso delle librerie standard "ff.ex5"
 
Igor Volodin:
Oh, cavolo, sono tutti distrutti e sparpagliati.
Sono qui. Sono qui.
Stiamo aspettando i rappresentanti di MQ, senza di loro il campionato non può essere tenuto, perché solo loro possono essere fidati per generare la chiave per FF.
Motivazione: