[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 397
J'ai mis votre code, il ne compile pas. Quelle est l'erreur, je n'arrive pas à comprendre. Mais la chose principale, j'ai encore demandé, il doit y avoir une sorte d'erreur logique, les ordres sont ouverts sur chaque tick, très probablement cette partie ne fonctionne pas.
Comment faire pour qu'un EA ferme tous les ordres lorsqu'un profit donné est atteint .... Fermer uniquement les ordres sur un symbole ...
Exemple : EA travaille sur 3 paires montant à fermer tous les ordres sur un symbole 100p ...
Si l'EUR a plus de 100p, il ne fermera que les ordres sur l'EUR alors que d'autres peuvent avoir 200p ...
Si je prends accountbalanse(), alors l'EA ne se fermera que lorsque la somme des trois paires sera supérieure à 100p. Cette option ne fonctionne pas pour moi ! !!!.
Aidez-nous s'il vous plaît.........
Probablement avec
OrderProfit(
)
Et aussi If (OrderSymbol()==Symbol()) {Bien que je ne puisse pas l'écrire moi-même...
Veuillez me dire ce qui ne va pas dans ce code. Le robot doit fermer un ordre de vente et s'il n'y en a pas, il doit acheter. L'erreur 4105 apparaît, que j'essaie de traiter, mais sans résultat. Peut-être y a-t-il d'autres façons de le traiter ?
PRICECURRENTPPROFIT est le niveau d'achat.
// ROBOT SELLS // détermine s'il y a des ordres de vente if (Bid>=PRICECURRENTPPROFIT && PRICECURRENTMPROFIT>0) { for(cnt=OrdersTotal();cnt>=0;cnt--) {OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ; mode = OrderType() ; if(OrderSymbol() == "EURUSD") {if(mode == OP_BUY) {go=OrderClose(OrderTicket(), Lots, Bid, slippage, Green) ;
Je veux y ajouter quelques fonctions pour qu'il soit ouvert à la vente et à l'achat, mais pour la vente et l'achat, il faut un numéro magique distinct.
Si un ordre Take Profit se déclenche, le robot ferme tous les ordres en cours. Je veux qu'il ferme tous les ordres en cours OP_SELLLIMIT et les laisse inchangés OP_BUYLIMIT, OP_BUY.
Dimka-novitsek: J'ai mis votre code, il ne compile pas. Quelle est l'erreur, je ne comprends pas. Mais le plus important, c'est que j'ai encore demandé, il doit y avoir une sorte d'erreur logique, les ordres sont ouverts à chaque tick, il est probable que cette partie ne fonctionne pas, et je ne peux pas le comprendre non plus ?
Soit le code n'est pas entièrement affiché, soit il manque le crochet fermant tout en bas.
Oui, si vous le définissez comme x=0, il ira à zéro ; si vous le définissez comme x :, il n'ira pas à zéro, il augmentera.
C'est le bon chemin à suivre !!!!!
Je suis sûr que c'est réduit à zéro. Merci à tous, c'est un peu hilarant.
Guys une question plus compliquée......
Comment faire pour qu'un EA ferme tous les ordres lorsqu'un profit donné est atteint .... Fermer uniquement les ordres sur un symbole ...
Exemple : EA travaille sur 3 paires montant à fermer tous les ordres sur un symbole 100p ...
Si l'EUR a plus de 100p, il ne fermera que les ordres sur l'EUR alors que d'autres peuvent avoir 200p ...
Si je prends accountbalanse(), alors l'EA ne se fermera que lorsque la somme des trois paires sera supérieure à 100p. Cette option ne fonctionne pas pour moi ! !!!.
Aidez-nous s'il vous plaît.........
Probablement avec
Veuillez me dire ce qui ne va pas dans ce code. Le robot doit fermer un ordre de vente et s'il n'y en a pas, il doit acheter. L'erreur 4105 apparaît, que j'essaie de traiter, mais sans résultat. Peut-être y a-t-il d'autres façons de le traiter ?
PRICECURRENTPPROFIT est le niveau d'achat.
// ROBOT SELLS
// détermine s'il y a des ordres de vente
if (Bid>=PRICECURRENTPPROFIT && PRICECURRENTMPROFIT>0)
{
for(cnt=OrdersTotal();cnt>=0;cnt--)
{OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ; mode = OrderType() ; if(OrderSymbol() == "EURUSD")
{if(mode == OP_BUY)
{go=OrderClose(OrderTicket(), Lots, Bid, slippage, Green) ;
}
}
} // Si ouvert, fermer
} if(go != true) {Print("Impossible d'ouvrir l'ordre SELL. Erreur N", GetLastError()) ;
switch(GetLastError()) {cas 4105 : OrderSend("EURUSD",OP_SELL,Lots,Bid,2*Point,0,0, "robot vend",MagicNumber,0,Red);break;}
}
Je veux y ajouter quelques fonctions pour qu'il soit ouvert à la vente et à l'achat, mais pour la vente et l'achat, il faut un numéro magique distinct.
Si un ordre Take Profit se déclenche, le robot ferme tous les ordres en cours. Je veux qu'il ferme tous les ordres en cours OP_SELLLIMIT et les laisse inchangés OP_BUYLIMIT, OP_BUY.
J'ai mis votre code, il ne compile pas. Quelle est l'erreur, je ne comprends pas. Mais le plus important, c'est que j'ai encore demandé, il doit y avoir une sorte d'erreur logique, les ordres sont ouverts à chaque tick, il est probable que cette partie ne fonctionne pas, et je ne peux pas le comprendre non plus ?