Domande da un "manichino" - pagina 110

 
openlive:
2012.02.26 10:57:51 La qualità del test della storia analizzata è 100%.
2012.02.26 10:57:51 Core 1 EURUSD,H1: test di experts\pattern10000.ex5 dal 2009.12.01 00:00 al 2012.02.10 00:00 iniziato
......

Tutto sembra andare bene nei log, ma prova a cercare un errore nell'Expert Advisor.

Da un'ispezione sommaria del codice, per esempio, ho scoperto che il programma usa 3 file, ma solo uno è elencato nelle proprietà.

  int handle16=FileOpen("signal10000.csv",FILE_WRITE|FILE_CSV,";");
  int handle17=FileOpen("signal10000.dat",FILE_WRITE|FILE_BIN,";"); 

#property tester_file "primer_massivstarihpatternovdlyaraboty.csv"

 

ha cambiato il codice - ora si può vedere l'errore

2012.02.26 11:24:56 Core 1 2009.12.01 00:00:00 error = 5004

errore di apertura del file - anche se il file è in C:\ProgramData\MetaQuotes\Terminal\Common\Files e #property tester_file "primer_massivstarihpatternovdlyaraboty.csv" e il flag FILE_COMMON è controllato

File:
 

Ciao! Sto scrivendoun sempliceindicatore multicurrency per visualizzare 2 strumenti (coppie di valute) sullo stesso grafico. Ditemi quale funzione usare per selezionare ed elaborare i dati per il disegno di un dato strumento. Se avete un piccolo esempio vi sarà molto grato, grazie!

Ora l'algoritmo nudo del mio grafico attuale si presenta così

int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[])

{
int i=0;
bool vol=true;

if(i<prev_calcolato) i=prev_calcolato-1;

while(i<rates_total && !IsStopped())
{
ExtCloseBuffer[i]=close[i];
se(i>0)
{
if(close[i]>close[i-1]) vol=true;
if(close[i]<close[i-1]) vol=falso;
}

i++;
}
return(rates_total);
}

Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
  • 2010.05.17
  • Alexey Klenov
  • www.mql5.com
В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
 
openlive:

ha cambiato il codice - ora si può vedere l'errore

2012.02.26 11:24:56 Core 1 2009.12.01 00:00:00 error = 5004

errore di apertura del file - anche se il file è in C:\ProgramData\MetaQuotes\Terminal\Common\Files e #property tester_file "primer_massivstarihpatternovdlyaraboty.csv" e il flag FILE_COMMON è controllato

Se non c'è risposta domani, contattate il Service Desk con l'allegato del file. Dovrebbero essere in grado di dirvelo.
 
kandallov:

Ciao! Sto scrivendoun sempliceindicatore multicurrency per visualizzare 2 strumenti (coppie di valute) sullo stesso grafico. Ditemi quale funzione usare per selezionare ed elaborare i dati per il disegno di un dato simbolo. Se avete un piccolo esempio vi sarà molto grato, grazie!

Ora il mio algoritmo per la visualizzazione del grafico corrente assomiglia a questo

...

È possibile ricevere i dati attraverso la struttura MqlRates o separatamente per ogni serie temporale in MQL5 Riferimento / Accesso alle serie temporali e agli indicatori

È meglio usare MqlRates, perché memorizza i dati sul tempo della barra (è importante, perché le barre di diversi strumenti non sono sincronizzate), ma è più economico usare le serie temporali.

Ma il problema principale degli Expert Advisors multivaluta è la differenza di sincronizzazione - non tutte le barre dell'indice richiesto in un simbolo corrispondono allo stesso indice in un altro simbolo. E più ci si addentra nella foresta e più i partigiani sono spessi, lo spostamento degli indici si sta accumulando.

Ancora una volta dovremo risolvere il problema della diversa lunghezza degli array (a causa della diversa quantità di dati su diversi strumenti).

E il terzo problema, non tutte le barre dell'indicatore grafico possono essere mostrate (per esempio, non c'è una barra per un simbolo nativo, ma per altri, dove metterla?)

