Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 115

 
gyfto:
Peut-on lire AccountNumber() à partir de la dll et comment ? Donnez-moi au moins un indice pour savoir où creuser. Je veux dire sans passer la valeur de la fonction à la dll, c'est-à-dire à partir de la bibliothèque dynamique elle-même.
De l'en-tête de la fenêtre MT4, mais il peut facilement être remplacé. Je dois réfléchir à la manière de retracer la substitution.
 
pako:

Je ne comprends pas pourquoi ça doit être si compliqué.
Cela ne rendrait-il pas les choses plus faciles ?

Eh... Si seulement je pouvais décider moi-même comment le faire... Si mon client a besoin de recalculer les points de prise de toutes les positions (de plus, les positions de la moyenne suivante peuvent être ouvertes avec un lot encore plus grand et la prise totale est recalculée à nouveau) et de clôturer exactement par des ordres stop, plutôt que par un conseiller expert, alors c'est ce que nous devrions faire.
 
Zhunko:
A partir de l'en-tête de la fenêtre MT4, mais il peut facilement être manipulé. Nous devons réfléchir à la façon de tracer l'usurpation.

Mais il y a une chose dont je suis sûr : il n'y a aucun endroit dans Windows où l'on peut voir la dernière fois que l'on a accédé au tampon de la fenêtre.
 
gyfto:
Mais il y a une chose dont je suis sûr : il n'y a aucun endroit dans Windows où l'on peut voir la dernière fois que l'on a accédé au tampon de la fenêtre.
Nous devons intercepter les messages.
 

J'ai besoin d'aide, je n'arrive pas à comprendre.

L'idée est que le hibou utilisera le remplissage de tendance, si le signal se répète. La question est donc la suivante : comment puis-je apprendre à la fonction fraction à sauter le premier signal ?

Par exemple, il y avait un signal d'achat, le hibou achète et au tick suivant la fonction de mise à l'échelle est appelée (car il y a un ordre ouvert), le signal d'entrée est toujours en vigueur et la fonction remplit avec succès (ce qui est faux).

La fonction elle-même n'est appelée que s'il existe un ordre ouvert.

J'ai juste besoin de sauter la barre actuelle. Comment l'implémenter dans MQL ?

 
MarkTrade:

J'ai besoin d'aide, je n'arrive pas à comprendre.

L'idée est que le hibou utilisera le remplissage de tendance, si le signal se répète. La question est donc la suivante : comment puis-je apprendre à la fonction fraction à sauter le premier signal ?

Par exemple, il y avait un signal d'achat, le hibou achète et au tick suivant la fonction de mise à l'échelle est appelée (car il y a un ordre ouvert), le signal d'entrée est toujours en vigueur et la fonction remplit avec succès (ce qui est faux).

La fonction elle-même n'est appelée que s'il existe un ordre ouvert.

J'ai juste besoin de sauter la barre actuelle. Comment l'implémenter dans MQL ?

Qu'est-ce que tu fumes, bon sang ? Dans quelles plantations choisissez-vous vos cigarettes ? Le hibou est allé au magasin et a acheté des... Et puis un certain funk est arrivé et a tout gâché.

C'est dommage...

 

Utilisez la fonction qui vous renvoie le nombre de barres après l'ouverture de la dernière position :

//+----------------------------------------------------------------------------+
int BarsAfterOpenLastPos(int op, int mn) {
   datetime t=0;
   int      i, k=OrdersTotal();

   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS)) {
         if (OrderSymbol()!=Symbol())  continue;
         if (OrderType()!=op)          continue;
         if (OrderMagicNumber()!=mn)   continue;
         if (t<OrderOpenTime()) t=OrderOpenTime();
         }
      }
   return((TimeCurrent()-t)/60/Period());
}
//+----------------------------------------------------------------------------+

Comment vérifier une position d'achat avec Magic

if (BarsAfterOpenLastPos(OP_BUY, Magic)>1) {// доливаем}
 
artmedia70:

Merde... qu'est-ce que tu fumes ? Où trouvez-vous vos cigarettes ? Le hibou est allé au magasin et a acheté des... Et puis un certain funk est arrivé et a tout gâché.

Oh, c'est dommage...



:) Quoi qu'il en soit, c'est comme ça

if (OrdersCount()==0)
{CheckBuy();
CheckSell();}
if (OrdersCount()==1) DolivkaBuy();
if (OrdersCount()==-1) DolivkaSell();

Que dois-je écrire dans Dolivka...() pour qu'il saute la barre sur laquelle la première transaction a été ouverte ?

Je n'ai pas le code source, je me souviens juste...

 
О ! Il y a déjà une réponse au moment où j'écris. Merci !
 
artmedia70:
Eh... Si seulement je pouvais décider moi-même comment le faire... Si le client a besoin de recalculer les points de prise de toutes les positions (de plus, les positions de la moyenne suivante peuvent être ouvertes avec un lot encore plus grand et la prise totale est recalculée à nouveau) et de fermer exactement par des ordres stop, et non par le conseiller expert, alors c'est ce que je dois faire.


Array les données de position
Raison: