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

 
AlexeyVik:

Excusez-moi d'insister, mais je veux comprendre pourquoi vous ne voulez pas utiliser de traducteur, si vous connaissez l'anglais aussi bien que moi.

C'est ce que signifie cet avertissement.

Pour être plus précis, la fonction OrderClose() renvoie true si elle est exécutée avec succès ou false si elle échoue, vous devez donc la vérifier... si la fonction a été exécutée avec succès.

Et pourquoi pensez-vous que l'avertissement est en quelque sorte associé au numéro de commande dans la liste ? Je ne comprends pas...

Je peux gérer l'anglais sans l'aide de personne, mais je ne peux pas le faire avec mql4. Comment vérifier le succès - pas le succès, quelle fonction ou quoi d'autre ? Et associé au numéro de billet n'est pas un avertissement, et ma recherche d'un contrôle de la fonction, menée sans comprendre l'essence.

 
rapid_minus:

Je peux me débrouiller en anglais sans aucune aide, mais le mql4 n'est pas si bon. Expliquez comment vérifier le succès - pas le succès, quelle fonction ou quoi d'autre ? Ce n'est pas un avertissement, c'est le fait que je cherche le contrôle de la fonction sans en comprendre l'essence.


Ce n'est pas bon du tout. Vladimir, vous avez cité une phrase contenant une réponse sans ambiguïté et claire comme de l'eau de roche à votre question ; et immédiatement vous avez répété cette question en reprochant au répondant :

" ... La fonction OrderClose() renvoie true si elle a été exécutée avec succès ou false si elle a échoué, c'est ce que vous devez vérifier...si la fonction a été exécutée avec succès... "

N'est-il pas temps de commencer à y réfléchir ?

 
tara:

Bzzzzz... Eh bien, tu viens de me faire apprendre le mql4.

Je ne me suis pas fixé un tel objectif. Ma tâche était purement locale - écrire un EA fonctionnel par ma propre stratégie, en n'étudiant la langue que dans le cadre minimum requis. Après avoir lu de nombreux messages dans divers forums, je suis devenu plus confiant dans la réalité de cette tâche, car j'ai vu de nombreux traders écrire des EA en mql, tout en restant analphabètes même en russe.

Mais je vois que dans ce fil, les experts ne veulent pas m'aider, mais me forcer à apprendre la langue. Pas comme proclamé : "n'importe quelle question...", mais : "ne posez pas de questions stupides". Ne serait-ce que mettre le nez dans un chapitre d'un manuel, une référence ou un exemple où cette question est résolue est indigne des grands enseignants.

Je pense que vous vous trompez un peu - les nouveaux arrivants ne viennent pas ici pour vous admirer et applaudir vos connaissances.

Les adolescents n'ont pas besoin d'être des karatékas pour se protéger des brutes, ils doivent juste savoir une chose ou deux.

ZS : En fait, j'ai l'impression que pour répondre à la question, vous avez vous-même besoin de consulter un manuel, mais que vous ne voulez pas...

Et Dieu interdit que je reproche quoi que ce soit à qui que ce soit ici. Je ne fais que donner mon avis. Et merci de perdre votre temps avec moi.

 

J'ai dû creuser moi-même dans la documentation pour comprendre l'incompréhensible...

La documentation contient toujours l'ancien exemple.

En général : si une fonction renvoie une certaine valeur, alors cette valeur doit être affectée à une variable du type correspondant et la valeur de cette variable doit être vérifiée.

C'est comme ça :

bool res;

res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 40);
if(!res) Print("нихрена ордер не заерылся. Ошибка ", GetLastError());
 
AlexeyVik:

J'ai dû creuser moi-même dans la documentation pour comprendre l'incompréhensible...

La documentation contient toujours l'ancien exemple.

En général : si une fonction renvoie une certaine valeur, alors cette valeur doit être affectée à une variable de type approprié et la valeur de cette variable doit être vérifiée.

C'est comme ça :

Revenez plus souvent. Il y aura moins de questions. Les connaissances seront meilleures.
 
AlexeyVik:

J'ai dû creuser moi-même dans la documentation pour comprendre l'incompréhensible...

La documentation contient toujours l'ancien exemple.

En général : si une fonction renvoie une certaine valeur, alors cette valeur doit être affectée à une variable de type approprié et la valeur de cette variable doit être vérifiée.

Ça ressemble à ça :

bool res;

res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 40);
if(!res) Print("нихрена ордер не заерылся. Ошибка ", GetLastError());

Pourquoi y aurait-il une variable supplémentaire ? Le contrôle direct fonctionne bien :

if(!OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 40)) Print("нихрена ордер не заерылся. Ошибка ", GetLastError());
Une variable doit être créée lorsque vous voulez voir la valeur d'une fonction à partir de différents points du programme, afin de ne pas avoir à l'appeler plusieurs fois.
 
evillive:

Pourquoi y aurait-il une variable supplémentaire ? Le chèque direct fonctionne très bien :

La variable doit être créée lorsque la valeur d'une fonction doit être vue à partir de différents points du programme afin qu'elle ne doive pas être appelée plusieurs fois.

Oh, mon Dieu ! Un tel débat, et je suis tenu de "penser au but"...

J'ai corrigé les erreurs, la compilation donne 0 message d'erreur, 0 avertissement, mais il y a un autre problème (ou plutôt deux) : lorsque j'ai la première occasion d'ouvrir un ordre, ils s'ouvrent sans arrêt, jusqu'à ce que les fonds soient épuisés, puis, lorsque les conditions de clôture arrivent, ils se ferment tous et aucun nouvel ordre ne s'ouvre, bien que les ordres fermés finissent par donner des profits.

 
rapid_minus:

Oh, mon Dieu ! Un tel débat, et je suis tenu d'"aller au fond des choses"...

J'ai corrigé les erreurs, la compilation donne 0 message d'erreur et 0 avertissement, mais il y a un autre problème (ou plutôt deux) : lorsque j'ai la première occasion d'ouvrir un ordre, ils s'ouvrent sans arrêt jusqu'à ce que je n'aie plus d'argent, puis, lorsque l'ordre se ferme, ils se ferment tous et aucun nouvel ordre ne s'ouvre, bien que les ordres fermés finissent par donner un bénéfice.

Il existe plusieurs façons de limiter le nombre d'ordres :

1) par quantité - comptez le nombre de commandes déjà ouvertes et comparez avec le nombre fixé par l'utilisateur, si le nombre de commandes ouvertes a déjà été fixé, alors aucune autre commande ne doit être ouverte ;

2) par le temps - tenez compte du temps qui s'est écoulé depuis l'ouverture de la dernière commande, si le temps écoulé est inférieur au temps spécifié, n'effectuez pas de transaction

3) par la distance en pips entre le prix d'ouverture de l'ordre précédent et le prix actuel du marché (ou le prix calculé pour les ordres en attente) ; si la distance est inférieure, ne pas négocier.

En général, différentes combinaisons de ces limitations sont utilisées.

 
evillive:

Il existe plusieurs façons de limiter le nombre d'ordres :

1) par quantité - comptez le nombre de commandes déjà ouvertes et comparez avec celui fixé par l'utilisateur, si le nombre de commandes ouvertes est égal à celui fixé, n'en ouvrez pas d'autres ;

2) par le temps - tenez compte du temps qui s'est écoulé depuis l'ouverture du dernier ordre, si le temps écoulé est inférieur à celui indiqué, n'effectuez pas d'opérations.

3) par la distance en pips entre le prix d'ouverture de l'ordre précédent et le prix actuel du marché (ou le prix calculé pour les ordres en attente) ; si la distance est inférieure, ne pas négocier.

En général, différentes combinaisons de ces limitations sont utilisées.

Merci, je vais essayer de mettre le numéro 1.
 

Ce qu'il faut...

...tous sont fermés et aucune nouvelle commande n'est ouverte...
Les conditions doivent être vérifiées pour la possibilité d'une nouvelle session de trading au moins une fois pour chaque nouvelle barre (à l'ouverture), ou à chaque tick, selon les conditions de la stratégie.
Raison: