![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
Est-ce que quelqu'un ici pourrait m'aider à ajouter une alerte à ce filtre, quand il passe le niveau 0 ou change de couleur. Merci à ceux qui veulent m'aider...
Peut-être auriez-vous plus de chance en postant ici : https://www.mql5.com/en/forum
Combien d'ordres d' achat et de vente d'EA sont actuellement ouverts ?
Je viens de parcourir 134 pages en espérant que quelqu'un avait déjà répondu à cette question. Mais je n'ai pas eu de chance.
Après avoir créé et modifié tous les types de croisements, de points de pivot, de fourchettes d'ATR et de stratégies de sortie que je peux concevoir avec les centaines d'indicateurs différents que je possède. J'ai réalisé qu'un EA automatisé complet nécessite des tonnes de variables pour lesquelles vous devez coder. Donc, à la place, je commence à créer des conseillers experts assistés par l'utilisateur. Bon, pour en venir aux questions qui nous occupent...
Quel code peut être utilisé pour compter le nombre d'ordres d'achat et de vente ouverts par l'EA sur le marché.
Je ne veux pas qu'il compte le nombre total d'ordres ouverts, car je placerai également des ordres sur le même compte pour compenser les ordres actuels que l'EA a placés.
À terme, j'aimerais mettre en place des filtres qui modifieront le rapport entre les ordres d'achat et de vente à des fins de couverture.
Un peu d'aide s'il vous plaît...
Bonjour à tous,
A l'origine, j'ai posté ce message dans un nouveau fil de discussion, mais il a été déplacé dans un autre fil de discussion sur la programmation (je n'ai aucune objection à ce qu'il soit déplacé, d'ailleurs) et il semble maintenant avoir été perdu en raison du nombre d'affiches dans ce fil de discussion.
Peut-être que quelqu'un ici peut m'aider ?
J'ai presque terminé mon premier EA après près de 7 jours d'essais et d'erreurs, de découpage et de collage et des heures de recherche.....
Quelqu'un peut-il m'expliquer comment créer une fonction de sortie ou d'arrêt pour une EA ?
Je veux que l'EA supprime toutes les transactions en cours et en attente et qu'il sorte après avoir atteint 10 000 euros de capitaux propres. Vous trouverez ci-dessous la partie du code que j'ai utilisée jusqu'à présent :
int total = OrdersTotal(), cnt = 0, ExitAtEquity=10000;
for (cnt = total ; cnt >=0 ; cnt-- )
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if (AccountEquity ()== ExitAtEquity)//(TimeCurrent()- OrderOpenTime() >= ActiveMinutes*60 )
{if(OrderType()==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
if(OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
if(OrderType()>OP_SELL)
OrderDelete(OrderTicket());
StopTrade=true;}
}
if (dclose==dopen && OrdersTotal() < ConcurrentTrades && StopTrade != true)Comme vous pouvez le voir, l'EA regarde l'équité et met la valeur bool de la variable StopTrade à true. L'EA accuse ensuite réception de la commande et ne traite rien si StopTrade != true pendant un cycle, mais ensuite la valeur bool de StopTrade est réinitialisée et les transactions continuent.
Tout d'abord, y a-t-il un moyen pour moi de faire en sorte que cela fasse ce dont j'ai besoin de la manière dont je le fais ?
Deuxièmement, existe-t-il une fonction que je peux utiliser pour dire simplement à l'EA de quitter ?
Toute aide est la bienvenue.
NB.
Je pense qu'une partie de mon code peut vous aider à obtenir ce dont vous avez besoin.
J'avais pensé qu'une boucle qui passerait en revue tous les ordres ouverts serait un début, mais je ne saurais pas quoi dire à l'EA pour qu'il ne regarde que les ordres placés par l'EA et ne tienne pas compte des ordres que je place manuellement. Merci.
Numéro magique
cutzpr - vous devez utiliser un nombre magique et ensuite utiliser quelque chose comme ce qui suit :
for (cnt=total;cnt>=0;cnt--)
{
OrderSelect(0,SELECT_BY_POS,MODES_TRADES) ;
if (OrderMagicNumber()==yourmagicnumber)
{if(OrderType()==OP_BUY)
En regardant ce code, j'ai créé le code ci-dessous. Je ne suis pas sûr qu'il soit codé correctement. J'ai mis en place
int MaxLong=5,MaxShort=5 ;
extern double Magic=10000 ;
extern int MaxOpenOrders=10 ;
donc..
si (b<=MaxLong)
{trade
}
si (s<=MaxShort)
{trade
}
Mais l'EA envoie toujours l'ordre d'achat maximal et l'ordre de vente maximal. Au lieu de compter combien d'ordres il y a de chaque côté et de se limiter aux MaxLong et Short. Je sais qu'il doit y avoir un problème avec le code mais je ne le vois pas.
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber()==Magic)
{if(OrderType()==OP_BUY)
{
b++; // add order to Long Quantity
if(TP != 0)
{
if(b!= 0)
{
if(Bid >= ((OrderOpenPrice()+TP*Poin)+Spread))
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); // Long position closed.
CMT=OrderCloseTime();
b--; // Long Order closed. Remove one order from total Longs
return(0);
}
}
}
}
if (OrderMagicNumber()==Magic)
{if(OrderType()==OP_SELL)
s++; // Add one to Short order Quantity
if (TP != 0)
{
if(s!= 0)
{
if(Ask <= ((OrderOpenPrice()-TP*Poin)+Spread))
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // Short position closed.
CMT=OrderCloseTime();
s--; // Short Order Closed. Remove one order from total shorts
return(0);
}
}
}
}
}En regardant ce code, j'ai imaginé ce morceau de code ci-dessous. Je ne suis pas sûr qu'il soit codé correctement. J'ai mis en place
int MaxLong=5,MaxShort=5 ;
extern double Magic=10000 ;
extern int MaxOpenOrders=10 ;
donc...
si (b<=MaxLong)
{trade
}
si (s<=MaxShort)
{trade
}
Mais l'EA envoie toujours l'ordre d'achat maximal et l'ordre de vente maximal. Au lieu de compter combien d'ordres il y a de chaque côté et de se limiter aux MaxLong et Short. Je sais qu'il doit y avoir un problème avec le code mais je ne le vois pas.
Je pense que vous compliquez trop les choses. Essayez d'utiliser quelques parties de code plus courtes au lieu d'une grande fonction. Cela devrait vous donner un indice :
int totalOrders(int type)
{
int totalNumber = 0;
for (int cnt = total ; cnt >=0 ; cnt-- )
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderType() == type) totalNumber++;
}
return(totalNumber);
}
[/CODE]
AND HERE IS EXAMPLE HOW YOU CAN USE IT
[CODE]
int totalBuy = totalOrders(OP_BUY);
int totalSell = totalOrders(OP_SELL);
if( (totalBuy + totalSell) < MaxOpenOrders)/*TOTAL NUMBER OF ORDERS WASN'T REACHED*/
{
if(totalBuy <= MaxLongOrders)
{
//OPENING LONG IS PERMITED
}
if(totalSell <= MaxShortOrders)
{
//OPENING SHORT IS PERMITED
}
}
[Indicateur "SilverTrend_Signal" (en anglais)
Je suis un débutant en forex et en programmation mql4. J'ai un indicateur SilverTrend_Signal (que je joins ici) et
Je veux faire un EA à partir de cet indicateur mais j'ai un problème avec cet indicateur, le signal peut changer dans la même barre.
le signal peut changer dans la même barre, par exemple la flèche de signal de tendance haussière apparaît dans le graphique puis peut disparaître et peut-être changer en flèche de signal de tendance baissière.
disparaître et peut-être se transformer en flèche de signal de tendance à la baisse dans la même barre. Quelqu'un peut-il m'aider à résoudre ce problème ?
J'utilise cet indicateur dans la période M1 et EU.
Merci beaucoup.
(Je suis désolé, mon anglais n'est pas assez bon)![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
Mon opinion personnelle est que vous devriez rester loin d'utiliser des indicateurs qui repeignent pour les signaux. Surtout sur le graphique M1. Les signaux changent trop souvent. Vous ne faites que demander des signaux non stables et des problèmes. Le passé semble bon parce que c'est le passé.
Je suis un débutant en forex et en programmation mql4. J'ai un indicateur SilverTrend_Signal (que je joins ici) et
Je veux faire un EA à partir de cet indicateur mais j'ai un problème avec cet indicateur, le signal peut changer dans la même barre.
le signal peut changer dans la même barre, par exemple la flèche de signal de tendance haussière apparaît dans le graphique puis peut disparaître et peut-être changer en flèche de signal de tendance baissière dans la même barre.
disparaître et peut-être se transformer en flèche de signal de tendance à la baisse dans la même barre. Quelqu'un peut-il m'aider à résoudre ce problème ?
J'utilise cet indicateur dans la période M1 et EU.
Merci beaucoup.
(Je suis désolé, mon anglais n'est pas assez bon)Je ne suis pas sûr de la façon dont celui-ci se repeint, mais s'il ne le fait QUE sur la barre actuelle, alors utiliser le signal à la clôture de la barre (confirmée) sera parfait.
S'il se repeint plus que sur la barre courante, alors vous pouvez oublier d'utiliser son signal pour une EA.
FerruFx