Questi sono i problemi che si profilano.

 
openlive:

Guardato, messo il file in Mql5\Tester\Files

ma il tester sta fermo.


La proprietà #property tester_file ha lo scopo di evitare di mettere qualcosa da qualche parte a mano .

file tester

stringa

Nome del file per il tester, specificando la sua estensione, racchiuso tra doppi apici (come una stringa costante). Il file specificato verrà passato al tester per il lavoro. I file di input per i test, se necessario, dovrebbero sempre essere specificati


Se qualche file datafile .csv è richiesto per il funzionamento del programma, e si trova in terminal_directory\MQL5\Files, il file verrà automaticamente spostato dal tester nelladirectory testing_agent\MQL5\Files (la #property tester_file datafile.csv deve essere specificata a questo scopo).

 
openlive:

cambiato il codice - ora l'errore è visibile

2012.02.26 11:24:56 Core 1 2009.12.01 00:00:00 error = 5004

errore di apertura del file - anche se il file è in C:\ProgramData\MetaQuotes\Terminal\Common\Files e #property tester_file "primer_massivstarihpatternovdlyaraboty.csv" e il flag FILE_COMMON è controllato

L'errore è visibile, ma non è chiaro a quale file

#property tester_file "primer_massivstarihpatternovdlyaraboty.csv"
//#property tester_file "signal10000.csv"
//#property tester_file "signal10000.csv"

Perché nelle proprietà ha commentato altri file? E a proposito c'è un errore: la stessa estensione, anche se il testo è uno di loro "signal10000.dat".

Non ho i tuoi file, quindi controlla tu stesso.

 

Ora, come facciamo a trovare questa sfortunata cartella, the_agent_testing_directory\MQL5\Files? A partire da Windows Vista, il sistema di sicurezza e la politica di sicurezza sono diventati molto più complessi e possono confondere chiunque. Il modo più semplice per trovare questa cartella è chiedere al tester, lui sa esattamente dove si trovano gli agenti di prova. Nel Tester Log alla fine di un test, viene sempre scritto il percorso dei log del tester, per esempio:

2012.02.26 16:31:09     Core 1  connection closed
2012.02.26 16:31:09     Core 1  log file "C:\Program Files\MetaTrader 5 Alpari\Tester\Agent-127.0.0.1-3000\logs\20120226.log" written
2012.02.26 16:31:09     Core 1  EURUSD,H1: 1105951 ticks (4663 bars) generated within 3796 ms (total bars in history 10867, total time 3844 ms)
2012.02.26 16:31:09     Core 1  OnTester result 0

Quindi la cartella del testing agent è qui - C:\ProgrammiMetaTrader 5 Alpari\Tester\Agent-127.0.0.1-3000\logs\20120226.log.

 
MetaDriver:

Non si può fare a testa o croce. Non si può. MetaQuotes Software Corp. è contraria. // Io penso che sia sbagliato, ma loro potrebbero sapere meglio.

C'è un'opzione che richiede un po' di tempo: usare la modalità matematica. Se non è troppo disturbo, fate una prova.

Cos'è la "modalità matematica"?
 
Rosh:

Ora, come facciamo a trovare questa sfortunata cartella, the_agent_testing_directory\MQL5\Files? A partire da Windows Vista, il sistema di sicurezza e la politica di sicurezza sono diventati molto più complessi e possono confondere chiunque. Il modo più semplice per trovare questa cartella è chiedere al tester, lui sa esattamente dove si trovano gli agenti di prova. Il percorso dei log del tester è sempre scritto nel Tester Log alla fine del test, per esempio:

Quindi, la cartella dell'agente di prova si trova qui - C:\Programmi\MetaTrader 5 Alpari\Tester\Agent-127.0.0.1-3000\logs\20120226.log.

ora dà

2012.02.26 15:47:46 Tester file C:-Usersopenlive\AppData\Roaming\MetaQuotes\Terminal\9C3619DD286B60B1DB9B989A2FFC701\MQL5\Files\signal10000.csv open error [32]

Motivazione: