Errori, bug, domande - pagina 2685

 
Non ho trovato nessuna informazione su questo

strategy tester in modalità di ottimizzazione "Slow (enumerazione completa dei parametri" - a quale valore totale dei passi di ottimizzazione passa all'ottimizzazione genetica?

ZS: Sarei grato se ci fosse una metodologia per fare una ricerca completa in modo da non attivare l'ottimizzazione genetica
 
Di tanto in tanto il terminale MT4 si chiude spontaneamente, non c'è nulla al riguardo nel log del terminale e nulla negli eventi delle vincite. Come si può determinare la causa di tali incidenti?
 
Igor Makanu:
ZS: Sarei grato se ci fosse una metodologia per fare un overkill completo in modo che l'ottimizzazione genetica non entri in gioco

Ottimizzazione dei lotti.

 
Il difetto del debugger ME (build 2370) - StepInto (F11) e i punti di interruzione impostati non funzionano.
Il problema è che se l'azione StepOver (F10) è applicata ad una chiamata di funzione almeno una volta, non c'è modo di eseguire il debug di questa funzione in seguito.

void Increment(int &n){
   ++n;
};

void test(){
   int n = 0;
   for(int i = 0; i < 100; ++i){
      DebugBreak();
      Increment(n);
   }  
}

void OnStart(){
   test();
}

Passi per la riproduzione:
1) Eseguire il codice in modalità debug;
2) Dopo l'attivazione di un breakpoint, eseguite StepOver (F10) due volte;

Questo è tutto - ora non c'è modo di "entrare" nella funzioneIncrement, tutti i breakpoint impostati manualmente non funzionano, e invece dell'operazione StepInto (F11) viene effettivamente eseguita StepOver (F10).


 

Un difetto nel debugger ME (build 2370) - dopo l'attivazione di unpunto di interruzione invece di continuare l'esecuzione del codice premendo (F5), lo stessopunto di interruzioneviene effettivamente attivato di nuovosenza eseguire alcun codice.

#include <Generic\ArrayList.mqh>

void OnStart(){
   CArrayList<int> arr;
   for(int i = 0; i < 5; ++i){
      arr.Add(i);
      arr.Add(2*i);
   }
}

Passi di replay:
1) Impostare manualmente
il breakpoint per entrambe le linee " arr.Add()";
2) Avviare il debug (F5);
3) Utilizzare PCM per aprire il file annidato <Generic\ArrayList.mqh> in una nuova scheda.
4) Trova la linea "if(m_size==ArraySize(m_items))" nella funzione "bool CArrayList::Add(T item)" e impostail breakpoint manualmente.
5) Mentre nella scheda "
ArrayList.mqh", continuate a eseguire il codice (F5).

Questo
farà scattare lo stessobreakpoint di prima senza alcuna esecuzione effettiva di codice.

 
Bug di MT5 (build 2370) - l'attivazione di un punto di interruzione nel metodo della struttura statica causa il blocco del terminale MT.
Di conseguenza, non è possibile eseguire il debug del codicedel metodo della struttura statica:

struct A{
   static void test(){
      DebugBreak();
   }
};

void OnStart(){
   A::test();
}
 
Igor Makanu:
Non ho trovato nessuna informazione su questo

Strategy Tester in modalità "Slow (complete brute force optimization)" - a quale valore totale di passi di ottimizzazione passa all'ottimizzazione genetica?

Forum sul trading, sistemi di trading automatico e test di strategia

Domanda agli sviluppatori - Utilizzare tutti i core di calcolo durante l'ottimizzazione

Andrey Dik, 2020.03.26 23:31

È possibile impostare fino a 100 milioni di passi in modo che l'ottimizzatore non passi alla genetica.


 
Andrey Khatimlianskii:

Ho trovato questa corrispondenza, e penso di averla letta quando è successo - il risultato è un divieto per i membri, ecco perché volevo trovare la fonte originale

Ho provato in modalità di ricerca completa con un parametro - i passaggi sono numerati fuori sequenza, in generale la ricerca completa - funziona secondo una certa logica degli sviluppatori, non il concetto semantico

 
Igor Makanu:

testato in modalità di ricerca completa da un parametro - i passaggi sono numerati fuori sequenza, in generale la ricerca completa - funziona secondo una certa logica degli sviluppatori, non il concetto di significato

Quindi i compiti vengono distribuiti in pacchetti agli agenti.

1-100 al primo, 101-200 al secondo, ecc.

E nei risultati appaiono man mano che arrivano (1, 101, 2, 102, ecc.).

Facile da ordinare.

 
Andrey Khatimlianskii:

Quindi i compiti vengono distribuiti in pacchetti agli agenti.

1-100 al primo, 101-200 al secondo, ecc.

E nei risultati appaiono man mano che arrivano (1, 101, 2, 102, ecc.).

Facile da ordinare.

Ok, questa è una buona risposta, è più o meno giusta, peccato che la fonte originale non sia mai stata trovata,

resta da scoprire a quale numero totale di passaggi sarà incluso GA, finora sembra che 100 000 000 passaggi, per i miei compiti è sufficiente

Motivazione: