Caractéristiques du langage mql5, subtilités et techniques - page 206

 
Vladimir Pastushak:
Comment puis-je connaître le Take Profit et le Stop Loss d'une position dans l'historique ?

DEAL_OUT contient ces champs.

 
fxsaber:

DEAL_OUT contient ces champs.

DEAL_ENTRY_OUT? comment obtenir ces champs exactement ?

 
fxsaber:

Nous avons une position ouverte avec SL et TP zéro, puis nous modifions la position et SL !=0 et TP !=0, puis nous fermons la position manuellement, peu importe avec un hibou, mais pas au prix de prise ou de stop.....

Comment trouver ces niveaux de SL et TP ? Pas moyen pour le moment, et ensuite prouver à quelqu'un que la position a été fermée différemment ...

Il serait logique de voir un ordre/modification d'une position et un trade qui a résulté en une position modifiée avec les SL et TP spécifiés...

 
Vladimir Pastushak:

Il y a une position ouverte avec SL et TP nuls puis on modifie la position et SL !=0 et TP !=0 puis on ferme la position en forçant avec les mains, avec un hibou ça n'a pas d'importance, mais pas au prix take ou stop.....

Comment trouver ces niveaux de SL et TP ? Pas moyen pour le moment, et ensuite prouver à quelqu'un que la position a été fermée différemment ...

Capture d'écran à partir du terminal ou de l'accès aux investissements.

Il serait logique de voir un ordre/modification d'une position et un trade qui a résulté en une position modifiée avec les SL et TP spécifiés...

Champs DEAL_SL/DEAL_TP.

 
fxsaber:

Capture d'écran à partir du terminal ou de l'accès aux investissements.

Les champs DEAL_SL/DEAL_TP.

Les positions sont fermées par le conseiller expert et elles ont un SL et un TP, mais il n'est pas possible d'obtenir le SL et le TP dans l'historique des transactions et des ordres.

DEAL_ENTRY_OUT dit que l'accord a été fait par EA.

J'ai déjà tout vérifié de part en part, aussi bien les ordres que les transactions, il n'y a aucun moyen de trouver les niveaux SL et TP d'une position si la position a été fermée autrement....

 
Vladimir Pastushak:

J'ai déjà tout vérifié, aussi bien les ordres que les trades, il n'y a aucun moyen de connaître les niveaux SL et TP d'une position si la position a été fermée autrement....

DEAL_SL/DEAL_TP est une solution future.

 

Je ne sais pas si ça l'était ou pas :

Les structures et les classes peuvent se contenir elles-mêmes en tant que champ statique. Cela peut être utilisé lorsqu'une classe contient des champs statiques - des pointeurs vers des objets qui doivent être supprimés à la fin du programme. Exemple :

class A
  {
   int               a;
  };

class CRecurs
  {
public:
   int               a;
   static A *        element;
   static CRecurs    s;
                     CRecurs(void) { Print(__FUNCSIG__, " ", EnumToString(CheckPointer(element))); }
                    ~CRecurs(void) { delete element; Print(__FUNCSIG__, " ", EnumToString(CheckPointer(element)));  }
  };
static A* CRecurs::element = new A;
static CRecurs CRecurs::s;

void OnStart() {}

Résultat :

CRecurs::CRecurs() POINTER_DYNAMIC
CRecurs::~CRecurs() POINTER_INVALID

(CRecurs peut être déclaré comme struct avec le même résultat).

Vous pouvez également créer une méthode statique qui renvoie une référence à sa propre classe (c'est-à-dire ce champ statique).

 
mktr8591:

Je ne sais pas si ça l'était ou pas :

Les structures et les classes peuvent se contenir elles-mêmes en tant que champ statique. Cela peut être utilisé lorsqu'une classe contient des champs statiques - des pointeurs vers des objets qui doivent être supprimés à la fin du programme. Exemple :

Résultat :

(CRecurs peut être déclaré comme struct avec le même résultat).

Vous pouvez également créer une méthode statique qui renvoie une référence à sa propre classe (c'est-à-dire ce champ statique).

Les champs/méthodes statiques ne diffèrent des globaux (: :) que par leur portée.

 
fxsaber:

Les champs/méthodes statiques ne diffèrent des globaux (: :) que par leur portée.

Oui.


Exemple de vie - dans la bibliothèque virtuelle la classe VIRTUAL contient static const VIRTUAL_DELETE VirtualDelete ;

Il peut être remplacé par static const VIRTUAL static_Virtual ;

(et bien sûr déplacer le destructeur vers VIRTUAL) .