[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 116
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Les gars, pouvez-vous me dire pourquoi il pourrait y avoir une erreur concernant l'impossibilité d'ouvrir un indicateur dans un EA ?
Cette condition est remplie :
-Liste des paramètres (si nécessaire). Les paramètres transmis doivent correspondre à l'ordre de déclaration et au type des variables externes (extern) de l'indicateur personnalisé.
Vous devez vérifier le nom de l'indicateur. Cela pourrait être
Il faudrait que je vérifie le nom de l'indicateur. Je ne sais pas ce que ça peut être.
J'ai vérifié le nom. C'est bon. J'essaie de comprendre...
P.S. J'ai mis en place un terminal DC à cinq chiffres, j'y ai tout déplacé, j'ai tout revérifié, beaucoup d'éditions de code, cette erreur ne se produit plus.
1. Ouvrir un ordre et affecter la valeur du prix d'ouverture à la variable PriceBuy et afficher un message à ce sujet.
2. Ouvrir un nouvel ordre avec les mêmes conditions lorsque le TakeProfit est atteint.
Voici le code du programme :
extern double PriceBuy = 0 ;
extern bool Buy = true ;
extern bool number = false ;
int start()
{
if(Buy)
{
int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-100*Point,Bid+100*Point) ;
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)
PriceBuy=OrderOpenPrice() ;
Alert("Buy Price = ",PriceBuy) ;
Buy = false ;
number = true;}
if (Bid+100*Point<=PriceBuy && number)
{PriceBuy = 0 ;
number = false ;
Buy=true;}
return ;
}
Merci d'avance
O gourous de la programmation MQL, aidez un nouveau venu à résoudre un problème. Le programme ne fonctionne pas correctement, il ne fait pas ce qu'il est censé faire. Pouvez-vous me dire quelle est mon erreur ? Le programme doit :
1. ouvrir un ordre et affecter la valeur du prix ouvert à la variable PriceBuy et afficher un message à ce sujet.
Pour ouvrir un nouvel ordre avec les mêmes conditions lorsque le TakeProfit est atteint.
Voici le code du programme :
externe double PriceBuy = 0 ;
extern bool Buy = true ;
extern bool number = false ;
int start()
{
si(Acheter)
{
int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-100*Point,Ask+100*Point) ;
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
PriceBuy=OrderOpenPrice() ;
Alert("Prix d'achat = ",PriceBuy) ;
Acheter = faux ;
nombre = vrai;}
si(Bid+100*Point<=PriceBuy && nombre)
{PriceBuy = 0 ;
nombre = faux ;
Buy=true;}
retour ;
}
Merci d'avance
Enchère>=PrixBuy+100*Point
Je veux connecter la fonction CreateNamedPipe() de kernel32.dll. Je dois prescrire des drapeaux de type Dword.
Je le fais de cette façon :
#define ACCESS_SYSTEM_SECURITY 0x01000000L
Naturellement, le compilateur jure sur le L à la fin. Tu me dirais quoi faire ?
Je dois vérifier le nom de l'indicateur. C'est possible.
Oui, vraiment, Victor, mon erreur est d'avoir essayé de l'aborder automatiquement... :-))) à l'indicateur via
... Par conséquent, les noms "court" et "normal" ne correspondent pas lors de l'adressage aux valeurs de l'indicateur par iCustom(), c'est-à-dire que lorsqu'ils ne coïncident pas, l'indicateur doit être adressé uniquement par son nom "normal".
Merci.
Bonjour.
Veuillez m'aider à trouver une erreur.
Le code est conçu pour fermer toutes les positions lorsque le prix franchit la ligne tracée sur le graphique. La plupart du temps, c'est le cas. Mais périodiquement, il y a 2 problèmes : 1. Le prix franchit la ligne, mais les positions ne sont pas fermées. 2. La ligne croise le niveau de prix actuel (à un angle), mais ne coïncide pas avec lui (n'affecte pas la bougie actuelle), alors que toutes les positions sont fermées (ce qui ne devrait pas arriver).
Je vous remercie d'avance.
Veuillez m'aider à trouver l'erreur.
Je retire la question, j'ai réglé le problème.
Je veux connecter la fonction CreateNamedPipe() de kernel32.dll. Je dois prescrire des drapeaux de type Dword.
Je le fais de cette façon :
#define ACCESS_SYSTEM_SECURITY 0x01000000L
Naturellement, le compilateur jure sur le L à la fin. Des conseils sur ce qu'il faut faire ?
Retirez le chiffre. Il ne peut y avoir que 8 bits. MQL4 ne fonctionne pas avec les gros.
Vous devez enlever un zéro supplémentaire. Essayez comme ceci : 0x1000000L
Ça ne marche pas comme ça. Le compilateur donne l'erreur '0x1000000L' - nombre invalide
Cela ne fonctionne pas comme ça. Le compilateur génère l'erreur '0x1000000L' - numéro invalide.
Je ne pense pas du tout la nuit... :-)) Un tel nombre n'existe pas dans le système à 16 bits. Il s'agit d'un identifiant d'un type constant.
L doit être supprimé :0x01000000