Domande da un "manichino" - pagina 108

 

Il mio Expert Advisor prende valori di pattern da un file csv. quando faccio trading, tutto funziona ma non nel tester. dove devo mettere il file csv e quale cartella devo creare?

L'ho fatto in questo modo

Il file viene aperto nella sottocartella MQL5\files del terminale client (o in caso di test, nella cartella_Testing_agent\MQL5\files).

Ma non funziona e dove si trova la directory dell'agente di prova?

 
openlive:
Il mio Expert Advisor prende valori di pattern da un file csv. quando faccio trading, tutto funziona, ma non nel tester. dove devo mettere il file csv e quale cartella devo creare?
Cerca nel Manuale di riferimento la descrizione della costante tester_file
 
Yedelkin:
Cercate nel Manuale di riferimento la descrizione della costante tester_file

Guardato, messo il file in Mql5\Tester\Files

ma il tester sta fermo.

Ecco il file tester stesso.

File:
 
openlive:

l'ha guardato, ha messo il file in Mql5\Tester\Files

La descrizione della funzione FileOpen() dice: "Il file si apre nella cartella del terminale client nella sottocartella MQL5\files (o nella directory_agent_tester\MQL5\files in caso di test)". Prova:

a) specificare il percorso completo del file come

string filename=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Tester\\Files\\"+"file.csv";

b)mettere il file nella directory dell'agente .

Non l'ho incontrato personalmente. Dalla descrizione delle altre funzioni di lavoro con i file, segue che nel caso dei test, il file deve essere cercato in Mql5\Tester\Files.

Un'aggiunta. Sì, avete aperto diversi file lì. E in tester_file ne avete solo uno.

 
Yedelkin:

La descrizione della funzione FileOpen() dice: " Il file si apre nella cartella del terminale client nella sottocartella MQL5\files (o catalog_agent_testing\MQL5\files in caso di test)". Prova:

a) specificare il percorso completo del file come

b)mettere il file nella directory dell'agente .

Non l'ho incontrato personalmente. Non ho trovato alcuna istruzione diretta nel Manuale, dove il file per i test dovrebbe essere messo.

Addendum. Sì, hai diversi file aperti lì. E nel tester_file è specificato solo uno.

a) l'ha fatto - non ha aiutato.

b) Non capisco come farlo. Ho solo la cartella MQL5\Tester\Files e non riesco a capire quale cartella si intende sottotesting_agent_folder\MQL5\files.

 

Qui c'è di più: https://www.mql5.com/ru/forum/1111/page182#comment_31599 Vedere due post. Funzionava se il file era in \MQL5\Files.

Bene, puoi provare a spostarlo nella cartella condivisa in TerminalInfoString(TERMINAL_COMMONDATA_PATH). E quando si apre il file stesso, impostare il flag FILE_COMMON.

 

Yedelkin:

Qui c'è di più: https://www.mql5.com/ru/forum/1111/page182#comment_31599 Vedere due post. Funzionava se il file era in \MQL5\Files.

Bene, puoi provare a spostarlo nella cartella condivisa in TerminalInfoString(TERMINAL_COMMONDATA_PATH). E impostate il flag FILE_COMMON quando aprite il file stesso.

mettere il file in C:\ProgramData\MetaQuotes\Terminal\Common\Files, mettere il flagFILE_COMMON

Il tester non dice nulla comunque.

Non so cos'altro fare

 

In altre parole, trovare il file né in Mql5\Tester\Files, né in Mql5\Files, né nella cartella condivisa dei terminali client aiuta?

Mettere il controllo FileIsExist() con l'output.

Hai scritto gli altri file usati dal programma usando tester_file?

Un'osservazione non collegata alla domanda principale. Avete

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

ecc.

Vengono chiamati ad ogni spunta. Questo è molto ingombrante. A meno che non ci sia una ragione speciale, l'handle del file dovrebbe essere ottenuto nella funzione OnInit(), controllato per la disabilità, e poi lavorare con l'handle del file aperto invece della funzioneFileOpen().

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
Yedelkin:

In altre parole, trovare il file né in Mql5\Tester\Files, né in Mql5\Files, né nella cartella condivisa dei terminali client aiuta?

Mettere il controllo FileIsExist() con l'output.

Hai scritto gli altri file usati dal programma usando tester_file?

Un'osservazione non collegata alla domanda principale. Avete

ecc.

Vengono chiamati ad ogni spunta. Questo è molto ingombrante. A meno che non ci sia una ragione speciale, l'handle del file dovrebbe essere ottenuto nella funzione OnInit(), controllato per la disabilità, e poi lavorare con l'handle del file aperto, non con la funzioneFileOpen().

I file non sono effettivamente chiamati ogni volta... c'è un controllo per una nuova barra. ma grazie comunque, lo sistemerò

Proverò FileIsExist()

 
openlive:

I file non sono effettivamente chiamati ogni volta... C'è un controllo per una nuova barra. ma grazie comunque, lo sistemerò

Sì, non l'ho guardato a fondo. Ma hai capito bene il succo :)
Motivazione: