![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
Aide pour la modification de OrderHistory 2.0
Je me demandais si quelqu'un pouvait modifier ce fichier MQ4 pour moi. Je veux que la description qui apparaît lorsque le curseur se trouve sur les flèches et les lignes de tendance ressemble davantage à ceci.. :
VENDRE
(nom d'ordre supprimé)
Heure d'ouverture : 2009.05.25 10.00
Heure de clôture : 2009.05.25 11.00
Prix d'ouverture : 94.98
Prix declôture : 94.992
Pips : 25.0 |
SL : 50.0 | -> (faire 5digit)
TP : 25.0 |
Max Fl. L : 16.9 ("Max Floating Loss/Profit" - Cool si cela pouvait être intégré)
Lots : 0.38
Brut : 100.28
...au lieu de cela
Vendre : 12345678 2009.05.25 10.00 @ 94.98
Pips : 250 SL : -750 TP : 250 Lots : 0.38 Brut : $ 100.28
94.992
J'ai essayé de changer cela moi-même, mais sans succès. Je ne suis pas un programmeur (bien sûr), mais ce serait cool si quelqu'un qui l'est pouvait corriger cela. Je vous en serais reconnaissant.
NFA anti-couverture, aidez-nous s'il vous plaît
Bonjour, j'ai un problème avec la nouvelle règle de la NFA. Mon EA ne peut plus passer d'ordres en attente
. C'est un EA simple : ouvrir un ordre, supprimer un ordre en attente non utilisé et créer deux nouveaux ordres en attente, limite d'achat et limite de vente.
Voici le code :
si (TotalMikuOrders()==2 && TotalMikuOrders_Mode(OP_BUY)+TotalMikuOrders_Mode(OP_SELL)==1){
for (int j=0;j<OrdersTotal();j++){
OrderSelect(j,SELECT_BY_POS) ;
si (OrderType()==OP_BUY){
si (OrderMagicNumber()==Magic_Miku_B){
deleteMikuPending() ;
sendMikuPending(OrderOpenPrice(),Magic_Miku_S,Magic_Miku_B+1,XFactor*CoA,XFactor*CoB,com+"XA",com+"XB",sl1,sl2,r1,r1,sp,sp0,tp1,tp2) ;
retour(0) ;
}
}
if (OrderType()==OP_SELL){
si (OrderMagicNumber()==Magic_Miku_S){
deleteMikuPending() ;
sendMikuPending(OrderOpenPrice(),Magic_Miku_S+1,Magic_Miku_B,XFactor*CoB,XFactor*CoA,com+"XB",com+"XA",sl2,sl1,r1,r1,sp0,sp,tp2,tp1) ;
retour(0) ;
}
}
}
}
}
return(0) ;
}
void sendMikuPending(double price, int ms,int mb,double lots,double lotb,string coms,string comb,double sls,double slb,double rs,double rb,double sps,double spb,double tps,double tpb){
double SL=0,TP=0 ;
int i ;
if (StopLoss>0) {SL=NormalizeDouble(NormalizeDouble(OrderOpenPrice()-Range*rb*Point+spb*Point,Digits)-StopLoss*slb*Point,Digits);}else{SL=0;}
if (TakeProfit>0) {TP=NormalizeDouble(NormalizeDouble(OrderOpenPrice()-Range*rb*Point+spb*Point,Digits)+TakeProfit*tpb*Point,Digits);}else{TP=0;}
si (OrderSend(Symbol(),OP_BUYLIMIT,lotb,NormalizeDouble(OrderOpenPrice()-Range*rb*Point+spb*Point,Digits),Slippage,SL,TP,comb,mb,0,Blue)==-1) {
i=GetLastError() ;
if (i!=1 && i!=0) Print("Buy stop Error : "+error(i)+" at "+Symbol()+" "+Period()) ;
}
if (StopLoss>0) {SL=NormalizeDouble(NormalizeDouble(OrderOpenPrice()+Range*rs*Point-sps*Point,Digits)+StopLoss*sls*Point,Digits);}else{SL=0;}
if (TakeProfit>0) {TP=NormalizeDouble(NormalizeDouble(OrderOpenPrice()+Range*rs*Point-sps*Point,Digits)-TakeProfit*tps*Point,Digits);}else{TP=0;}
si (OrderSend(Symbol(),OP_SELLLIMIT,lots,NormalizeDouble(OrderOpenPrice()+Range*rs*Point-sps*Point,Digits),Slippage,SL,TP,coms,ms,0,Red)==-1) {
i=GetLastError() ;
if (i!=1 && i!=0) Print("Sell stop Error : "+error(i)+" at "+Symbol()+" "+Period()) ;
}
}
le code complet est en pièce jointe. Je pense que l'EA devrait peut-être lire le dernier ordre fermé et passer directement un ordre ouvert. Mais je n'ai pas d'indice.
S'il vous plaît aider quelqu'un
. Merci beaucoup.
Problème de codage
Ok, j'ai un morceau de code qui semble causer l'erreur OrderSend #130. J'ai vérifié les paramètres Stop Loss et Take Profit et ils devraient être bien éloignés de la distance minimale requise si l'on place un ordre. J'ai même normalisé les chiffres pour m'assurer qu'ils correspondent aux paramètres du site. Je pense donc qu'il doit y avoir un problème avec le prix Ask ou le prix Bid qu'il reçoit et que le serveur ne l'accepte pas.
Voici le code de la section où il faut placer un ordre d'achat :
RefreshRates() ;
ticket = OrderSend(Symbol(),openType,lots,Ask,Slippage,SL,TP,comment,ExpertMagicNumber,0,Color) ;
Y a-t-il quelque chose de spécial que je devrais faire à la demande pour m'assurer qu'elle correspond à ce que le site recherche lorsqu'il reçoit l'ordre ? J'ai simplement supposé qu'il obtiendrait le prix exactement comme le site l'a donné.
Bonjour, il existe un BON système qui fonctionne, posté par JoeSmoe
Il serait utile que quelqu'un sache comment créer l'EA le plus simple qui n'ouvre une position que lorsqu'il y a un breakout - cela m'aiderait beaucoup. J'ai essayé, mais je ne sais pas comment faire.
Le meilleur,
j
Comment inclure conditionnellement un fichier dans une EA ?
Bonjour,
J'ai posté cette question dans une autre section du forum, mais j'ai ensuite découvert cette section. Veuillez excuser le double affichage...
Est-il possible d'inclure un fichier de manière conditionnelle dans le cadre d'une EA ? Bien que la syntaxe puisse être incorrecte, le concept est...
switch(MASTER_PERIOD)
{
cas 30 :
#include ;
pause ;
cas 240 :
#include ;
pause ;
}
...avec MASTER_PERIOD étant une variable Extern.
J'apprécie et j'attends avec impatience vos commentaires, suggestions et exemples sur la façon d'accomplir ceci !
Salutations,
DMMcCollum
Comment lire/récupérer le prix à un moment donné ?
Mon ami et moi travaillons sur un EA. À un moment donné, il (l'EA) doit lire et récupérer le prix à une certaine heure, disons 17:00 EST... etc.
Un senior peut-il me conseiller sur la façon de procéder, au lieu de compter les barres de prix en arrière ? Peut-être existe-t-il déjà une fonction écrite pour cela. Merci de m'aider. Merci à tous et que Dieu vous bénisse !
B rgds/abondance
Modifier
Ok, j'ai un morceau de code qui semble causer l'erreur OrderSend #130. J'ai vérifié les paramètres Stop Loss et Take Profit et ils devraient être bien éloignés de la distance minimale requise si l'on place un ordre. J'ai même normalisé les chiffres pour m'assurer qu'ils correspondent aux paramètres du site. Je pense donc qu'il doit y avoir un problème avec le prix Ask ou le prix Bid qu'il reçoit et que le serveur ne l'accepte pas.
Voici le code de la section où il faut placer un ordre d'achat :
RefreshRates() ;
ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,Bid - SL*Point,Ask + TP*Point,comment,ExpertMagicNumber,0,Color) ;
ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,Ask + SL*Point,Bid - TP*Point,comment,ExpertMagicNumber,0,Color) ;
Y a-t-il quelque chose de spécial que je devrais faire à la demande pour m'assurer qu'elle correspond à ce que le site recherche lorsqu'il reçoit la commande ? J'ai simplement supposé qu'il obtiendrait le prix exactement comme le site l'a donné.modifier comme ci-dessus
OTR
JoseMoe System EA
Il serait utile que quelqu'un sache comment créer l'EA le plus simple qui n'ouvre une position que lorsqu'il y a un breakout - cela m'aiderait beaucoup. J'ai essayé, mais je ne sais pas comment faire.
le meilleur,
jtrouvez RonaldRaygun EA dans ce fil de discussion (100 300 pips par jour...)
OTR
Erreur de données non concordantes
Salut les codeurs
Je suis encore en train de faire mes premiers pas dans le code MQL.
Quelle est la raison pour laquelle j'ai le message suivant dans le journal :
Testgenerator :
unmatched data error ( volume limit 159 at 2009.05.06 19 15 exceeded )
Où dois-je regarder dans le code ?
Merci