Questions d'un "mannequin - page 108

 

Mon conseiller-expert prend des valeurs de modèle à partir d'un fichier csv. Lors du trading, tout fonctionne mais pas dans le testeur. Où dois-je placer le fichier csv et quel dossier dois-je créer ?

Je l'ai fait de cette façon

Le fichier est ouvert dans le sous-dossier MQL5\files du terminal client (ou en cas de test, dans le dossier_Testing_agent\MQL5\files).

Mais cela ne fonctionne pas et où se trouve le répertoire de l'agent de test?

 
openlive:
Mon conseiller-expert prend des valeurs de modèle à partir d'un fichier csv. Lors du trading, tout fonctionne, mais pas dans le testeur. Où dois-je placer le fichier csv et quel dossier dois-je créer ?
Consultez le manuel de référence pour la description de la constante tester_file.
 
Yedelkin:
Consultez le manuel de référence pour la description de la constante tester_file.

Je l'ai regardé, j'ai mis le fichier dans Mql5\Tester\Files.

mais le testeur reste immobile.

Voici le fichier du testeur lui-même.

Dossiers :
 
openlive:

l'a regardé, a mis le fichier dans Mql5\Tester\Files

La description de la fonction FileOpen() indique : "Le fichier s'ouvre dans le dossier du terminal client dans le sous-dossier MQL5\files (ou dans le répertoire_agent_tester\MQL5\files en cas de test)". Essayez :

a) spécifier le chemin complet vers le fichier comme

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

b)placer le fichier dans le répertoire de l'agent .

Je n'ai pas rencontré cela moi-même. De la description des autres fonctions de travail avec les fichiers, il résulte que dans le cas du test, le fichier doit être recherché dans Mql5\Tester\Files.

Un ajout. Oui, vous y avez ouvert plusieurs fichiers. Et dans tester_file vous n'en avez qu'un seul.

 
Yedelkin:

La description de la fonction FileOpen() indique : "Le fichier s'ouvre dans le dossier du terminal client dans le sous-dossier MQL5\files (ou catalog_agent_testing\MQL5\files en cas de test)". Essayez :

a) spécifier le chemin complet vers le fichier comme

b)placer le fichier dans le répertoire de l'agent .

Je n'ai pas rencontré cela moi-même. Je n'ai pas trouvé d'instruction directe dans le manuel, où le fichier de test doit être placé.

Addendum. Oui, vous avez plusieurs fichiers ouverts ici. Et dans le tester_file est spécifié seulement un.

a) l'a fait - n'a pas aidé.

b) Je ne comprends pas comment faire. Je n'ai que le dossier MQL5\Tester\Files et je n'arrive pas à savoir quel dossier est concerné par ledossier testing_agent_folder\MQL5\files.

 

En voici d'autres : https://www.mql5.com/ru/forum/1111/page182#comment_31599 Voir deux postes. Ça a fonctionné si le fichier était dans le fichier MQL5.

Vous pouvez essayer de le déplacer vers un dossier partagé dans TerminalInfoString(TERMINAL_COMMONDATA_PATH). Et lors de l'ouverture du fichier lui-même, définissez l'indicateur FILE_COMMON.

 

Yedelkin:

En voici d'autres : https://www.mql5.com/ru/forum/1111/page182#comment_31599 Voir deux postes. Ça a fonctionné si le fichier était dans le fichier MQL5.

Vous pouvez essayer de le déplacer vers un dossier partagé dans TerminalInfoString(TERMINAL_COMMONDATA_PATH). Et définissez l'indicateur FILE_COMMON lors de l'ouverture du fichier lui-même.

placez le fichier dans C:\ProgramData\MetaQuotes\Terminal\Common\Files, mettez l'indicateurFILE_COMMON

Le testeur ne dit rien de toute façon.

Je ne sais pas quoi faire d'autre

 

En d'autres termes, trouver le fichier ni dans Mql5\Tester\Files, ni dans Mql5\Files, ni dans le dossier partagé des terminaux clients est utile ?

Mettre la vérification FileIsExist() avec la sortie.

Avez-vous écrit les autres fichiers utilisés par le programme en utilisant tester_file ?

Une remarque sans rapport avec la question principale. Avez-vous

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,";");

etc.

Sont appelés sur chaque tique. C'est très encombrant. À moins d'une raison particulière, le handle de fichier doit être obtenu dans la fonction OnInit(), vérifié pour l'invalidité, et ensuite travailler avec le handle de fichier ouvert au lieu de la fonctionFileOpen().

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

En d'autres termes, trouver le fichier ni dans Mql5\Tester\Files, ni dans Mql5\Files, ni dans le dossier partagé des terminaux clients est utile ?

Mettre la vérification FileIsExist() avec la sortie.

Avez-vous écrit les autres fichiers utilisés par le programme en utilisant tester_file ?

Une remarque sans rapport avec la question principale. Avez-vous

etc.

Sont appelés sur chaque tique. C'est très encombrant. À moins d'une raison particulière, le handle de fichier doit être obtenu dans la fonction OnInit(), vérifié pour l'invalidité, et ensuite travailler avec le handle de fichier ouvert, et non avec la fonctionFileOpen().

Les fichiers ne sont pas réellement appelés à chaque tic... il y a un contrôle pour une nouvelle barre. mais merci quand même, je vais le corriger

Je vais essayer FileIsExist().

 
openlive:

Les fichiers ne sont pas réellement appelés à chaque tic... Il y a un contrôle pour une nouvelle barre. Mais merci quand même, je vais le corriger.

Ouais, je ne l'ai pas regardé attentivement. Mais tu as bien compris l'essentiel :)
Raison: