[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 425

 
sss2019:

Existe-t-il un moyen de faire en sorte que pas plus d'un ordre ne soit ouvert sur la barre actuelle ? Autrement dit, j'ai besoin qu'un ordre soit ouvert sur la fractale actuelle, mais pas plus, et sur la suivante, etc.

Peut-on le faire d'une manière ou d'une autre ?

Oui, c'est possible. Il n'y a qu'une double question. Si on ouvre sur la barre actuelle, c'est la barre zéro. Et la fractale est formée au moins sur la seconde.

Enregistrez le temps de la barre fractale dans la variable et, si une position a déjà été ouverte pour cette fractale avec un tel temps, n'ouvrez pas d'autres positions avec elle. Dès qu'une nouvelle fractale est formée, son temps de barre change, puis ouvre une nouvelle position et, après son ouverture réussie, stocke le nouveau temps de fractale dans la variable.

 

Je ne veux pas être indiscret. Aidez-moi à répondre à ma question. Impossible de fermer une commande. Ça me donne une erreur avec le mauvais ticket. Le problème se trouve dans le ticket, comment puis-je l'appeler et fermer la commande ? Comment fermer un ticket ? Merci.

J'écris mon EA de manière à ce que la vente soit ouverte après l'achat et vice versa, mais pour une raison quelconque, seul le premier ordre est fermé et pas les autres.


OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,NULL,12345,CLR_Blue) ;

Fait une erreur, mauvais ticket. Le problème se trouve dans le ticket, comment puis-je l'appeler et fermer la commande ? Merci.

 

Bonjour ! Dans la fenêtre sur laquelle l'EA est attaché, comment puis-je afficher le marqueur de prix droit rouge du prix d'ouverture de cet ordre, sur la barre sur laquelle il s'est ouvert ?

Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP);
 
kolaider:

Je ne veux pas être indiscret. Aidez-moi à répondre à ma question. Impossible de fermer une commande. Ça me donne une erreur avec le mauvais ticket. Le problème se trouve dans le ticket, comment puis-je l'appeler et fermer la commande ? Comment fermer un ticket ? Merci.

J'écris mon EA de manière à ce que la vente soit ouverte après l'achat et vice versa, mais pour une raison quelconque, seul le premier ordre est fermé et pas les autres.


OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,NULL,12345,CLR_Blue) ;

J'ai eu une erreur avec un mauvais ticket. Le problème se trouve dans le ticket, comment puis-je l'appeler et fermer la commande ? Merci.

OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,NULL,12345,0,CLR_Blue);

Il vous manque une option d'expiration (surlignée en rouge).

Voulez-vous ouvrir une position de vente lorsque vous fermez une position d'achat et vice versa ?

Dans la liste des ordres fermés, trouvez le dernier ordre fermé, visualisez son type et ouvrez l'ordre opposé.

Pour fermer un ordre, vous devez d'abord le sélectionner, prendre son ticket et le fermer.

 
kolyango:

Bonjour ! Comment afficher le marqueur rouge du prix d'ouverture de cet ordre, sur la fenêtre où l'EA est attaché, comme l'ordre de marché SELL ouvert ?


bool ObjectCreate( string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0,double price3=0)

Crée un objet avec le nom, le type et les coordonnées initiales spécifiés dans la sous-fenêtre spécifiée du graphique. Le nombre de coordonnées associées à l'objet peut être de 1 à 3 selon le type. La fonction renvoie TRUE si l'objet est créé avec succès, sinon FALSE. Pour obtenir plus d'informations sur l'erreur, appelez la fonction GetLastError().
Les objets de type OBJ_LABEL ignorent les coordonnées. Utilisez ObjectSet() pour définir les propriétés OBJPROP_XDISTANCE et OBJPROP_YDISTANCE.
Remarques : La numérotation des sous-fenêtres du graphique (si le graphique a des sous-fenêtres avec des indicateurs) commence à partir de 1. La sous-fenêtre du graphique principal est toujours présente et a l'indice 0.
Les coordonnées doivent être transmises par paires - heure et prix. Par exemple, l'objet OBJ_VLINE n'a besoin que de l'heure, mais le prix (une valeur quelconque) doit également être transmis.
Paramètres :
nom - Nom unique de l'objet.
type - Type d'objet. Il peut s'agir de n'importe quel type d'objet.
fenêtre - Index de la fenêtre à laquelle l'objet sera ajouté. L'index de la fenêtre doit être supérieur ou égal à 0 et inférieur à WindowsTotal().
temps1 - Heure de la première coordonnée.
prix1 - Prix de la première coordonnée.
temps2 - Deuxième coordonnée du temps.
prix2 - Prix de la deuxième coordonnée.
temps3 - C'est l'heure de la troisième coordonnée.
prix3 - Prix de la troisième coordonnée.
Exemple :
 // nouvel objet Texte if(!ObjectCreate("text_object", OBJ_TEXT, 0, D'2004.02.20 12:30', 1.0045)) { Print("error : can't create text_object ! code #",GetLastError()) ; return(0) ; } // nouvel objet TextLabel if(!ObjectCreate("label_object", OBJ_LABEL, 0, 0)) { Print("error : can't create label_object ! code #",GetLastError()) ; return(0) ; } ObjectSet("label_object", OBJPROP_XDISTANCE, 200) ; ObjectSet("label_object", OBJPROP_YDISTANCE, 100) ;
 

artmedia70:


Vous pouvez. Seulement la question est double. Si vous ouvrez sur la barre actuelle, c'est la barre zéro. Et la fractale est formée au moins sur la deuxième barre.

Enregistrez le temps de barre de la barre fractale dans la variable et, si cette fractale a déjà été ouverte pour une position avec ce temps, n'ouvrez pas d'autres positions avec elle. Dès qu'une nouvelle fractale est formée, son temps de barre change et vous ouvrez une nouvelle position et, après son ouverture réussie, vous stockez le nouveau temps de fractale dans la variable.


Comment puis-je le sauvegarder, dans une variable globale? J'ai créé une variable simple, mais il semble qu'elle ne soit pas sauvegardée et que les ordres continuent de s'ouvrir. Voir

int start()
  {
  double MyPoint = Point;
  if(Digits == 3 || Digits == 5)
    {
    MyPoint = Point * 10;
    }
  
   double upperfractal;
   int upperi;
//----
   for(upperi=1;upperi<Bars;upperi++)
     {
     upperfractal=iFractals(Symbol(), Period(), MODE_UPPER, upperi); if (upperfractal>0) break;
     }
     
   datetime opentime;
     
   if(upperfractal>0 && upperi > 2 && opentime != Time[upperi])
     {
     if(OrderSend(Symbol(),OP_BUYSTOP,Lot,upperfractal + 10 * Point,3,0,0,"comment",1354453,0,Green) == true)
       {
       opentime = Time[upperi];
       }else
       {
       Alert("",GetLastError());
       }
     }

//----
   return(0);
  }

Variable opentime

Je voudrais demander à quelqu'un de m'aider, s'il vous plaît.

J'ai même essayé de rendre la variable globale, mais elle ouvre toujours de nombreuses transactions, comme si la variable était réinitialisée à chaque fois.

datetime opentime = 0;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  double MyPoint = Point;
  if(Digits == 3 || Digits == 5)
    {
    MyPoint = Point * 10;
    }
  
   double upperfractal;
   int upperi;
//----
   for(upperi=1;upperi<Bars;upperi++)
     {
     upperfractal=iFractals(Symbol(), Period(), MODE_UPPER, upperi); if (upperfractal>0) break;
     }
     

     
   if(upperfractal>0 && upperi > 2 && opentime != Time[upperi])
     {
     if(OrderSend(Symbol(),OP_BUYSTOP,Lot,upperfractal + 10 * Point,3,0,0,"comment",1354453,0,Green) == true)
       {
       opentime = Time[upperi];
       }else
       {
       Alert("",GetLastError());
       }
     }

//----
   return(0);
 
T-G:

Veuillez me conseiller sur la manière de traiter un problème trivial - j'ai un trou dans l'historique de l'euro pour juin 2011, puis pour septembre et un peu de septembre est perdu.

Dans le dossier \terminal\history\downloads\EURUSD, il y a ces fichiers

EURUSD_2011_06_81625bcefc91bf488a04d5a1dae0c93f
EURUSD_2011_09_2557787db3eb2fe87073c783f21cdd66

EURUSD_2011_10_15793a4a4f9d001b78a82e248872bc3b

J'ai essayé plusieurs terminaux de différents courtiers, y compris le MQ natif. J'ai également essayé sur différentes machines avec XP et Win7. J'ai essayé de supprimer symbols.raw et symgroups.raw et de les télécharger à nouveau - cela n'a pas aidé.


Je me demande s'il est crucial pour vous d'avoir une histoire de cette période particulière ?
 
nadya:
Je me demande s'il est crucial pour vous d'avoir une histoire de cette période particulière ?
Qu'en pensez-vous ? Puisque je le demande, oui !
 
T-G:
Qu'en pensez-vous ? Puisque je le demande, oui !
Alors, demandez une histoire aux responsables du stockage.
 
sss2019:


Comment puis-je l'enregistrer dans une variable globale ? J'ai créé une variable régulière, mais elle ne semble pas être enregistrée et les commandes continuent de s'ouvrir. Voici

Variable opentime

J'essaie de rendre cette variable globale.

J'ai même essayé de rendre la variable globale, mais cela ouvre encore beaucoup de transactions, comme si la variable était réinitialisée à chaque fois.

OrderSend renvoie une valeur entière, ce n'est pas une fonction booléenne, soyez prudent.
Raison: