Discussion de l'article "Guide étape par étape pour rédiger un conseiller expert en MQL5 pour les débutants" - page 17
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
J'ai téléchargé le fichier et débogué le code, et il a affiché cet avertissement. Quelqu'un peut-il m'aider ?
la valeur de retour de'OrderSend' devrait être vérifiée
Bonjour, je suis un nouveau venu et je teste également le robot.
Essayez ceci :
// OrderSend(mrequest,mresult) ;
bool res=OrderSend(mrequest,mresult) ;
// Obtenir le code de résultat
if(res && (mresult.retcode==10009 || mresult.retcode==10008)) //La demande est terminée ou la commande est passée
{
Alert("Un ordre d'achat a été placé avec succès sur le ticket n° :",mresult.order," !!") ;
}
else
{
Alert("La demande d'ordre d'achat n'a pas pu être complétée -erreur :",GetLastError()) ;
ResetLastError() ;
retour ;
}
Si je me trompe, merci de me corriger !
Source de la recherche : https://www.mql5.com/en/forum/23663
Lors du débogage, j'obtiens toujours une erreur lorsque j'envoie la commande. Je pensais que c'était mon code, mais même quand je teste le fichier mql5 pour le téléchargement, il me donne aussi une erreur.
Lors du débogage, j'obtiens toujours une erreur lorsque j'envoie la commande. Je pensais que c'était mon code, mais même quand je teste le fichier mql5 pour le téléchargement, il me donne aussi une erreur.
Je pense que l'exemple est en devises, donc la variable lot qui est 0.1 n'est pas adaptée à votre test, essayez de la changer comme ceci (en changeant la variable mrequest.volume) :
double minSymbolLot = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN) ;
mrequest.action = TRADE_ACTION_DEAL ; // exécution immédiate de l'ordre
mrequest.price = NormalizeDouble(latest_price.ask,_Digits) ; // dernier prix demandé
mrequest.sl = NormaliseDouble(latest_price.ask - STP*_Point,_Digits) ; // Stop Loss
mrequest.tp = NormaliseDouble(latest_price.ask + TKP*_Point,_Digits) ; // Take Profit
mrequest.symbol = _Symbol ; // paire de devises
mrequest.volume = minSymbolLot ; // nombre de lots à négocier
mrequest.magic = EA_Magic ; // Numéro magique de l'ordre
mrequest.type = ORDER_TYPE_BUY ; // Ordre d'achat
mrequest.type_filling = ORDER_FILLING_FOK; // Type d'exécution de l'ordre
mrequest.deviation=100 ;
Est-ce que quelqu'un sait si je peux utiliser cet EA pour les mini-index ou les mini-dollars ?
Avez-vous compris la stratégie ? Etes-vous conscient des risques ? Avez-vous analysé les niveaux SL et TP ? Connaissez-vous les indicateurs techniques utilisés ? Savez-vous les paramétrer ? Savez-vous comment personnaliser les variables pour chaque actif (WIN et WDO) ?
Le code lui-même a été développé pour n'importe quel actif et vous pouvez l'identifier grâce au "_Symbol" et pour n'importe quel temps graphique "_Period".
Il est maintenant important que vous sachiez ce que vous faites lorsque vous exécutez l'EA. Si vous choisissez de le faire, je vous suggère de ne travailler que sur des comptes de démonstration jusqu'à ce que vous maîtrisiez l'outil et que vous ayez une meilleure compréhension du marché boursier.
[ ]'s
Les gars,
Voici un code simple et rapide à modifier si vous avez une erreur avec l'ouverture de plusieurs ordres en même temps.
Remplacez ce code : de la ligne 167 -177
par ceci :
Merci @Samuel Olowoyo
Conseillez-nous sur la manière de résoudre le problème. Le conseiller expert ouvre plusieurs positions d'affilée pour acheter, de même pour vendre.
L'Expert Advisor ne voit pas qu'il y a déjà des positions d' achat et de vente ouvertes et en ouvre de nouvelles, malgré le fait qu'il y ait une vérification dans le code.
sur les positions déjà ouvertes. La vérification ne fonctionne pas pour une raison quelconque.
Puisqu'il n'y a pas d'aide de la part des trolls-modérateurs ici, je vais copier la réponse du forum anglais :
Les gars, voici un code simple et rapidement modifiable, si vous avez une erreur avec plusieurs ordres qui s'ouvrent en même temps. Remplacez ce code : de la ligne 167 -177
Avec ceci :
Puisque je ne peux pas obtenir d'aide des trolls-modérateurs ici, je vais copier la réponse du forum anglais :
Les gars, c'est un simple code modifiable rapidement si vous avez une erreur avec l'ouverture de plusieurs commandes en même temps. Remplacez ce code : de la ligne 167 -177
par ceci :