[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 584

 
Ekburg:

et cette condition n'aide pas...

Il faut examiner le code, pas seulement la fonction, mais l'ensemble du programme, insérer un contrôle d'erreur, imprimer les valeurs des variables et la dernière erreur et rechercher un emplacement d'erreur spécifique dans le code. Lorsque je déboguais mes propres programmes, s'ils étaient assez volumineux (environ 1000 lignes), cela me prenait parfois des semaines, c'est-à-dire plus de temps que lorsque je les écrivais.
 

Bonjour à tous !

Je regarde un exemple tiré d'un manuel scolaire. Je n'arrive pas à comprendre quelle fonction remplit la condition suivante :

ObjectSet(His_Name,OBJPROP_RAY,  false);  

J'ai moi-même joint le code. L'Expert Advisor colorie les n dernières barres.

Veuillez m'aider à le comprendre.

Dossiers :
strings.mq4  7 kb
 
rigonich:


void,int,bool qui précèdent une fonction initialisée, indiquent le type de variable dont la valeur est retournée par la fonction au programme afin que celui-ci puisse continuer à travailler avec elle.void indique que la fonction ne retourne aucune valeur (si le résultat de la fonction est, par exemple, de fermer ou d'ouvrir des ordres, ou de changer les valeurs des variables globales, elle ne devrait pas retourner de valeurs, car elle

Quant à l'AUTRElangue, il existe une version anglaise du forum. La langue est simplement un ensemble de règles et, dans une certaine langue, il existe des noms communs pour les objets et les phénomènes. Si vous utilisez des noms qui ne sont pas communs, mais ceux que vous préférez, vous ne serez pas compris.


Je crois que j'ai compris :)) merci :))
 
Sergstuddek:
L'essence du travail de l'EA est simple : à une certaine heure (01.00 à 10.00) déterminer le prix minimum et maximum et mettre les ordres en suspens


J'ai déjà vu votre code et je ne sais pas quoi dire. CommeTarasBY l'a dit plus haut, il est plus facile d'y dire ce qui est juste:

Comme je vous l'ai dit plus haut - les fonctions Seconds(),Minute(),Hour() retournent l'heure de démarrage du serveur, et dans cette condition si (Hour()==10), votre fonction ne fonctionnera pas si vous n'avez pas démarré votre Expert Advisor à 10 heures. Vous avez de telles conditions tout le temps. Lisez attentivement la description des fonctions dans l'Aide.

2.if (TIMECLOSEHIGH19>TIMEOPENLOW19) et if (TIMECLOSELOW19<TIMEOPENHIGH19) -- ce sont des conditions qui fonctionneront toujours.

3. n'écrivez pas 3 ou 4 fonctions presque identiques dans un programme, faites une seule fonction et passez-lui les paramètres nécessaires lorsque vous l'appelez. Ce n'est pas une erreur, mais cela alourdit votre code et le rend difficile à lire.

4) Utilisez n'importe quel système, mais toujours le même, de disposition des caractères syntaxiques (espaces, tabulations, sauts de ligne, parenthèses), sinon vous vous embrouillerez et les autres seront embrouillés.

C'est suffisant pour l'instant, répare-le et on verra.

 
Pacman:

Bonjour à tous !

Je regarde un exemple tiré d'un manuel scolaire. Je n'arrive pas à savoir quelle fonction remplit la condition suivante :

J'ai moi-même joint le code. L'Expert Advisor colore les n dernières barres.

Veuillez m'aider à le comprendre.


double ObjectGet( string name, int prop_id)
La fonction renvoie la valeur de la propriété de l'objet spécifié. AppelezGetLastError() pour obtenir des informations sur les erreurs.
Voir aussi ObjectSet().
Paramètres :
nom - le nom de l'objet.
prop_id - Identifiant de la propriété de l'objet. Peut être l'une des valeurs de la liste des propriétés de l'objet.
 
rigonich:


J'ai regardé votre code, je ne sais pas quoi dire. CommeTarasBY l'a dit plus haut, il est plus facile d'y dire ce qui est juste:

Comme je vous l'ai dit plus haut -- les fonctions Seconds(),Minute(),Hour() retournent l'heure de démarrage du serveur, et dans cette condition si (Hour()==10), votre fonction ne fonctionnera pas si vous n'avez pas démarré votre Expert Advisor à 10 heures. Vous avez de telles conditions tout le temps. Lisez attentivement la description des fonctions dans l'Aide.

2.if (TIMECLOSEHIGH19>TIMEOPENLOW19) et if (TIMECLOSELOW19<TIMEOPENHIGH19) -- ce sont des conditions qui fonctionneront toujours.

3. n'écrivez pas 3 ou 4 fonctions presque identiques dans un programme, faites une seule fonction et passez-lui les paramètres nécessaires lorsque vous l'appelez. Ce n'est pas une erreur, mais cela alourdit votre code et le rend difficile à lire.

4) Utilisez n'importe quel système, mais toujours le même, de disposition des caractères syntaxiques (espaces, tabulations, sauts de ligne, parenthèses), sinon vous vous embrouillerez et les autres seront embrouillés.

Pour l'instant, c'est suffisant, réparez-le et nous verrons.

Vous méritez un monument ! Le plus gros problème pour aider le "PROGRAMMEUR de demain", c'est qu'il ne peut pas réaliser ou même expliquer "CE QU'IL VEUT ? ??", parce qu'il est IMPOSSIBLE d'obtenir le sentiment de kolbak-insert en même temps !!!! :)))
 
TarasBY:
Vous devriez avoir un monument à vous maintenant ! Le plus gros problème pour aider le "PROGRAMMEUR de demain" est qu'il ne peut pas réaliser ou même expliquer "ce qu'il veut ? ??", parce qu'il est impossible d'obtenir le kolbajl-insérer-permettre-permettre tout à la fois ! !! :)))


Comme Kissa Sparrowmaninov avait l'habitude de dire. Ouais.
 
rigonich:
double ObjectGet( string name, int prop_id)
La fonction renvoie la valeur de la propriété de l'objet spécifié. Vous devez appelerGetLastError() pour obtenir les informations sur les erreurs.
Voir aussi ObjectSet().
Paramètres :

Tout cela est clair pour moi. Mais quelle fonction spécifique remplit cette section du code -
 ObjectSet(    His_Name, OBJPROP_RAY,   false); // Луч
 

Voici ce que j'ai déjà écrit :

-------------------------------------------

int start()

{

condition d'achat,

l'achat lui-même,

et modification

retour(0) ;

}

-----------------------------------------

Le problème est que maintenant je dois entrer de NOUVELLES conditions, des conditions de fermeture, et ensuite se fermer, et mon EA commence à modifier infiniment (le stop et le take sont fixes, mais le message sur la modification réussie apparaît à chaque tick).

Comment puis-je maintenant créer une boucle à l'intérieur de ce début pour les nouvelles conditions et la fermeture, de sorte que la première partie de l'EA ne sera pas affectée jusqu'à ce qu'elle se ferme complètement ?

 
rigonich:

Vous devez examiner le code, non seulement de la fonction, mais de l'ensemble du programme, vérifier les erreurs en cours de route, imprimer les valeurs des variables et la dernière erreur et rechercher un emplacement d'erreur spécifique dans le code. Lorsque je déboguais mes propres programmes, s'ils étaient assez volumineux (environ 1000 lignes), cela me prenait parfois des semaines, c'est-à-dire plus de temps que pour les écrire.


il n'y a pas de problème, quand il n'y avait pas de telles fonctions, tout fonctionnait comme sur des roulettes ! et ça fonctionne maintenant, mais l'erreur de modification se produit dans la fonction elle-même.

J'ai une idée, peut-être que cette erreur apparaît parce que la fonction de modification est dans la fonction utilisateur, et non dans le corps de start() ?