![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
J'ai supprimé votre autre sujet car il s'agissait du même sujet que celui-ci. J'ai copié le commentaire de WHRoeder et l'ai collé ici avant de le supprimer.
int buy_count=0;
int sell_count=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY)
{
buy_count++;
}
if(OrderType()==OP_SELL)
{
sell_count++;
}
}
}
Quelque chose comme ça
Je compte toujours à rebours, sauf si j'ai une raison spécifique de ne pas le faire.
Ok c'est bien, donc pour la boucle, doit-elle être encadrée de façon similaire à celle que j'ai pour le closeorder, et si oui, dois-je faire en sorte que le programme compte les ordres vers le haut ou vers le bas ?
J'ai donc maintenant une fonction de boucle à la fois sur ma fonction de fermeture d'ordre et sur ma fonction de fin d'ordre, mais il n'y a toujours pas de trading indépendant. Bien qu'il ouvre des transactions et les ferme en fonction des paramètres définis, comme je peux le voir dans le testeur de stratégie, il ne fonctionne pas sur plusieurs graphiques dans une démo en direct.
Est-ce que chaque EA a un nombre magique différent ?
Montrez vos boucles que vous utilisez maintenant.
Est-ce que chaque EA a un nombre magique différent ?
Montrez les boucles que vous utilisez actuellement.
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) break;
if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
//--- Check for buy order
if(fastma > slowma)
{
if(OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",MagicNumber,0,Blue))
Print("Buy order opened :", OrderOpenPrice());
else
Print("Order failed to open : ", GetLastError());
return(0);
}
//--- Check for sell order
if(fastma < slowma)
{
if(OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,"",MagicNumber,0,Red))
Print("Order opened : ", OrderOpenPrice());
else
Print("Order failed to open : ", GetLastError());
return(0);
}
break;
}
Voici la boucle ordersend
De même que j'ai le MN comme un int externe, donc je peux le changer sur chaque graphique sur lequel je mets l'EA.if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
En présence d'ordres multiples (un EA, plusieurs graphiques, plusieurs EA, trading manuel)