Questions des débutants MQL5 MT5 MetaTrader 5 - page 383
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
Si ce n'est pas externe - il y a PositionClose
Vous pouvez également ouvrir une position avec le même volume dans la direction opposée, ce qui entraînera une fermeture.
Nous définissons deux variables locales dans la fonction OnTick de type bool : buyExist = false et sellExist = false.
Quand un nouveau tick arrive, vous vérifiez s'il y a des ordres qui appartiennent à cet EA. S'il y a un ordre de vente, sellExist = true et la même chose avec l'ordre d'achat. Puis vous vérifiez si buyExist = true - n'ouvrez pas d'ordre d'achat. Il en va de même pour la vente. C'est tout.
Pourquoi avons-nous besoin de variables inutiles si nous allons vérifier de toute façon s'il y a des postes ouverts?
Nous avons vérifié s'il y avait des positions d'achat - aucun achat ouvert, nous en avons ouvert un. Pourquoi avons-nous besoin de variables ?
Pourquoi avons-nous besoin de variables supplémentaires si nous vérifions de toute façon les postes ouverts?
Nous vérifions les achats - aucun achat ouvert - nous en ouvrons un, nous vérifions les ventes - aucune vente ouverte - nous en ouvrons une. Pourquoi avons-nous besoin de variables ?
Pourquoi avons-nous besoin de variables supplémentaires si nous vérifions de toute façon les postes ouverts?
Nous vérifions les achats - aucun achat ouvert - nous en ouvrons un, nous vérifions les ventes - aucune vente ouverte - nous en ouvrons une. Pourquoi avons-nous besoin de variables ?
Je pensais que ce serait quelque chose comme OrderTotal, mais ici vous devez faire le rebond et écrire la fonction pour reconnaître les commandes ?
Tu pourrais le faire. Je l'ai juste imaginé dans ma tête comme une fonction de contrôle séparée, où les drapeaux sont passés par référence. Dans ce cas, ma variante ne remplit qu'une seule fonction - vérifier les ordres, et non pas vérifier + ouvrir. Il serait plus facile d'étendre le programme. En bref - une fonction - une action.
Eh bien, la vérification est un appel de fonction qui renvoie un drapeau :
if(!Function_check_open_position(symbol, OP_BUY,magic)) function_open_position(symbol,OP_BUY,Lots,stop_loss,take_profit,magic,comment) ;
if(!Function_check_open_position(symbol,OP_SELL,magic)) Fonction_open_position(symbol,OP_SELL,Lots,stop_loss,take_profit,magic,comment) ;
Je pensais que ce serait quelque chose comme OrderTotal.
Cette fonction n'existe pas ?
Comment y arriver sans trop en faire ? Vous pouvez avoir un tas d'ordres provenant d'un tas d'Expert Advisors sur un tas de symboles en même temps. Et vous voulez que votre EA ne traite que vos commandes, n'est-ce pas ?
il s'agit d'un ajout initial au robot principal . le robot principal a toujours deux ordres ouverts dans les deux sens (le robot principal les prend, mais le robot principal lui-même ne peut pas démarrer . Lorsque le robot principal termine une des directions, il la ferme) et ensuite cet EA doit à nouveau ouvrir un ordre dans la direction du marché où il n'y a pas d'ordre.
nous devons juste y ajouter des conditions d'ouverture de commande
double externe Lots = 1.00 ;
extern int MagicNumb = 698541 ; //Magic
int start ()
{
si(OrdersTotal() == 0 && ********** )
OrderSend("USDCHF",OP_BUY,Lots,Ask,0,0,0, "5891",MagicNumb,0,Red) ;
si (OrdersTotal() == 0 && ***********)
OrderSend("USDCHF",OP_SELL,Lots,Bid,0,0,0, "58892",MagicNumb,0,Red) ;
}
il s'agit d'un ajout initial au robot principal . le robot principal a toujours deux ordres ouverts dans les deux sens (le robot principal les prend, mais le robot principal lui-même ne peut pas démarrer . Lorsque le robot principal termine l'une des directions, il la ferme) et ensuite cet EA doit à nouveau ouvrir un ordre dans la direction du marché dans laquelle il n'y a pas d'ordre.