Tester di strategia. - pagina 8

 
<br / translate="no"> nel log selezionare il menu contestuale per aprire. aprire il file di log corrispondente e vedere se è stato emesso o meno. la scheda di log emette dati in modo asincrono, su un timer in modo da non rallentare il tester, quindi i dati possono perdersi nella scheda (e non nel log, cioè non nel log stesso).

Meno male che me l'hai detto :) Presto tutto avrebbe cominciato a crollare. Il file di registro è già circa 2Gb.
 
Molto spesso su diversi Expert Advisors, il tester genera dati di output vuoti (empty) durante l'ottimizzazione, passando attraverso tutti i cicli, ma senza eseguire alcuna operazione. Qualcuno sa perché questo accade?
 
Credo di aver trovato di nuovo il "bug"! :)
Non ricordo se ne ho mai scritto...
Come si è scoperto, il problema era questo:
se(CurTime()-OrderOpenTime()<900) return(0);


Per qualche ragione, l'ottimizzatore non azzera il contatore a "zero" (o qualunque cosa sia). E, probabilmente, conta il tempo globale, non il tempo di prova. In generale, non so cosa e come non è fatto correttamente, ma ho speso un sacco di nervi, mentre prendo. :) Se qualcuno ha lo stesso problema, prenda nota!

 
Nel testare la strategia, ci sono entrate in posti dove, a occhio, questo non dovrebbe accadere in alcun modo. Ho sprecato tre giorni della mia vita. E per cosa? Vedi dei numeri sopra la barra? La prima cifra è il valore dell'indicatore (linea rossa). È 1,3014. E il secondo numero è il valore della barra bassa restituito al programma. Possiamo vedere sul grafico che il minimo è sotto la linea dell'indicatore. E il minimo di questa barra è 1,3012. Ma il programma riceve il valore 1,3015. Ora capisco perché si innesca qui.
 
Spiegare cosa c'è di sbagliato in me?

Ecco il programma:
//+------------------------------------------------------------------+ int i; //+------------------------------------------------------------------+ int init () { return(0); } int deinit() { return(0); } int start() { i++; CreateArrow(DoubleToStr(i,0),Time[0],High[0],108,Aqua); i++;
  CreateArrow(DoubleToStr(i,0),Time[0],Low[0],108,Yellow); return(0); } void CreateArrow(string name, datetime time1, double price1, int code_arrow, int clr) { ObjectCreate(name,OBJ_ARROW,0,time1,price1);
  ObjectSet(nome,OBJPROP_ARROWCODE,code_arrow); ObjectSet(nome,OBJPROP_COLOR,clr); }



Ecco i risultati dell'esecuzione del tester

 
Vedi la risposta sul forum Alpari, troppo pigro per scrivere due volte.
 
Vedi la risposta sul forum Alpari, troppo pigro per scrivere due volte.

Getta il link
 
Смотри ответ на форуме Альпари , два раза лень писать.

Getta il link


http://forum.alpari-idc.ru/viewtopic.php?p=220941#220941
 
È tutto molto semplice. Per come la vedo io, i test sono in modalità di apertura della barra.
Qual è l'alto e il basso della barra che sta emergendo?
Suggerimento: Open=High=Low=Close, Volume=1

Questo è, tra l'altro, il motivo per cui la prima freccia con il colore Aqua è appena sotto la seconda Yellow.
 
È molto semplice. Per come la vedo io, i test sono in modalità di apertura della barra. <br / translate="no"> Qual è l'High e Low del bar che ha appena aperto?
Suggerimento: Open=High=Low=Close, Volume=1

Questo, tra l'altro, è il motivo per cui la prima freccia con il colore Aqua è appena sotto la seconda Yellow.

Grazie per il chiarimento.