[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 147

 

J'ai trouvé comment dessiner l'indicateur (récursif avec initialisation, en théorie il devrait être initialisé avec une date fixe, pour que les barres sortantes ne changent pas les valeurs initiales de l'indicateur). Le langage semble être bon mais il y a un énorme problème avec la documentation du langage.

J'ai réussi à le faire de cette façon :

Si (IndicatorCounted<0) retourner avec une erreur

Si la première occurrence (IndicatorCounted==0) et nous voulons calculer l'historique complet

{

if (Bars <= Length) {initialiser les variables avec les valeurs initiales}

if (Bars > Length) { if IndicatorCounted

}

Si ce n'est pas la première inclusion (IndicatorCounted>0), alors ne comptez que les Bars-IndicatorCounted-1 bars

{

if (IndicatorCounted-1 <= Length) {initialiser les variables avec des valeurs initiales jusqu'à Length}

{ si (IndicateurCounted-1 > Longueur) calculer IndicateurCounted-1

}

QUESTIONS MAINTENANT :

Y a-t-il un moyen de rendre cet algorithme plus simple ? (c'est trop de texte)

Comment décrypter la date et l'heure, à partir de la fonction Temps ? (Je pense que nous avons besoin de la date et de l'heure d'un certain bar)

Existe-t-il quelque part un tutoriel mql4 suffisamment complet (hormis le livre de Kirill et l'aide de metaeditor) décrivant ce qui fonctionne et comment cela fonctionne (comme l'algorithme ci-dessus) ?

Où puis-je trouver une description de la bibliothèque mql stdlib ?

 

Вопрос другого уровня. Лучше свою тему создавать.

OK, merci.
 

Quelle est la cause de l'erreur 130? Comment puis-je la corriger ?

Dans le testeur, le conseiller expert fonctionne sans erreur... sur la démo, je ne peux pas ouvrir de trades...

 

130 erreur - vous spécifiez le mauvais take profit et stop loss.

Causes probables :

- Le prix n'est pas normalisé.

- Les arrêts sont très proches du marché. Il peut flotter. Il doit donc aussi être surveillé.

Si vous les avez à 5-10 pips, regardez d'où ils viennent - l'offre ou la demande.

- Le problème peut également résider dans le fait que le courtier n'est pas autorisé à placer des stops pendant l'exécution d' un ordre au marché (par exemple, brokos). Ils doivent être placés sur une commande qui est déjà ouverte.

 

Remarque : les fichiers ne peuvent être ouverts que dans le répertoire terminal/experts\files(terminal_directory\tester\files en cas de test expert) ou ses sous-dossiers.

Comment cela peut-il être mis en œuvre ? Le programme ne trouve pas automatiquement le fichier dans les sous-dossiers.

 
beruk писал(а) >>

Remarque : les fichiers ne peuvent être ouverts que dans le répertoire terminal/experts\files(terminal_directory\tester\files en cas de test expert) ou ses sous-dossiers.

Comment faire ? Le programme ne trouve pas automatiquement le fichier dans les sous-dossiers.

Et comment les rechercher ?

 

C'est là la question : comment effectuer une recherche ? Je ne trouve rien dans la documentation.

J'utilise :

#import "kernel32.dll"//bibliothèque de fonctions
int FindFirstFileA(string path, int & answer[]);//trouve le premier fichier
bool FindNextFileA(int handle, int & answer[]);//trouve les fichiers suivants, l'un après l'autre
bool FindClose(int handle);//ne fait pas de recherche
#import

mais à en juger par "ou ses sous-dossiers" cela peut être fait au moyen de MQL

 
beruk писал(а) >>

C'est là la question : comment effectuer une recherche ? Je ne trouve rien dans la documentation.

J'utilise :

#import "kernel32.dll"//bibliothèque de fonctions
int FindFirstFileA(string path, int & answer[]);//trouve le premier fichier
bool FindNextFileA(int handle, int & answer[]);//trouve les fichiers suivants un par un
bool FindClose(int handle);//fait la recherche
#import

Mais selon "ou sous-dossiers", vous pouvez le faire avec MQL.

Vous pouvez utiliser MQL pour créer un fichier et y écrire quelque chose. Vous pouvez ouvrir un fichier existant et lire quelque chose. C'est à vous de décider si ce fichier existe ou non.

 

une fois de plus :

ne peuvent être ouverts que dans le répertoire terminal\experts\files(répertoire terminal\tester\files en cas de test d'une EE) ou ses sous-dossiers.

J'utilise pour ouvrir le standard

int handle ;
handle=FileOpen('mes_données.csv',FILE_CSV|FILE_READ,';') ;

donc le fichier est créé/ouvert dans le répertoire terminal\experts\files, mais pas dans les sous-dossiers !

Je n'ai pas trouvé d'instructions sur la façon de créer/ouvrir un fichier dans des sous-dossiers, ni sur le forum ni dans la documentation.

peut-être s'agit-il d'une erreur dans la documentation ?

 
beruk >> :

...Je n'ai pas trouvé comment créer/ouvrir un fichier dans les sous-dossiers, ni sur le forum ni dans la documentation.

Vous pouvez peut-être essayer de cette manière (en créant au préalable le dossier files/my_dir) ?

handle=FileOpen('mon_dir/my_data.csv',FILE_CSV|FILE_READ,';') ;