Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 936

 
AlexeyVik:
Non vérifié, mais qu'est-ce qui vous empêche de le vérifier vous-même ? Il suffit d'enregistrer le modèle avec tous les indicateurs sous le nom de l'EA et ensuite, lorsque vous démarrez l'EA dans le testeur, tous les indicateurs seront chargés et fonctionneront probablement correctement. Mais il est possible qu'ils prennent les valeurs des onglets "Commerce" et "Historique du compte".
J'ai essayé. Pas encore. Je vais réessayer.
 
kosmos0975:
Je l'ai essayé. Je ne peux pas encore le voir. Je vais réessayer.
Est-il vraiment nécessaire de faire un tel gâchis avec les indicateurs ? Ne serait-il pas plus simple de tout mettre dans le conseiller expert ?
 
AlexeyVik:
Est-il vraiment nécessaire de faire une telle déformation des indicateurs ? Ne serait-il pas plus simple de tout mettre dans le conseiller expert ?

Au fil du temps, le conseiller expert sera encombré de conditions supplémentaires pour un fonctionnement correct et deviendra inflexible.

(Peut-être, c'est une perversion. Nous, les Russes, ne cherchons pas les voies faciles :)

 
Bonjour !
Comment peut-on définir "Le marché est fermé" dans l'EA ?
 
abeiks:
Bonjour !
Comment définir "Le marché est fermé" dans Expert Advisor ?

Pourquoi voulez-vous faire ça ? Si le marché est fermé, il n'y aura pas de ticks, et donc le conseiller expert ne fonctionnera pas.

Mais si vous en avez vraiment besoin, essayez ceci.

MarketInfo(Symbol(), MODE_TRADEALLOWED);

Si le marché est ouvert, il renvoie 1. Si le marché est fermé, il doit renvoyer 0).

 

Voici le problème : j'ai besoin de déterminer la valeur minimale et maximale du prix des 100 dernières barres, par exemple, puis de fixer la hausse ou la baisse lorsque le prix descend ou monte, afin de pouvoir dessiner un modèle de renversement comme 1 2 3. Je ne comprends pas la différence entre les fonctions ArrayMaximum et iHighest. Si je comprends bien, le résultat de leurs calculs sera uniquement l'indice de la barre maximale dans l'intervalle spécifié du tableau ? Est-il nécessaire d'utiliser l'opérateur for lorsque l'on travaille avec des tableaux pour des calculs, comme dans l'exemple de la question 26 du manuel ? J'ai changé ce code par le suivant

//-------------------------------------------------------------------- //multiprice.mq4 // Conçu pour être utilisé comme exemple dans le manuel MQL4. //-------------------------------------------------------------------- extern int Quant_Bars=100 ; // Nombre de barres //-------------------------------------------------------------------- int start() // Fonction spéciale start { int i ; // Numéro de barre double Minimum=Bid, // Prix minimum Maximum=Bid ; // Prix maximum for(i=0;i<=Quant_Bars-1;i++) // De zéro ( !) à .) if (Low[i]< Minimum) // Si < connu Minimum=Low[i] ; //alors il sera Min if (High[i]> Maximum) // Si > connu Maximum=High[i] ; //alors il sera Max double Level_1, // Niveau de signal 1 Level_2, // Niveau de signal 2 Price ; // Prix actuel Level_1=Minimum ; // Fixe le niveau minimum Level_2=Maximum ; // Fixe le niveau maximum Price=Bid ;                                  // Demande de prix if (Price<Level_1) { // Vérification de la condition complexe Alert("Un modèle de vente a été formé") ; } if (Price<Level_2) { // Vérification de la condition complexe Alert("Un modèle d'achat a été formé") ; // Rapport } return ; } //-------------------------------------------------------------------- Mais il produit en quelque sorte un modèle d'achat à chaque tick, alors qu'il ne devrait signaler que lorsque le minimum ou le maximum a changé.  



 
silachara:

Pourquoi voulez-vous faire ça ? Si le marché est fermé, il n'y aura pas de ticks, et donc le conseiller expert ne fonctionnera pas.

Mais si vous en avez vraiment besoin, essayez ceci.

Si le marché est ouvert, il renvoie 1. Si le marché est fermé, il doit renvoyer 0).

Merci !
Pour plus d'informations. J'ai besoin de calculer le temps entre les ticks.
J'utilise OnTimer().
 
Deniskaaa:

Voici le problème : j'ai besoin de déterminer la valeur minimale et maximale du prix des 100 dernières barres, par exemple, puis de fixer la hausse ou la baisse lorsque le prix descend ou monte, afin de pouvoir dessiner un modèle de renversement comme 1 2 3. Je ne comprends pas la différence entre les fonctions ArrayMaximum et iHighest. Si je comprends bien, le résultat de leurs calculs sera uniquement l'indice de la barre maximale dans l'intervalle spécifié du tableau ? Les calculs nécessitent-ils l'utilisation de l'instruction for lorsque l'on travaille avec des tableaux, comme dans le problème 26 du manuel ? J'ai remplacé ce code par le suivant




Si vous voulez trader par ces signaux, vous ne devriez pas. Si vous apprenez à programmer, écrivez-le correctement.

double

   Level_1, // Niveau de signal 1 Level_2, // Niveau de signal 2 Price ; // Prix actuel
sur le dessus.
for(i=0;i<=Quant_Bars-1;i++) remplacer par for(i=0;i<Quant_Bars ; i++)
{
	 if (Low[i]< Minimum) // Si < connu 	 Minimum=Low[i] ; // alors il sera min 	 if (High[i]> Maximum) // Si > connu 	 Maximum=High[i] ; // alors il sera max
}
accolades ajoutées.
si (Prix<Niveau_2) changer le signe si (Prix > Niveau_2) au dessus du sommet
 
kosmos0975:

Si vous voulez trader sur ces signaux, ne le faites pas. Si vous apprenez à programmer, écrivez correctement.


Je vous remercie de votre réponse.
 

J'ai commencé à apprendre à travailler avec des fichiers. Je suis tombé sur le terme "poignée". La question s'est posée après avoir écrit le code :

int filehandle;
filehandle=FileOpen("news.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);
filehandle=FileOpen("news150901.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);

Après avoir ouvert le premier fichier news.csv, le programme a donné la valeur 1 à la variable filehandle. Ensuite, le programme a ouvert le deuxième fichier news150901.csv et a défini la variable filehandle sur 2. Il s'avère que le programme ne dispose plus que d'une valeur de poignée provenant de l'ouverture du deuxième fichier. En d'autres termes, j'ai tué la valeur du handle pour le premier fichier ouvert. C'est-à-dire que je peux seulement accéder aux données/contenu et fermer le second fichier ? L'utilisation d'une variable pour stocker l'identifiant du fichier ouvert est-elle une erreur ? Est-ce une erreur d'utiliser une variable pour stocker l'identifiant du fichier ouvert ?

Raison: