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

 
Top2n:

Messieurs, toute la journée, je n'ai pas réussi à me rapprocher d'une solution à ce problème.

Comment implémenter cet algorithme en code ?


Y a-t-il une condition si le marché est à 2, alors l'ordre en attente est supprimé ?
 
ZS - si le code n'est pas gros... mettre tout ça là-dedans... peut-être que je prendrai la peine d'insérer ces lignes....
 
Aleksander:
ZS - si le code n'est pas gros... mettre tout ça là-dedans... peut-être que je prendrai la peine d'insérer ces lignes....

Peut-être que vous ne serez pas trop paresseux pour regarder mon code d'indicateur aussi, code posté ci-dessus.
 
Aleksander:

donc vous étiez déjà au courant, n'est-ce pas ?

Ordre d'achat ouvert - mémorisez le ticket de cet ordre.

définir un ordre SellStop - écrire le ticket de l'ordre d'achat dans le Magik de cet ordre...

---

appeler la fonction au début pour vérifier si l'ordre d'achat est dans le magik dans le SellStops...

s'il n'y a pas d'ordre d'achat - supprimer SellStop...

15 lignes de code...

Je suis désolé d'être si direct, mais comment le mémoriser, c'est juste qu'il y en a probablement plus d'un et qu'il y en a cinq à mémoriser en même temps car l'EA fonctionne.
 
allez.... affichez votre graal... il y en a des centaines par jour... Je vous montrerai en rouge où le mettre et où le vérifier :-)
 
//----балансир (установка ордеров)
 if (sig==0){
  x=true;
  y=true;
}
 if (sig==1 && x==true){
  ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage,0,0,   // Ask - SL * Point, Ask + TP * Point,
  "хи-хи"+ Symbol(), Magic, 0, DarkGreen);
  x=false;
  z=true;
}

//----маневр (установка отложенных ордеров)
  
 if(x==false && z==true){
  
  ticket = OrderSend(Symbol(), OP_SELLSTOP, Lots,PriceOpenLastPos(NULL,-1,-1)-(Price*Point), Slippage,0,0,  // Ask - SL * Point, Ask + TP * Point,
  "хи-хи"+ Symbol(), Magic+1, 0, DarkGreen);
  z=false;
}
Je n'ai que le Bye pour l'instant))
 
Top2n:
Je n'ai jusqu'à présent qu'avec Bai))

et bien, pour commencer, ouvrir des échanges avec leur ticket mémorisé en magik...

se débarrasser des contrôles inutiles... - si elle est réelle - nous devrions ajouter une pause de quelques secondes entre les ordres.... pour un testeur - n'a pas d'importance.

  //----балансир (установка ордеров)
  if (sig==0){   x=true;   y=true; }
  //
  if (sig==1 && x==true){
     ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage,0,0, "хи-хи"+ Symbol(), Magic, 0, DarkGreen);
     x=false;  z=true;
     //---- wait for 3 seconds
     Sleep(3000);
     //----маневр (установка отложенных ордеров)
     // Ask - SL * Point, Ask + TP * Point,
     OrderSend(Symbol(), OP_SELLSTOP, Lots,PriceOpenLastPos(NULL,-1,-1)-(Price*Point), Slippage,0,0, "хи-хи"+ Symbol(), ticket, 0, DarkGreen);
     z=false;
  }

Bien que nous devrions nous débarrasser des drapeaux supplémentaires... de Z... si rien d'autre n'est utilisé...

 
au départ - appeler la fonction pour vérifier s'il y a un ordre d'achat dans la boucle d'ordre SellStop... et le supprimer - s'il n'y a pas d'ordre d'achat parmi les ordres ouverts...
 

Question pour les développeurs :

J'ai la 427ème construction du terminal. J'ai ébauché un petit scénario :

datetime VremaOrdera= InitsializeRealMasterOrders();
string SSStroka;
SSStroka=StringConcatenate(TimeYear(VremaOrdera),".",TimeDay(VremaOrdera),"     ",TimeHour(VremaOrdera),":",TimeMinute(VremaOrdera),"  :",TimeSeconds(VremaOrdera));
Alert("Поступило время ордера = ",VremaOrdera," что соответствует времени ",SSStroka);

Le script a donné le résultat suivant :

Mais hélas, la commande est ouverte :

Quel genre de problème est-ce ? Le script a renvoyé l'heure - zéro heure, zéro minute et zéro seconde.

 

InitsializeRealMasterOrders -- chercher une faute ici.

Autre chose : pour ne pas faire de bicyclettes, https://docs.mql4.com/ru/convert/timetostr.