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 ?
Nous pouvons le faire de cette façon. Je l'ai simplement présenté dans mon esprit comme une fonction de contrôle distincte où les drapeaux sont transmis 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.
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 ?
le0nid2014: 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 ?
Comment pouvez-vous le faire sans force brute ? Vous pouvez avoir beaucoup d'ordres provenant de nombreux conseillers experts pour un grand nombre de symboles à un moment donné. Vous voulez que votre conseiller expert ne traite que ses propres ordres, n'est-ce pas ?
Tapochun: 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 :
Tapochun: 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
le0nid2014: 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.
Les deux EA doivent avoir les mêmes assistants. Ils doivent être lancés sur des graphiques différents pour un même symbole. En général, bien sûr, il est plus facile d'améliorer l'EE principale que d'en construire une autre.
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.