[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 - 5. - page 87

 

Pouvez-vous me dire comment ouvrir des ordres d'achat ? Conditions de l'ordre de venteif(OrdersTotal()==0&& ma0<ma1 && ma1<ma2). Je comprends que nous devrions utiliserun interrupteur. Que dois-je écrire à la place de(x,a,b) ?

si(OrdersTotal()==0)

switch(x)cas'a' :cas"b":

Merci d'avance !


 
artmedia70:
Cette fonction passe en revue les ordres pour trouver le dernier fermé à la prise. Retravaillez cette fonction pour l'accélérer. Ils sont tous universels dans le programme de Kim, ce qui signifie que beaucoup de choses inutiles peuvent y être supprimées. Là encore, tout dépend de la logique de votre conseiller expert.
Merci beaucoup ! Je me disais que je pourrais faire appel à un opérateur, mais ils ne passent pas les cas avec "ou" pour une seule et même action.
 
KoOr:

Pouvez-vous me dire comment ouvrir un ordre d'achat ? Conditions de l'ordre de venteif(OrdersTotal()==0&& ma0<ma1 && ma1<ma2). Je comprends que nous devrions utiliserun interrupteur. Que dois-je écrire à la place de(x,a,b) ?

si(OrdersTotal()==0)

switch(x)cas'a' :cas"b":

Merci d'avance !




if(OrdersTotal()==0)
 {
  if( ma0<ma1 && ma1<ma2) OrderSend(....,OP_SELL,.......);
  if( ma0>ma1 && ma1>ma2) OrderSend(....,OP_BUY,.......);
 }
Un seul ordre sera ouvert, pas plus, que ce soit à la vente ou à l'achat.
 

J'ai lutté toute la journée pour comprendre pourquoi la fonction retourne -1

int typ(string t, int m)
{  datetime z=0 ; int p=-1,i;
   int d=OrdersHistoryTotal();
   if ( t=="0") t=Symbol(); 
   for( i=0;i<=d;i++){
   if ( OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) ) {                     
   if ( (OrderSymbol() == t || t=="0" ) && ( OrderMagicNumber() == m || m==-1 ) ){
   if ( OrderCloseTime()>z&&OrderType()<=1)  
   {
   z =OrderCloseTime(); 
   p =OrderType();
   }}}}
return(p);
} 

L'appel se déroule comme suit

Comment(typ("0",-1));

Toutes les commandes sont dans l'historique !

Quelle peut être l'erreur ?

 
VOLDEMAR:

J'ai lutté toute la journée pour comprendre pourquoi la fonction retourne -1

L'appel se déroule comme suit

Toutes les commandes sont dans l'historique !

Quelle peut être l'erreur ?



Comment(typ(Symbol(),-1));
Il n'y a pas de "0", il y a "EURUSD", "AUDUSD" etc.
 
Sepulca:


Le symbole "0" n'existe pas, il y a "EURUSD", "AUDUSD", etc.

S'il n'y a pas de tel symbole si ( t=="0") t=Symbol() ; alors rendez t égal à notre symbole auquel l'EA est attaché ;
 
mais comment se peut-il que la condition si DayOfWeek( ) ==1 ... ...serait rencontré un mardi ?
 
VOLDEMAR:

Si un tel symbole n'existe pas, si ( t=="0") t=Symbol() ; alors rendez t égal à notre symbole auquel l'EA est attaché ;

Je suis désolé, je n'avais pas remarqué... Alors c'est ici :

for( i=0;i<d; i++){

Le dernier numéro de commande est OrdersTotal()-1 ; Mais là n'est pas la question. Je l'ai essayé, il s'avère que l'historique des ordres fermés n'est pas visible dans le testeur, sur le compte démo votre code fonctionne.

 

Je n'ai pas ce que vous avez écrit dans mon code.

Je le fais.

int d=OrdersHistoryTotal();

et ça passe d'abord...

Peu importe, j'ai trouvé le problème ailleurs dans le code .....

 

Bonjour à tous.

J'ai une question intéressante.

Dites-moi, qui sait ou peut être confronté à, lorsque le compte est enregistré dans MT4 le nom du trader et le numéro de compte sont écrits sur le côté gauche.

Je me demande si je peux ou non modifier les données saisies dans le compte pendant que je l'utilise. Je dois modifier le NOM saisi.

Je vous remercie d'avance pour votre réponse.