Comment coder ? - page 181

 

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.

Dossiers :
 

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.

Dossiers :
miku_test.mq4  15 kb
 

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

Dossiers :
 

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

Steven_1974:
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

janekpietrzyk:
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

trouvez 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