Dans mon cas, c'était "<=", mais les valeurs stochastiques changent très fortement, même à chaque tick - il y a quatre décimales supplémentaires, c'est-à-dire qu'en un tick, les valeurs peuvent passer de (par exemple) 75.0003 à 74.0900.
Ainsi, le signe "=" peut être omis sans crainte. Mais bien sûr, pour ne pas penser - je pense que je le ferai.
J'ai regardé l'expert - tout semble être correct. Impossible de le vérifier - pas d'indicateur. Essayez d'ajouter Print avant OrderClose et voyez si le signal de fermeture apparaît.
Je ne comprends pas ! J'ai mis ce bloc dans un autre EA. Et un troisième. ... . Mais la situation n'a pas changé ! Les postes ne sont pas fermés. Bien que rarement, rarement (une ou deux fois sur l'historique = 1 an) et clignote un triangle vert de fermeture sur le graphique visuel. Mais ça ne devrait pas être comme ça ! Les positions, à en juger par le code, devraient se fermer comme une navette de machine à coudre !
Peut-être que ce bloc ne devrait pas fonctionner ? Après tout, nous avons des stops dans le code lorsque nous ouvrons : - stoploss et takeprofit. Et peut-être que toutes les autres conditions de clôture sont ignorées pour cette raison ?
Il est compréhensible que les bénéfices ne soient pas augmentés par ces fermetures. Mais le tirage au sort..... Diminue souvent de manière significative.
komposter: Je n'ai pas regardé le code. Mais une chose est sûre : au lieu de "if(Stochast_1>75 && Stochast_0<75)", je ferais "if(Stochast_1>75 && Stochast_0<=75)".
Une meilleure solution serait : if(Stochast_1-75.0>0 && Stochast_0-75.0<=0) afin d'éviter les conversions inutiles des types int et double.
Et comment éviter les int et double inutiles. ? De plus, au lieu de chiffres, nous pouvons utiliser des paramètres externes - extern int Up_lim = 80 ; extern int Low_lim = 20 ;
rid: Et comment éviter les int et double inutiles. ? Je n'arrive pas à comprendre. En outre, au lieu de chiffres, nous pouvons utiliser des paramètres externes : extern int Up_lim = 80 ; extern int Low_lim = 20 ;
Premièrement, il est incorrect de comparer le réel Stochast_ et l'entier 75, et deuxièmement, il est plus correct de comparer leur différence avec zéro.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Dans mon cas, c'était "<=", mais les valeurs stochastiques changent très fortement, même à chaque tick - il y a quatre décimales supplémentaires, c'est-à-dire qu'en un tick, les valeurs peuvent passer de (par exemple) 75.0003 à 74.0900.
Ainsi, le signe "=" peut être omis sans crainte. Mais bien sûr, pour ne pas penser - je pense que je le ferai.
Essayez d'ajouter Print avant OrderClose et voyez si le signal de fermeture apparaît.
C'est fait. Ajouté. Non, ..... ! L'avis de clôture n'apparaît pas dans le journal de bord.
Je ne comprends pas ! J'ai mis ce bloc dans un autre EA. Et un troisième. ... . Mais la situation n'a pas changé ! Les postes ne sont pas fermés. Bien que rarement, rarement (une ou deux fois sur l'historique = 1 an) et clignote un triangle vert de fermeture sur le graphique visuel. Mais ça ne devrait pas être comme ça ! Les positions, à en juger par le code, devraient se fermer comme une navette de machine à coudre !
Indicateur NOnLagMA dans le téléchargement
Peut-être que ce bloc ne devrait pas fonctionner ? Après tout, nous avons des stops dans le code lorsque nous ouvrons : - stoploss et takeprofit. Et peut-être que toutes les autres conditions de clôture sont ignorées pour cette raison ?
ticket=OrderSend(Symbol(),0,Lots,Ask,Slippage,Bid-SL_long*Point,Ask+TP_long*Point, NULL,MagicNum, 0,CLR_NONE) ;
Vous devrez vous en occuper d'une autre manière.
Je ne comprends rien !
Vous devriez être plus attentif.)
Voici la fonction start() de la variante de test (sans SL et TP, avec des messages corrects et sans glissement inutile) :
Mais je n'utiliserais pas cet EA sur un compte réel si j'étais vous. Il faut le mettre en ordre, ou en "préparation", si vous voulez ;)
Oui, bien sûr. Merci pour votre aide ! Je comprends votre commentaire sur mon erreur.
Et j'ai pris note de vos recommandations. Il y a encore un long chemin à parcourir avant un véritable commerce...
p.s/ Tout fonctionne.... ! Et comment ça a marché !
Je n'ai pas regardé le code.
Mais une chose est sûre : au lieu de "if(Stochast_1>75 && Stochast_0<75)", je ferais "if(Stochast_1>75 && Stochast_0<=75)".
Une meilleure solution serait : if(Stochast_1-75.0>0 && Stochast_0-75.0<=0) afin d'éviter les conversions inutiles des types int et double.
Et comment éviter les int et double inutiles. ? Je n'arrive pas à comprendre. En outre, au lieu de chiffres, nous pouvons utiliser des paramètres externes : extern int Up_lim = 80 ; extern int Low_lim = 20 ;
Premièrement, il est incorrect de comparer le réel Stochast_ et l'entier 75, et deuxièmement, il est plus correct de comparer leur différence avec zéro.
"Comparaison de nombres réels".